一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于根据安全要求生成的安全规范在系统设计中实现和验证安全措施的制作方法

2022-12-07 02:32:02 来源:中国专利 TAG:

基于根据安全要求生成的安全规范在系统设计中实现和验证安全措施
1.相关申请的交叉引用
2.本技术要求2020年04月24日提交的美国专利申请序列号63/014857的权益,其内容通过引用并入本文。
技术领域
3.本公开总体上涉及设计自动化系统,并且更具体地,涉及基于根据安全要求生成的安全规范在诸如电子电路的系统中实现诸如安全机制的安全措施。


背景技术:

4.在系统的设计流程中,用户分析可能的故障(例如,安全隐患),并且通过添加到设计的安全措施来减轻它们。这种设计流程的示例包括自动的设计流程。在安全要求管理工具中记录和跟踪安全措施。该过程要求用户手动地将安全措施添加到设计,并且确保它们在整个设计周期中被正确地实现和验证。通常,在设计周期中,可以使用数个设计工具。例如,在电路的设计周期中,可以使用数个电子设计自动化工具,包括验证工具、综合和布局布线工具、故障仿真器等。跨如此广泛的工具一致地实现安全措施是冗长且容易出错的过程。如果安全措施没有被正确地实现或者被完全忽略,则由此导致的诊断覆盖率损失可能在很久之后才在设计周期中被标识,或者可能完全被忽略。这导致工作量的大量浪费,因为可能必须利用校正的设计来重复数个设计过程。备选地,如果安全措施的实现中的不一致被完全忽略,则所得产品可能具有错误的设计。


技术实现要素:

5.上述和其他问题通过用于增强系统设计以包含安全措施的计算机实现方法、计算机系统和用于指令的计算机程序产品来解决。接收系统设计,以用于使用设计工具通过设计周期的各个阶段进行处理。例如,系统设计可以表示电路设计,通过数个eda工具处理该电路设计。系统接收针对系统设计的安全要求。安全要求指定用于系统设计的安全措施。安全措施的示例包括具有以下中的一项的安全寄存器:三模式冗余、双模式冗余或容错;双核锁步;故障保护有限状态机或监测器。系统根据安全要求生成安全规范,安全规范包括命令的集合。命令指定(a)用于系统设计的一个或多个组件的安全措施,以及(b)由用于实现和验证安全措施的一个或多个工具处理的一个或多个属性。基于安全规范,系统生成利用安全措施增强的系统设计。针对多个工具的至少一个子集生成增强的系统设计。来自子集的每个工具处理所生成的安全规范,以根据接收的安全要求在系统设计中实现和验证安全措施。
6.安全措施被实现在系统设计的组件中。组件可以是软件组件、硬件组件或固件组件。
7.在一个实施例中,来自子集的工具为综合工具,并且由综合工具处理所生成的安
全规范包括:选择指定安全措施的命令,以及修改由综合工具处理的电路设计的表示以实现由命令指定的安全措施。
8.在一个实施例中,来自子集的工具是用于电路设计的布局和布线工具,并且由综合工具处理所生成的安全规范包括:从指定安全措施的安全规范选择命令,以及根据选择的命令,由布局和布线工具确保组件之间的物理分离。
9.在一个实施例中,来自子集的工具是形式验证工具,并且系统使用形式验证工具验证在设计中实现的安全措施符合所接收的安全要求。
10.在一个实施例中,来自子集的工具是故障仿真器,故障仿真器执行利用安全措施增强的电路设计的诊断覆盖率。诊断覆盖率符合所生成的安全规范。
11.在一个实施例中,来自子集的利用安全措施增强的工具执行对功率、时序、拥塞、面积等的估计。工具可以是仿真工具、验证计划工具、覆盖率管理工具等。
12.尽管所公开的实施例使用硬件和电路设计作为示例来说明这些技术,但是所公开的技术适用于软件设计。
13.本发明内容和以下详细描述中描述的特征和优点不是包罗万象的。鉴于本技术的附图、说明书和权利要求,对于本领域技术人员来说,许多附加特征和优点将是明显的。
附图说明
14.图1a图示了根据一个实施例的用于在系统设计中包含安全措施的整体系统环境。
15.图1b图示了根据另一个实施例的用于在系统设计中包含安全措施的整体系统环境。
16.图2图示了根据一个实施例的用于在系统设计中包含安全措施的系统的架构。
17.图3示出了图示根据一个实施例的用于增强系统设计以包含安全措施的过程的流程图。
18.图4示出了根据一个实施例的当使用安全规范指定安全寄存器时的设计的示例。
19.图5示出了根据一个实施例的当由安全规范指定安全核心规则时的系统设计的示例。
20.图6示出了根据一个实施例的使用故障保护有限状态机的设计的示例。
21.图7示出了根据一个实施例的用设计监测器增强的系统设计的示例。
22.图8描绘了根据本公开的一些实施例的在集成电路的设计和制造期间使用的各种过程的流程图。
23.图9描绘了本公开的实施例可以在其中操作的示例计算机系统的图。
24.附图使用相同的附图标记来标识相同的元件。附图标记(诸如“310a”)后面的字母指示该文本具体指代具有该特定附图标记的元素。文本中没有后面字母的附图标记(诸如“310”)指代附图中带有该附图标记的任何或所有元素(例如,文本中的“310”指代图中的附图标记“310a”和/或“310b”)。
25.附图(图)和以下描述仅通过说明的方式涉及优选实施例。应当注意,根据以下讨论,本文公开的结构和方法的备选实施例将容易地被认为是可行的备选方案,备选方案可以在不背离所要求保护的原理的情况下被采用。
26.现在将详细参考若干实施例,实施例的示例在附图中进行图示。注意,只要可行,
相同或相似的附图标记可以被用在附图中并且可指示相同或相似的功能。附图仅出于说明的目的而描绘了所公开的系统(或方法)的实施例。在不背离本文描述的原理的情况下,可以采用本文说明的结构和方法的备选实施例。
具体实施方式
27.系统分析安全要求,并且确保正确的设计和对安全措施的验证满足系统设计中的安全要求。执行各种类型的安全分析,包括故障模式影响分析(fmea)、故障模式影响和诊断分析(fmeda)等。可以经由标准格式(例如json或xml)接收附加用户输入,附加用户输入指定关于预期安全措施的附加细节。系统确定设计的各种故障模式以及相关联的安全措施(sm),诸如基于安全分析的安全机制。
28.系统生成安全规范,安全规范包括实现安全措施以满足基于安全分析确定的安全要求的命令。使用表示设计的安全意图的安全规范语言来指定安全规范。系统允许用户修改所生成的安全规范。例如,用户可以修改安全规范以添加附加的安全措施、移除一些生成的安全措施或修改一些安全措施。
29.在整个设计验证流程中由各种工具处理所生成的安全规范,以确保各种工具符合安全规范。例如,对于电路设计,安全规范由验证工具、综合工具、逻辑等效性检查、布局和布线工具、rtl分析、探索和优化工具使用,并且用于流片前的签核验证。这些工具调整系统的设计,以包含由安全规范指定的各种安全措施。可以在系统设计的组件中实现安全措施,组件是软件组件、硬件组件或固件组件。在整个设计和验证过程中使用共同的安全规范确保了每一个设计或验证工具使用相同的安全措施并且满足相同的安全要求。因此,由使用该安全规范的各种工具实现的安全措施中不存在不一致。
30.工具指代允许诸如电路设计者的用户使用计算系统来执行特定任务的系统或应用,例如,与电路设计相关联的设计或验证任务。工具可以包括用户接口,例如允许用户向工具提供输入以及允许向用户显示输出的图形用户接口。工具可以使用命令行接口。工具可以经由文件提供输出,诸如执行的结果。
31.其他技术可能要求用户手动地指定针对设计和验证过程中的每个步骤的安全措施。这种技术可能很麻烦并且容易出错,导致跨各种设计工具使用的安全措施的不一致。公开的实施例使用基于安全分析而自动生成的安全规范(其描述安全措施和用户的意图)来确保跨各种设计工具的一致性。这些工具修改系统设计以实现安全措施。这些工具可以生成描述包含安全措施的系统设计的指标。生成的指标包括安全指标,例如,单点故障指标(spfm)、潜在故障指标(lfm)和(随机)硬件故障概率指标(pmhf)被计算,以确保设计满足安全目标。指标可以包括系统设计的其他方面,例如,估计功率、面积、时序指标等的工具修改其对应指标的估计,以适应安全措施。工具可以修改系统设计,然后确定指标,或者可以根据安全规范,基于系统设计的预期修改调整指标值。例如,工具可以调整对系统设计的功率、面积、时序和其他性质的估计,以考虑系统设计的可能改变来包含安全措施。此外,实施例确保在各种设计工具中没有一个安全措施被忽略。
32.图1a图示了根据一个实施例的用于在系统设计中包含安全措施的整体系统环境。框110、120、115、125和128表示正在被设计的系统的安全分析步骤。系统接收技术安全要求110。执行各种类型的安全分析120,诸如fmea、fmeda、硬件安全措施标识等。系统基于所执
行的安全分析来生成安全规范130。系统还接收系统的设计以由各种设计工具处理例如电路设计的rtl(寄存器传输级)规范135。各种设计工具使用安全规范130来用符合安全规范130的安全措施来增强系统设计,例如,诸如可测试性设计(dft)工具、综合工具、布局和布线工具等的设计工具140,以及诸如仿真工具、形式验证工具、仿真器、静态验证工具等的验证工具145。系统向系统设计者提供增强的系统的诊断覆盖率和各种安全指标。安全分析流程包括具有功能安全测量和诊断覆盖率测量115和故障仿真的步骤115。用安全措施增强的系统设计提供附加的指标(例如,spfm指标和lfm指标),以用于进一步的安全分析。作为增强的系统设计的安全分析的结果,提供功能安全工作产品128。
33.图1b图示了根据另一个实施例的用于在系统设计中包含安全措施的整体系统环境。功能安全管理系统155接收来自要求管理系统150的安全要求。功能安全管理系统155存储表示安全要求的数据结构。功能安全管理系统155处理存储安全要求的数据结构以生成安全规范,安全规范被存储在安全规范存储装置170中。安全措施包括为系统设计指定安全措施的各种命令。可以由用户经由用户接口160访问所生成的安全规范,用户接口160允许用户修改安全规范或通过添加附加的安全措施来增强安全规范。可以使用安全分析工具165进一步分析所生成的安全规范。
34.安全规范由包括设计工具140和验证工具145的各种工具处理。设计工具140和验证工具145生成或分析系统设计,该系统设计实施如使用安全规范中的命令指定的各种安全措施。工具在考虑安全措施的情况下执行系统的分析。例如,工具可以通过考虑为引入可以影响功耗的安全措施而进行的任何修改,来执行系统设计的准确功率分析。作为另一个示例,如果安全措施在硬件组件中引入冗余,由此增加功耗,则设计工具140相应地调整功率估计。类似地,如果在组件中引入安全措施增加了系统设计的面积,则设计工具140调整对系统设计的面积的估计。作为另一个示例,如果在组件中引入安全措施增加了沿系统设计的路径的延迟,则设计工具140调整系统设计的路径的延迟估计以考虑安全措施。因此,设计工具根据安全规范对考虑安全措施的系统设计执行准确的面积、时序、功率或其他类型的分析。验证工具执行考虑安全措施的故障仿真,从而提供准确的故障仿真。由于各种工具使用共同的安全规范,因此安全分析以及用于包含安全措施的系统设计修改是一致的并且符合安全规范。
35.本文描述的技术可以应用于自动的设计流程,但不限于自动的设计流程并且可以应用于其他设计流程,例如任何eda(电子设计自动化)流程。除非另有指示,否则本文中使用的术语“安全”指代“功能安全”。
36.图2图示了根据一个实施例的用于在系统设计中包含安全措施的系统的架构。图2中图示的系统架构包括计算机系统200,计算机系统200包括安全分析模块210、安全规范生成器230、设计存储装置250和安全规范存储装置260。其他实施例可以包括比图2中指示的更多或更少的模块。
37.设计存储装置250存储系统的设计,例如,电路设计、软件设计、固件设计等。系统设计可以包括可以是软件组件、硬件组件或固件组件的组件。设计由设计工具处理。例如,表示电路设计的设计由电子设计自动化(eda)工具(诸如图8中所示并且结合图8描述的工具)处理。
38.安全分析模块210向用户呈现用户接口,并且经由用户接口从用户接收安全要求
的细节。用户接口允许用户执行各种类型的安全分析,包括故障模式影响分析(fmea)、故障模式影响和诊断分析(fmeda)以及其他可能的安全分析。为了简化对解决方案的描述,流程涉及fmea/fmeda分析,但是所公开的技术适用于其他类型的安全分析,诸如dfa(相关故障分析)、fta(故障树分析)等。
39.该分析产生用于设计的故障模式(fm)和相关联的安全措施(sm)的列表。系统将所确定的安全措施包含在安全规范中。系统可以包含安全规范中的主动安全措施或被动安全措施、监测器、隔离方案等安全措施。可以基于其他安全分析生成安全规范,其他安全分析包括相关故障分析(dfa),相关故障分析(dfa)标识常见原因故障(诸如时钟、复位和功率),或不受由设计的不同部分引起的干扰。分析可以在设计开始之前被执行,并且用户估计覆盖率指标。随着设计过程的进展,这些分析可以进一步被细化,从而考虑更详细的设计分析。
40.安全规范生成器230接收描述安全要求的各种输入,并且基于安全要求生成针对设计的安全规范。安全规范存储装置260存储所生成的设计的安全规范。用户经由由安全分析模块210提供的用户接口在一个地方提供输入。各种设计工具根据由安全规范描述的安全意图来一致地验证和实现设计。
41.设计和验证工具修改系统设计以在设计中包含安全措施。设计工具包括分析工具、探索工具和优化工具。所添加的安全特征符合安全规范。本文进一步描述了用于增强系统设计以添加安全措施的过程的细节。
42.随着设计开始,通过将故障模式及其相应的安全措施与特定的设计块和元件相关联,来执行针对设计的不同部分的故障模式影响和诊断分析(fmeda)。基于该信息,计算各种指标(诸如单点故障指标(spfm)、潜在故障指标(lfm)和(随机)硬件故障的概率指标(pmhf)),以确保设计满足安全目标。这些指标很大程度上取决于安全措施的诊断覆盖率,这些安全措施构成了大多数安全措施。基于该分析,创建用作安全证据的fmea报告和fmeda报告,以及dfa报告和(可能)故障树分析(fta)报告。
43.图3示出了图示根据一个实施例的用于增强系统设计以包含安全措施的过程的流程图。
44.例如计算系统200的系统接收310系统设计,以用于使用多个设计工具通过设计的各个阶段进行处理。系统接收320针对系统设计的安全要求。安全要求指定针对系统设计的安全措施。这些安全措施表示系统设计者标识应当由各种设计工具实现的安全措施的意图。
45.系统根据安全要求生成330安全规范。安全规范包括来自所接收的安全要求的命令集。每个命令指定(a)用于系统设计的一个或多个组件的安全措施和(b)由设计工具处理用于分析、实现和验证安全措施的一个或多个属性。系统可以允许用户进一步修改安全规范,例如以添加新命令、删除一些自动生成的命令或修改现有命令来调整命令中指定的一些参数。
46.系统接收系统设计用于由各种设计工具处理。系统生成340用各种安全措施增强的系统设计,例如,通过修改系统设计以实现在所生成的安全规范中指定的一个或多个安全措施。一个或多个设计工具处理所生成的安全规范,以根据接收的安全要求在系统设计中实现安全措施。设计工具读取安全规范,并且处理安全规范的每个命令。设计工具标识系
统设计中需要被修改以符合安全规范的组件。被修改以实现安全措施的组件可以是软件组件、硬件组件或固件组件。
47.如果安全规范包括指定特定组件类型的组件需要实现特定安全措施的命令,则设计工具标识该组件类型的所有组件并且修改它们的设计以包括安全措施。作为示例,如果安全规范指定某些类型的寄存器应当实现三模式冗余,则工具(1)标识需要被修改的寄存器r,(2)修改系统设计以包括寄存器的附加副本,(3)添加多数表决器组件,(4)将寄存器r的输入连接到寄存器的副本中的每个副本的输入,(5)将寄存器的副本的输出连接到多数表决器组件的输入,以及(6)将多数表决器组件的输出连接到接收了寄存器r的输出的组件。
48.在设计过程期间,相同的安全规范由多个工具使用。例如,如果电路设计由多个eda工具处理,则相同的安全规范由验证工具、布局和布线工具、故障仿真工具等使用。工具可以修改设计以包含安全措施或执行考虑安全措施的分析,例如,通过缩放各种参数而无需明确修改系统设计。
49.系统可以指定安全寄存器以实现以下安全措施中的一种安全措施:(1)三模块冗余(tmr),(2)双模块冗余(dmr)或(3)容错(ft)。安全措施指定安全措施中的寄存器的副本的数目,例如,根据dmr安全规范,两个寄存器副本,或者根据tmr安全规范,三个副本。安全规范包括创建安全寄存器的命令。用于创建安全寄存器的命令可以接受参量(argument),参量包括安全措施的类型(tmr、dmr或ft)、布局中寄存器之间的最小距离、需要为复制的寄存器单独布线的针脚类型等。验证工具验证设计工具是否符合安全规范。
50.用于创建安全寄存器的命令可以不将安全措施绑定到任何特定寄存器或任何其他设计元素,而是指定安全措施背后的意图。因此,命令指定了用于实现安全措施的参数和结构(construct),而与其中包含安全措施的特定环境无关。这允许在设计和验证过程的各个阶段期间包含安全措施。单独的命令用于将寄存器绑定到由创建安全寄存器命令描述的安全寄存器规则。各种工具修改系统设计以实现如图4中图示的安全寄存器。
51.图4示出了根据一个实施例的当使用安全规范指定安全寄存器时的设计的示例。如图4中所示,安全规范指定了三模块冗余。因此,工具增强电路设计,以包括寄存器的三个副本,三个副本被示为触发器ff1、ff2和ff3。从电路的组件410接收三个触发器ff1、ff2和ff3的输入。触发器ff1、ff2和ff3的输出作为输入被提供给多数表决器组件,该多数表决器组件基于匹配的输入值中的大多数来确定其输出。
52.工具可以通过修改系统设计以根据命令添加附加的寄存器和多数表决器,来处理安全规范中的安全寄存器命令。估计电路设计的功率的工具可以调整功率要求,以考虑由附加的寄存器和多数表决器消耗的附加功率。估计电路设计的面积的工具可以缩放面积估计,以考虑由于添加附加的寄存器和多数表决器而导致的面积的可能增加。估计沿各种路径长度的延迟的工具可以基于由路径中引入的附加组件(例如,多数表决器)添加的延迟,通过缩放因子来调整延迟。
53.在一个实施例中,安全规范包括多核锁步命令,多核锁步命令指定需要被复制的安全关键模块的意图。该命令确保了在特定步骤处,由该步骤生成的结果与该组件的冗余副本进行比较。用于创建安全核心的命令指定针对组件的核心数目。如果规范指定包括组件的两个副本,则安全措施被称为双核锁步(dcls)安全措施。通常,安全规范可以指定多核
锁步(mcls)安全措施。
54.如果指定两个核心,则工具修改设计以包括组件的两个副本并且在组件的每个输出处添加比较逻辑。如果指定三个核心,则工具修改设计以包括组件的三个副本,并且在每个输出处添加表决逻辑。如果命令指定高于三的复制因子,则在所有核心没有在输出的单个值上达成一致的情况下,用户必须提供用于选择获胜值的hdl(硬件描述语言)模块名称。各种工具修改系统设计以实现如图5中所示的多个核心。
55.图5示出了根据一个实施例的当由安全规范指定安全核心规则时的系统设计的示例。如图5中所示,创建安全核心命令用于指定使用两个核心的安全意图。工具将设计修改为使用两个核心,包括主核心510和次核心530,并且使用比较器520来比较两个核心510和530的输出。
56.工具可以通过修改系统设计以根据命令添加多核登录来处理安全规范中的多核锁步命令。估计电路设计的功率的工具可以调整功率要求,以考虑由次核心和比较器消耗的附加功率。估计电路设计的面积的工具可以缩放面积估计,以考虑由于添加次核心和比较器而导致的面积的可能增加。
57.在一个实施例中,安全规范包括指定针对故障保护有限状态机(fsm)的意图的命令。该命令指定设计中需要针对单事件翻转(seu)导致的死锁进行设计的fsm。如果任何seu将fsm置于损坏状态,则设计包括在fsm中编码的机制,以使其恢复到恢复状态,从而防止系统进入挂起状态。
58.图6示出了根据一个实施例的使用故障保护有限状态机的设计的示例。图6中图示的有限状态机600转换通过各种状态,包括状态000、001、010、011和100。状态010被标识为安全状态。如果在状态000中出现故障,则系统转换到安全状态010并且跳过状态001。
59.验证工具确保这些fsm被实现为遵守安全规范。设计工具修改系统设计以添加加从非法状态到合法状态的转换。在一个实施例中,工具分别使用汉明码hamming2和hamming3自动插入错误检测和错误校正电路。例如,可以通过综合工具将错误检测/校正电路插入到表示电路设计的网表中。
60.工具(诸如rtl验证工具、仿真器(simulator)/模拟器(emulator)工具)对错误检测/校正功能进行建模。这允许用户在fsm寄存器中注入故障以创建使得fsm复位为默认状态的错误检测的场景。这验证了来自该fsm的下游逻辑,以便能够正确地处理该fsm由于seu而在操作的中间复位的场景。rtl级故障仿真也考虑该经修改的功能。rtl级故障仿真需要知道fsm的单个触发器上的故障被检测和校正。用户可以通过使用force/deposit注入错误来执行rtl仿真(simulation)/模拟(emulation),并且确保错误不会向下游传播。经修改的系统设计校正错误。
61.在一个实施例中,安全规范包括将设计监测器添加到系统设计的命令。监测器是从系统设计中的特定点接收信号并且可以基于信号执行操作的组件,例如,以监测某些活动并且报告或生成另一个信号。例如,监测器可以检测信号是否超过阈值,并且如果信号超过阈值则生成中断。监测命令指定监测器的输入和输出以及参数,例如阈值,监测器使用该阈值来对信号进行比较。监测器的另一个示例是温度监测器,它检测温度是高于还是低于允许的操作条件。
62.图7示出了根据一个实施例的利用设计监测器增强的系统设计700的示例。系统接
收系统设计700并且利用监测器对其进行增强。监测器720接收组件710的输入信号和输出信号。基于输入信号的值和输出信号的值,监测器720生成误差值。因此,监测器可以基于组件710的输入和输出来实现约束检查。
63.工具可以通过修改系统设计以添加与由安全规范标识的组件相关的监测逻辑,来处理安全规范中的监测命令。估计电路设计的功耗的工具可以调整功耗估计,以考虑由监测器消耗的附加功耗。估计电路设计的面积的工具可以缩放面积估计,以考虑由于添加监测器而导致的面积的可能增加。
64.出于说明的目的而提供在安全规范中使用的安全语言的命令的上述示例。可以使用本文公开的技术来实现各种其他类型的安全措施,诸如纠错码(ecc)、错误检测码(edc)、奇偶校验和循环冗余校验。此外,安全规范可以使用任何格式或表示来进行表示,并且不限于任何特定的语法、格式或语言。出于说明的目的,本文描述了各种工具。然而,可以使用本文未提及的其他工具来实现这些技术。此外,可以使用硬件、软件或固件在系统设计中实现安全规范中指定的安全措施。
65.图8描绘了根据本公开的一些实施例的在集成电路的设计和制造期间使用的各种过程的流程图。图8图示了在诸如集成电路的制品的设计、验证和制造期间使用的、用于变换和验证表示集成电路的设计数据和指令的过程800的示例集合。这些过程中的每个过程可以被构造和使能为多个模块或操作。术语“eda”表示术语“电子设计自动化”。这些过程从利用由设计者提供的信息创建产品构思810开始,该信息被转换以创建使用eda过程812的集合的制品。当设计完成时,设计被流片(tape-out)834,这是当集成电路的原图(例如,几何图案)被发送到制造工厂以制造掩模组时发生的,然后掩模组被用于制造集成电路。在流片之后,制造半导体裸片836,并且执行封装和组装工艺838以产生完成的集成电路840。
66.电路或电子结构的规范的范围可以从低级晶体管材料布局到高级描述语言。高级表示可以用于使用硬件描述语言(“hdl”)(诸如vhdl、verilog、systemverilog、systemc、myhdl或openvera)来设计电路和系统。hdl描述可以被变换为逻辑级寄存器传输级(“rtl”)描述、门级描述、布局级描述或掩模级描述。作为更具体的描述的每个较低级别将更有用的细节添加到设计描述中,例如,针对包括描述的模块的更多细节。作为更具体描述的较低级别的表示可以由计算机生成、从设计库导出、或者由另一设计自动化过程创建。用于指定更详细描述的表示语言的较低级别的规范语言的示例是spice(以集成电路为重点的仿真程序),spice用于具有许多模拟组件的电路的详细描述。在每个表示级别的描述被使得能够由该层的对应工具(例如,形式验证工具)使用。设计过程可以使用图8中描绘的序列。通过eda产品(或工具)实现所描述的工艺。
67.在系统设计814期间,要被制造的集成电路的功能被指定。可以针对期望的特性(诸如功耗、性能、面积(物理和/或代码行)以及成本的降低等)来优化设计。将设计划分成不同类型的模块或组件可以在该阶段出现。
68.在逻辑设计和功能验证816期间,以一种或多种描述语言指定电路中的模块或组件,并且检查规范的功能准确性。例如,可以验证电路的组件以生成与所设计的电路或系统的规范的要求相匹配的输出。功能验证可以使用仿真器和其他程序,诸如测试台生成器、静态hdl检验器和形式检验器。在一些实施例中,被称为“仿真器”或“原型系统”的组件的特殊系统用于加速功能验证。
69.在用于测试818的综合和设计期间,hdl代码被转换为网表。在一些实施例中,网表可以是图形结构,其中图形结构的边缘表示电路的组件,并且其中图形结构的节点表示组件如何被互连。hdl代码和网表两者都是层级结构的产品,其可以由eda产品使用以验证集成电路在被制造时根据指定的设计执行。可以针对目标半导体制造技术优化网表。另外,可以测试完成的集成电路以验证集成电路满足规范的要求。
70.在网表验证820期间,检查网表是否符合时序约束并符合hdl代码。在设计计划822期间,针对时序和顶层布线构建和分析集成电路的整体平面图。
71.在布局或物理实现824期间,发生物理放置(诸如晶体管或电容器的电路组件的定位)和布线(通过多个导体连接电路组件),并且可以执行从库中选择单元以实现特定逻辑功能。如本文中所使用,术语“单元”可以指定提供布尔逻辑功能(例如,and、or、not、xor)或存储功能(诸如,触发器或锁存器)的晶体管、其它组件和互连的集合。如本文中所使用,电路“块”可以指两个或两个以上单元。单元和电路块两者都可以被称为模块或组件,并且被使能为物理结构和仿真两者。针对所选择的单元(基于“标准单元”)指定参数(诸如大小),并且使得参数能够在数据库中访问以供eda产品使用。
72.在分析和提取826期间,在布局级处验证电路功能,这允许布局设计的改进。在物理验证828期间,检查布局设计以确保制造约束(诸如drc约束、电约束、光刻约束)是正确的,并且确保电路功能匹配hdl设计规范。在分辨率增强830期间,转换布局的几何形状以改进如何制造电路设计。
73.在流片期间,创建数据以用于(如果适当的话,在应用光刻增强之后)生产光刻掩模。在掩模数据准备832期间,“流片”数据用于产生光刻掩模,这些光刻掩模用于产生完成的集成电路。
74.计算机系统的存储子系统可以用于存储程序和数据结构,该程序和数据结构由本文描述的eda产品中的一些或全部eda产品使用,并且由用于库的单元的开发和用于使用库的物理和逻辑设计的产品使用。
75.图9描绘了本公开的实施例可以在其中操作的示例计算机系统的图。图9图示了计算机系统900的示例机器,在该示例机器中可以执行用于使机器执行本文所讨论的方法中的任何一个或多个方法的指令的集合。在备选实施方式中,机器可以被连接(例如,联网)到lan、内联网、外联网和/或因特网中的其他机器。机器可以在客户端-服务器网络环境中的服务器或客户端机器的能力下操作,作为对等(或分布式)网络环境中的对等机器,或者作为云计算基础设施或环境中的服务器或客户端机器操作。
76.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、web设备、服务器、网络路由器、交换机或网桥、或者能够执行指定要由该机器采取的动作的指令的集合(顺序地或以其他方式)的任何机器。此外,虽然示出了单个机器,但是术语“机器”还应当被认为包括单独地或联合地执行指令集(或多个集合)以执行本文所讨论的方法中的任何一个或多个方法的机器的任何集合。
77.示例计算机系统900包括处理设备902、主存储器904(例如,只读存储器(rom)、闪存、诸如同步dram(sdram)的动态随机存取存储器(dram)、静态存储器906(例如,闪存、静态随机存取存储器(sram)等))和数据存储设备918,它们经由总线930彼此通信。
78.处理设备902表示一个或多个处理器,诸如微处理器、中央处理单元等。更具体地,
处理设备可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其他指令集的处理器、或实现指令集的组合的处理器。处理设备902还可以是一个或多个专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理设备902可以被配置为执行用于执行本文描述的操作和步骤的指令926。
79.计算机系统900还可以包括网络接口设备908以通过网络920进行通信。计算机系统900还可以包括视频显示单元910(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入设备912(例如,键盘)、光标控制设备914(例如,鼠标)、图形处理单元922、信号生成设备916(例如,扬声器)、图形处理单元922、视频处理单元928以及音频处理单元932。
80.数据存储设备918可以包括机器可读存储介质924(也称为非暂态计算机可读介质),其上存储有体现本文所描述的方法或功能中的任何一个或多个的一个或多个指令926的集合或软件。指令926还可以在其由计算机系统900执行期间完全或至少部分地驻存在主存储器904内和/或处理设备902内,主存储器904和处理设备902也构成机器可读存储介质。
81.在一些实施方式中,指令926包括用于实现与本公开相对应的功能的指令。虽然机器可读存储介质924在示例实现中被示为单个介质,但是术语“机器可读存储介质”应当被认为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”还应当被认为包括能够存储或编码指令集的任何介质,所述指令集用于由机器执行并且使机器和处理设备902执行本公开的任何一个或多个方法。因此,术语“机器可读存储介质”应当被认为包括但不限于固态存储器、光学介质和磁性介质。
82.已经根据对计算机存储器内的数据位的操作的算法和符号表示呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的方式。算法可以是导致期望结果的操作的序列。操作是需要对物理量进行物理操纵的操作。这样的量可以采取能够被存储、组合、比较和以其他方式操纵的电信号或磁信号的形式。这样的信号可以被称为位、值、元素、符号、字符、项、数字等。
83.然而,应当记住,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非特别声明,否则如从本公开明显的,应当理解,在整个说明书中,某些术语指的是计算机系统或类似电子计算设备的动作和过程,其将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其他这样的信息存储设备内类似地表示为物理量的其他数据。
84.本公开还涉及用于执行本文中的操作的装置。该装置可以被专门构造用于预期目的,或者其可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这样的计算机程序可以被存储在计算机可读存储介质中,诸如但不限于任何类型的磁盘,包括软盘、光盘、cd-rom和磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡、或适于存储电子指令的任何类型的介质,每个都耦合到计算机系统总线。
85.本文提出的算法和显示并不固有地与任何特定计算机或其他装置相关。各种其他系统可以与根据本文的教导的程序一起使用,或者可以证明对于构造更专用的装置来执行
该方法是方便的。另外,不参考任何特定编程语言来描述本公开。应当理解,可以使用各种编程语言来实现如本文所述的本公开的教导。
86.本公开可以被提供为计算机程序产品或软件,其可以包括其上存储有指令的机器可读介质,该指令可以用于对计算机系统(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存设备等。
87.在前述公开内容中,已经参考本公开内容的特定示例实现方式描述了本公开内容的实现方式。将明显的是,在不脱离所附权利要求中阐述的本公开的实施方式的更广泛的精神和范围的情况下,可以对其进行各种修改。在本公开以单数形式指代一些元件的情况下,在附图中可以描绘多于一个的元件,并且相同的元件用相同的附图标记被标记。因此,本公开和附图应被视为说明性的而非限制性的。
88.备选实施例
89.鉴于低功率考虑,本文公开的实施例可用于电路的连接性验证。尽管将soc i/o环连接性作为对其执行形式验证的电路类型的示例而进行呈现,但实施例可以用于任何其他类型的电路的形式验证。此外,用于形式验证的断言不限于指定电路的连接性的断言,而是可以是描述电路的任何其他类型的断言。
90.以上描述的一些部分在算法过程或操作方面描述了实施例。这些算法描述和表示通常被数据处理领域的技术人员用来将他们工作的实质有效地传达给本领域的其他技术人员。这些操作虽然在功能上、计算上或逻辑上进行了描述,但应当被理解为由计算机程序实现,该计算机程序包括用于由处理器或等效电路执行的指令、微代码等。此外,在不失一般性的情况下,有时将这些功能操作的布置称为模块也被证明是方便的。所描述的操作及其相关联模块可以被体现在软件、固件、硬件或其任何组合中。
91.如本文所使用的,对“一个实施例”或“实施例”的任何提及意指结合该实施例描述的特定元件、特征、结构或特性被包括在至少一个实施例中。在说明书的各个地方出现的短语“在一个实施例中”不一定都指代相同的实施例。
92.可以使用表述“耦合”和“连接”连同它们的派生词来描述一些实施例。应该理解,这些术语不旨在作为彼此的同义词。例如,可以使用术语“连接”来描述一些实施例以指示两个以上元件彼此直接物理或电接触。在另一个示例中,可以使用术语“耦合”来描述一些实施例以指示两个以上元件直接物理或电接触。然而,术语“耦合”也可以意指两个以上元件彼此不直接接触,但仍彼此合作或相互作用。实施例不限于该上下文。
93.如本文所使用的,术语“包括”、“包含”、“有”、“具有”或其任何其他变型旨在涵盖非排他性包含。例如,包括元素列表的过程、方法、物品或装置不一定仅限于那些元素,而是可以包括未明确列出的或包括这种过程、方法、物品或装置固有的其他元素。此外,除非有明确的相反说明,否则“或”指代包含性的或,而不是排他性的或。例如,条件a或b由以下中的任一个满足:a为真(或存在)且b为假(或不存在),a为假(或不存在)且b为真(或存在),以及a和b两者为真(或存在)。
94.此外,采用“一”或“一个”的使用来描述本文实施例的元件和组件。这样做仅仅是为了方便并且给出本公开的一般意义。该描述应当被理解为包括一个或至少一个,并且单
数也包括复数,除非很明显它另有含义。在阅读本公开之后,本领域技术人员将理解考虑到低功率考虑的用于电路的形式验证的系统和过程的附加的备选结构和功能设计。因此,虽然已经说明和描述了特定实施例和应用,但是应当理解,本发明不限于本文公开的精确结构和组件,并且在不背离如所附权利要求限定的精神和范围的情况下,可以对本文公开的方法和装置的布置、操作和细节进行对本领域技术人员明显的各种修改、改变和变化。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献