CN116796672A - 用于仿真的基于波形的重构 - Google Patents
用于仿真的基于波形的重构 Download PDFInfo
- Publication number
- CN116796672A CN116796672A CN202311024263.1A CN202311024263A CN116796672A CN 116796672 A CN116796672 A CN 116796672A CN 202311024263 A CN202311024263 A CN 202311024263A CN 116796672 A CN116796672 A CN 116796672A
- Authority
- CN
- China
- Prior art keywords
- signal
- logic circuits
- logic circuit
- waveform
- clock cycles
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 claims description 60
- 230000000737 periodic effect Effects 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 55
- 230000008569 process Effects 0.000 abstract description 46
- 238000013461 design Methods 0.000 description 36
- 230000004888 barrier function Effects 0.000 description 12
- 239000013598 vector Substances 0.000 description 11
- 239000000872 buffer Substances 0.000 description 10
- 238000011156 evaluation Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004148 unit process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本公开涉及用于仿真的基于波形的重构。公开了一种用于标识在仿真完成之后完全重构组合布局所需要的顺序和组合信号的最小集合的过程。从仿真器输出顺序和组合元件最小子集以最大化仿真器速度并且限制仿真器资源(例如,FPGA资源)的利用。使用并行计算网格执行组合波形或SAIF数据的高效重构。
Description
相关申请的交叉引用
本申请是国际申请号为PCT/US2017/061172、国际申请日为2017年11月10日、进入中国国家阶段日期为2019年5月10日、中国国家申请号为201780069727.7、发明名称为“用于仿真的基于波形的重构”的发明专利申请的分案申请。
本申请要求于2016年11月11日提交的题为“用于仿真的基于波形的重构”的美国临时申请No.62/421,167的权益,该临时申请通过引用整体并入本文。
技术领域
本公开涉及用于仿真的基于波形的重构。
背景技术
仿真系统快速执行并且生成非常大量的数据以用于仿真后分析(诸如调试、功率估计等)。用于生成波形或切换活动交换格式(SAIF)数据的传统方法涉及从仿真器转储大量数据,这导致传统方法遭受以下一或多个限制:1)如果所有顺序和组合信号从仿真器被转储,则由于仿真器硬件对数据带宽的限制,速度很慢;2)转储所有顺序和组合信号需要仿真器内部的附加硬件资源,导致容量或速度问题;或者3)如果只是顺序元件被转储并且所有组合信号使用多个并行的基于事件的仿真器离线重构,则重构过程变得缓慢。
发明内容
公开了一种用于标识在仿真完成之后完全重构组合布局所需要的顺序和组合信号的最小集合的过程。从仿真器输出顺序和组合元件的最小子集以最大化仿真器速度并且限制仿真器资源(例如,FPGA资源)的利用。使用并行计算网格执行组合波形或SAIF数据的高效重构。
附图说明
为了容易地标识对任何特定元素或动作的讨论,附图标记中的最高有效数字是指首先引入该元素的图号。
图1是根据本发明的一个实施例的硬件验证系统100的示例性高级框图。
图2示出了根据一个示例实施例的逻辑电路200。
图3示出了组合回路300的示例实施例。
图4示出了顺序回路400的示例实施例。
图5示出了回路中断过程500的示例实施例。
图6示出了波形变换600的示例实施例。
图7示出了信号700的示例实施例。
图8示出了信号800的示例实施例。
图9示出了基于多处理器的计算系统900的示例实施例。
图10示出了基于多处理器的计算过程1000的示例实施例。
图11示出了基于多处理器的计算过程1100的示例实施例。
图12示出了向后追踪无效过程1200的示例实施例。
图13示出了时间分片过程1300的示例实施例。
图14示出了时间矢量化过程1400的示例实施例。
图15示出了数据转储屏障过程1500的示例实施例。
图16示出了根据一个实施例的示例系统1600。
具体实施方式
所公开的实施例可以提高各种电路特征的仿真和测试的效率,包括:
1.组合回路和反馈
2.高效的基于多处理器的计算
3.向后追踪无效
4.时间分片的计算
5.时间矢量化
6.数据转储屏障
在被测设计(DUT)的编译期间,可以标识组合回路并且捕获反馈值(成为在仿真运行期间捕获的顺序元件中的一个元件),以减少逻辑评估中的回路数目。
高效的基于多处理器的计算涉及平衡处理树深度和算法以最小化存储在存储器中的未完成或计算的波形的数目。轻量级调度程序线程和N个重量级计算线程的使用可以实现接近100%的效率。
当捕获DUT中的子集触发器以减少存储器资源利用率时,可以在时间片的开始处捕获触发器值,从而允许知道任何逻辑的初始值。
可以将具有大量相关联事件的信号变换为时间矢量符号,其中在时间步长上表示数据字的每个位。可以在一个时钟周期内对大数据字完成诸如“与”或“或”等单操作码评估。例如,可以执行数据字的64位“与”,而不是64个个体的一位“与”操作。
来自仿真器的传统数据传输利用内置于仿真器中的缓冲器。当缓冲器已满时,这些缓冲器使得仿真器能够向主计算机系统传输更大的数据段。这可能导致DUT的一些数据总体上无序地到达主计算机系统。主计算机系统可以读取整个数据转储以搜索可能针对特定信号而存在的数据。强制仿真器刷新所有数据缓冲器并且向转储的数据文件添加数据转储屏障,可以允许主计算机系统的后处理工具在这些缓冲器边界处对输入数据进行切片。这可以降低存储器利用率,因为主计算机系统不需要将整个数据文件读入存储器或多次读取它。
本文中描述的示例实施例可以与仿真环境结合使用,仿真环境执行模拟以构建目标信号的波形。例如,本文中描述的示例实施例可以与美国专利申请公开No.2017/0091360中描述的仿真和模拟技术一起使用,该申请通过引用以其整体并入本文。
回路中断
在传统的基于事件的模拟中,通过按时间顺序模拟事件来执行波形重构。由模拟器保持事件列表,并且在时间推进到下一时间步骤之前处理事件。如果电路设计中存在组合或顺序回路,则使用前一时间步骤中已知的值来计算下一时间步骤的值。
波形计算在设计上迭代一次,以便一次处理设计中的每个元素的事件。在输入信号已知之后,设计中的每个设计元素被调度以进行评估。
例如,在图2中,逻辑电路202和逻辑电路204可以立即被评估,因为信号214,信号216、信号220和信号222是逻辑电路200的已知主输入,并且它们的值在仿真中被捕获。只能在评估逻辑电路204之后评估从逻辑电路204接收输入信号224的逻辑电路208,因为评估逻辑电路208需要信号224。类似地,在评估逻辑电路202和逻辑电路204之后评估逻辑电路206,因为逻辑电路202和204的输出是逻辑电路206的输入。
在传统的基于事件的模拟中,当在设计内部存在反馈回路时出现问题。在这种情况下,如果逻辑电路的输入从未完全知道,则永远不会对其进行评估。如本文中公开的,诸如图3所示的反馈回路等组合反馈回路可以被破坏,并且在仿真期间捕获该回路内的最佳位置。
参考图3,组合回路300包括第一门302、第二门304和回路中断306。门302和304是逻辑电路的示例。
在DUT的编译期间,标识组合回路并且捕获反馈值,以帮助确保逻辑评估中不存在回路。反馈值可以成为在仿真运行期间捕获的顺序元件之一。
如果在设计内部存在反馈回路,则可以不将逻辑电路(诸如第一门302和第二门304)评估为从第二门304反馈的第一门302的输入,并且输入到第二门304的来自第一门302的输出不是完全已知。组合回路300可以在回路中断306处断开并且在仿真期间捕获这样的位置。
可以根据图5处理组合回路300。
如果在仿真运行期间没有转储顺序元件,则诸如图4所示的回路等包含顺序元件的反馈回路在本文中描述的实施例中也被中断。
参考图4,顺序回路400包括第一门402、第二门404、第三门406、第四门408和回路中断410。门402-408是逻辑电路的示例。
如果在仿真运行期间没有转储顺序元件(例如,第一门402、第二门404、第三门406和第四门408),则包括顺序元件的反馈回路可以被中断。可以根据图5处理顺序回路400。
可以在编译时间标识设计中的组合和顺序回路。标识回路允许仿真器最小化针对整个设计而捕获的主输入。这可能导致针对每个组合回路而捕获一个信号以及针对具有非采样顺序元件的每个回路而捕获的一个信号。
高效的基于多处理器的计算
可以利用多核机器来高效地执行波形计算,因为每个个体的处理器可以评估设计的不同部分。调度程序线程选择具有已知输入的逻辑电路并且将这些逻辑电路发送到工作线程以进行重构。通过监测每个重构线程的处理速度并且分配新逻辑电路以基于构造线程的当前性能来评估负载。下面描述的图9示出了使用调度程序线程和处理速度监测器来平衡一组工作线程之间的波形计算负载的处理器的框图。
切换活动交换格式(SAIF)格式中的功率活动包括针对每个信号的切换的数目以及信号各自为高、低或未知的周期的数目。SAIF格式可能不包含完整的波形细节。
由于不需要所得到的波形,扩展工具可以更有效地操作。在生成SAIF计数之后,可以从存储器中移除所计算的任何中间波形。
可以通过处理节点以最佳方式迭代设计,以便最小化波形存储要求。
在图2中,一个评估顺序是逻辑电路202、逻辑电路204、逻辑电路206和逻辑电路208,要求信号218和信号224同时在存储器中。
最佳顺序是处理逻辑电路204,然后处理逻辑电路208。然后,可以移除信号224,或者重新分配所利用的存储器。接下来,处理逻辑电路202和逻辑电路206。在这种情况下,任何时候存储器中有一个信号。
可以动态地调度事件的顺序以平衡准备评估的逻辑电路的数目和当前在存储器中的信号的数目。
当具有已知(并且准备处理)的所有输入的逻辑电路列表为低时,选择具有高扇出的逻辑电路可能导致更多逻辑电路被添加到该列表。这将命令事件重构以防止准备评估队列中的不足。
当具有所有已知输入的逻辑电路列表很高并且存储器使用很高时,选择具有高扇入的逻辑电路可能导致更多逻辑电路从列表中移除,并且可以移除波形。
下面相对于图10和图11描述用于平衡处理单元或线程之间的波形计算的示例性方法。
向后追踪无效
一些门具有控制引脚,这些控制引脚确定门的功能以及如何处理数据。例如,多路复用器具有选择线,并且触发器可以具有时钟使能“与”或“或”门也可以根据输入值以这种方式运行。
当评估门时,如果控制信号导致输入被忽略,则简化了对该门的评估。门的输出不会改变,并且不需要评估针对非控制引脚的输入值。
例如,在图2中,逻辑电路206是多路复用器,并且其具有用于选择针对特定时间范围的较低输入的选择。这表示输入信号218可以不影响逻辑电路206的输出。
可以通过向后追踪连接到信号218的逻辑并且将该时间范围标记为无效或不需要来执行附加优化。这可能导致在该时间范围期间跳过对逻辑电路202的评估。
该向后追踪可以在逻辑的扇入锥体中发生,以标记具有可以跳过计算的各种时间范围的很多节点。
执行对用于确定低功率结构的设计的分析以标识设计内的时钟门控和数据门控。首先评估这些波形,并且在仿真运行期间潜在地转储这些波形,以进一步提高重构速度。
作为示例,“与”门具有两个输入信号。如果已知两个输入信号中的第一输入信号针对时间0到10,000具有值0,并且从时间10,000到20,000具有值1,则仿真器系统可以立即确定“与”门的输出在时间0到10,000的期间将为0,并且不需要计算第二输入信号的输入。此外,在时间10,000到20,000的期间“与”门的值可以简化为第二输入信号的值。
相对于图12描述用于向后追踪无效的示例性方法。
时间分片的计算
为了限制在仿真/FPGA运行期间捕获的数据量,可以选择和捕获设计中的顺序元件的子集(例如,流水线逻辑,其中捕获流水线的第一级并且在波形重构期间计算后续级)。
当利用该特征来捕获特定时间范围时,利用顺序元件的初始状态。可以利用包括扫描链逻辑的各种技术来使用有限的附加硬件要求获取设计内的顺序元件。
在时间捕获窗口的开始处获取顺序元件的组合并且然后在时间捕获窗口内获取顺序元件的子集,可以允许顺序元件和组合元件的完全重构。
例如,如果图2中的逻辑电路是顺序触发器,并且在仿真执行期间捕获逻辑电路202和逻辑电路204,则系统可以重构信号218和信号224,因为输入是已知的。然而,系统可能没有信息来重构信号226或信号228,直到信号传播到逻辑电路206和逻辑电路208。如果逻辑电路206和逻辑电路208具有门控时钟,则这进一步复杂化,因为这表示信号226或信号228可能在大量的仿真时间周期内是未知的。
在窗口的开始时捕获元素值可以允许针对设计中的所有元素计算初始状态。
相对于图13更详细地描述示例性时间分片过程。
时间矢量化
设计中的一些信号具有大量事件,并且使用传统或波形重构技术计算这些复杂事件是低效的。当对元素的输入数据超过某个阈值时,输入数据模式可以转换为基于时间的位格式。然后可以对结果位向量作为单个实体而不是对每个个体的位执行简单操作。
例如,信号A和B具有如图6所示的数据值。逻辑电路是“与”门,因此所得到的波形C将是A和B的逻辑“与”。图6中示出了将A和B波形中的每个转换为基于字的格式。然后可以对这些元素执行“与”运算,以计算N位。
没有这种转换,很多个体的“与”操作的回路花费很长时间来执行。在图6所示的示例中,通常有64个N计算;转换将该数目减少到8。相对于图14更详细地描述示例性时间矢量化过程。
数据转储屏障
来自硬件的常规数据转储包括内置于硬件中的缓冲器。这些缓冲器允许硬件在缓冲器已满时向主机发送更大的数据段。这表示数据以突发方式而不是按正确的时间顺序到达主机。
为了解决与传统数据转储相关联的问题(例如,不对应于递增时间段的传输),处理工具可能必须读取整个数据转储以搜索可能针对特定信号而存在的数据。为了读取针对特定信号的信号值,可以处理整个转储数据文件,因为稍后可以在数据文件中存在另一组值。
在图7所示的示例中,图7中的波形“A”被保存到文件中。当在位置“p”读取文件时,波形“A”的所有事件都是已知的。但是,该工具无法保证文件中稍后没有针对波形“A”的附加数据部分。因此,可以读取整个文件以检查针对任何附加波形“A”部分。
为了解决该问题,仿真器可以强制硬件刷新所有数据缓冲器并且向转储数据文件添加数据转储屏障,这将允许后处理工具在这些缓冲器边界处对输入数据进行切片。读取数据的工具现在能够处理t1..t2而无需读取文件中的屏障“B”位置,如图8所示。这可能会减少存储器,因为整个数据文件不会被读入存储器或多次读取。
数据屏障的结果是减少了对处理工具的存储器需求。特别地,处理工具不需要将整个数据文件读入存储器或多次读取,而是可以将每个时间段从0..Barrier-B处理为段。相对于图15描述示例性数据转储屏障过程。
图1是根据本发明的一个实施例的硬件验证系统100的示例性高级框图。硬件验证系统100可以用于验证、测试或调试电路设计104。硬件验证系统100可以包括硬件仿真器或原型系统108和计算机系统102,其实施例参考图16描述。如图1所示,硬件仿真器或原型系统108可以耦合到计算机系统102,计算机系统102可以包括可以接收电路设计104的硬件描述语言表示的编译器106模块。
编译器106可以包括多个各种软件模块,可以包括或不包括专用编译器模块。编译器106可以转换、改变、重新配置、添加新功能到和/或控制电路设计104的定时以促进电路设计104的验证、仿真或原型设计。此外,编译器106可以将电路设计104和任何相关联变化编译成用于编程硬件仿真器或原型系统108的二进制图像。
因此,可以最终由集成电路芯片中的硬件实现的电路设计104的逻辑功能和定时可以替代地首先在硬件仿真器或原型系统108中实现。除了其他优点之外,在硬件中验证电路设计104可以以比单独的软件验证高得多的速度完成。
硬件仿真器或原型系统108可以包括多个仿真器单元(例如,单元116、单元118、单元120),每个仿真器单元包括一个或多个电路板(例如,板110、板112、板114)。每个板可以包括一个或多个可编程处理器122(诸如现场可编程门阵列(FPGA))以及其他块(未示出)(诸如存储器、输入/输出设备、其他处理器等)。硬件仿真器或原型系统108从编译器106接收编译的电路设计104,并且对可编程处理器122进行编程以验证电路设计的行为。硬件仿真器或原型系统108可以包括可以用于生成很多其他时钟信号的主系统时钟信号或主系统时钟。
参考图5,回路中断过程500接收多个逻辑电路的计算机化模型(框502)。确定连接成回路的多个逻辑电路的一部分(框504)。确定待跟踪信号(框506)。该信号可以对应于多个逻辑电路的该一部分的两个逻辑电路之间的连接。生成文件(框508)。该文件可以描述(i)多个逻辑电路的计算机化模型,以及(ii)所确定的信号。将该文件传输到仿真器以用于仿真多个逻辑电路并且根据该文件跟踪所确定的信号(框510)。
为了确定多个逻辑电路的连接成回路的一部分,编译器106可以遍历电路设计104的逻辑电路。在一个实施例中,编译器106选择多个逻辑电路中的逻辑电路并且然后确定第一标志还是第二标志与逻辑电路相关联。第一个标志指示逻辑电路已经被检查,第二标志指示逻辑电路尚未被检查。如果编译器106确定逻辑电路与第一标志相关联,则编译器106将第三标志与逻辑电路相关联;第三标志指示逻辑电路是多个逻辑电路的连接成回路的一部分中的电路。如果编译器106确定逻辑电路与第二标志相关联,则编译器106将第一标志与逻辑电路相关联。在将新标志与逻辑电路相关联之后,编译器106选择多个逻辑电路中具有输入耦合到先前检查的逻辑电路的输出的后续逻辑电路。
在一些实施例中,编译器106从与多个逻辑电路的该一部分之中的连接相对应的信号中确定最小数目的要跟踪的信号。在这样的实施例中,文件还描述所确定的最小数目的要跟踪的信号。
在一些实施例中,编译器106确定多个逻辑电路的连接成不同回路的多个部分。如果一个回路包含另一回路,则两个回路可以组合成更大的回路。
在一些实施例中,计算机102从仿真器108接收由仿真器在多个逻辑电路的一部分的仿真期间针对多个时钟周期跟踪的所确定的信号的波形。然后,计算机102可以基于计算机化模型针对多个时钟周期中的第一组时钟周期模拟多个逻辑电路的一部分,而针对多个时钟周期中的第二组时钟周期省略多个逻辑电路的一部分的模拟。计算机102可以基于针对第一组时钟周期的多个逻辑电路的一部分的模拟,针对多个时钟周期生成来自多个逻辑电路的一部分的逻辑电路的输出信号的输出波形。逻辑电路的该输出信号未被仿真器108跟踪。
在一些实施例中,针对多个时钟周期生成逻辑电路的输出信号的输出波形包括针对第一组时钟周期检测逻辑电路的输入信号的输入波形中的周期性图案,针对第一组时钟周期确定周期性图案在输入信号的输入波形中的重复次数,并且基于周期性图案和周期性图案的重复次数针对多个时钟周期生成逻辑电路的输出信号的输出波形。
在一些情况下,逻辑电路的输入信号由仿真器跟踪,或者是另一逻辑电路的输出信号。
在一些实施例中,针对多个时钟周期生成逻辑电路的输出信号的输出波形包括针对第二组时钟周期生成逻辑电路的输出信号的处于预定状态的输出波形。
计算机102还可以被配置为确定要用作逻辑电路的参考信号的信号,确定参考信号处于第一状态的多个时钟周期中的第一组时钟周期,并且确定参考信号处于不同于第一状态的第二状态的多个时钟周期中的第二组时钟周期。确定要用作逻辑电路的参考信号的信号可以包括选择逻辑电路的第一输入信号并且选择具有周期性图案少于第一输入信号的第二输入信号作为参考信号。参考信号可以耦合到逻辑电路的预定端口。
参考图6,波形变换600包括输入波形602、时间矢量604和结果时间矢量606。
可以接收一个或多个输入波形602。输入波形602可以被变换为一个或多个时间矢量604。这可以根据图14来执行。
可以将一个或多个时间矢量604变换为结果时间矢量606。操作包括诸如“与”、“或”等逻辑运算。
参考图7,信号700包括第一时间702、第二时间704、时间段706和转储数据文件708。
可以利用第一时间702和第二时间704来确定时间段706。可以将时间段706转换为转储数据文件708的一部分。
可以根据图15跟踪信号700。
参考图8,信号800包括第一时间802、第二时间804、时间段806和转储数据文件808。
可以利用第一时间802和第二时间804来确定时间段806。可以将时间段806转换为转储数据文件808的一部分。
可以将标志810(例如,屏障)添加到转储数据文件808。标志810可以用于确定转换后的每个时间段806之间的屏障。标志810还可以用于表示转储数据文件808的一部分来自信号800。
可以根据图15跟踪信号800。
参考图9,基于多处理器的计算系统900可以包括调度程序线程902、工作线程904和处理速度监测器906。
调度程序线程902可以接收设计并且将设计的一部分(例如,门或其他逻辑电路)发送到工作线程904以用于要计算的部分的波形。调度程序线程902还可以从处理速度监测器906接收每个工作线程904的处理速度信息。
工作线程904可以接收设计的一部分(例如,门或其他逻辑电路)并且可以计算这些部分的波形。
处理速度监测器906可以监测工作线程904的性能,包括处理速度。处理速度监测器906可以将性能信息发送到调度程序线程902。
可以根据图10和图11来操作基于多处理器的计算系统900。
参考图10,基于多处理器的计算过程1000从仿真器接收多个逻辑电路的信号的波形,该信号由仿真器在多个逻辑电路的仿真期间针对多个时钟周期进行跟踪(框1002)。获取多个逻辑电路的计算机化模型,该计算机化模型包括与多个逻辑电路中的至少第一逻辑电路相对应的计算机化模型的第一部分和与多个逻辑电路中的至少第二逻辑电路相对应的计算机化模型的第二部分(框1004)。例如,可以在处理器的调度程序线程902处接收模型。由第一处理单元使用计算机化模型的第一部分电子地模拟第一逻辑电路(框1006)。由第二处理单元使用计算机化模型的第二部分电子地模拟第二逻辑电路(框1008)。基于第一逻辑电路和第二逻辑电路的模拟,针对多个时钟周期生成来自多个逻辑电路的逻辑电路的输出信号的输出波形(框1010)。可以执行这些模拟并且由工作线程904输出输出波形。
在一些实施例中,基于多处理器的计算过程1000还确定第一处理单元和第二处理单元(例如,处理器上的第一和第二工作线程)中的可用处理单元,其中指令还包括响应于确定第一处理单元可用而模拟第一逻辑电路的指令。
在一些实施例中,在第一处理单元完成第一逻辑电路的模拟之后在第二处理单元模拟第二逻辑电路的同时,基于多处理器的计算过程1000进一步引起第一处理单元模拟多个逻辑电路中的第三逻辑电路。
参考图11,基于多处理器的计算过程1100接收第一逻辑电路(框1102)。确定第一处理单元的可用性(判定框1104)。如果第一处理单元不可用,则确定第二处理单元的可用性(判定框1106)。可用性可以由调度程序线程902确定。如果第二处理单元不可用,则例如由调度程序线程902确定要向其发送第一逻辑电路的处理器(判定框1108)。判定1108可以基于由处理速度监测器906提供的处理速度或其他信息。
如果在1108处确定第一处理单元,则将第一逻辑电路放置在第一处理单元的队列中(框1110)。如果第一处理单元在1104处可用或者第一逻辑电路在第一处理单元的队列的前面,则第一处理单元处理第一逻辑电路。
如果在1108处确定第二处理单元,则将第一逻辑电路放置在第二处理单元的队列中(框1112)。如果第二处理单元在1106处可用或者第一逻辑电路在第二处理队列的队列的前面,则第二处理单元处理第一逻辑电路(框1114)。
在第一处理单元或第二处理单元处理第一逻辑电路之后,基于多处理器的计算过程1100结束。
在一些实施例中,第一逻辑电路可以保留在第一处理单元或第二处理单元的队列中,直到第一逻辑电路位于队列的头部或前部(例如,先进先出)。
在一些实施例中,判定框1108由第一处理单元和第二处理单元的当前性能(例如,处理速度)确定。
参考图12,向后追踪无效过程1200从仿真器接收多个逻辑电路的信号的波形,该信号由仿真器在多个逻辑电路的仿真期间针对多个时钟周期进行跟踪(框1202)。标识多个逻辑电路中的一组一个或多个顺序逻辑电路(框1204)。获取由仿真器跟踪的该组顺序逻辑电路的一个或多个初始值(框1206)。获取多个逻辑电路中的一个或多个逻辑电路的计算机化模型(框1208)。针对多个时钟周期中的第一时钟周期,基于顺序逻辑电路的初始值,根据计算机化模型电子地模拟一个或多个逻辑电路(框1210)。针对多个时钟周期中的第二时钟周期,省略一个或多个逻辑电路的模拟(框1212)。基于针对第一时钟周期的一个或多个逻辑电路的模拟,针对多个时钟周期生成来自一个或多个逻辑电路的逻辑电路的输出信号的输出波形,逻辑电路的输出信号未被仿真器跟踪(框1214)。
在跟踪初始值之后,可以不跟踪顺序逻辑电路中的一个或多个。
在一些实施例中,向后追踪无效化过程1200可以进一步针对第一时钟周期检测逻辑电路的输入信号的输入波形中的周期性图案,针对第一时钟周期确定输入信号的输入波形中的重复的周期性图案的数目,并且基于周期性图案和重复的周期性图案的数目,针对多个时钟周期生成逻辑电路的输出信号的输出波形。向后追踪无效化过程1200还可以针对第二时钟周期生成逻辑电路的输出信号的处于预定状态的输出波形。
在一些实施例中,向后追踪无效化过程1200可以进一步确定要用作逻辑电路的参考信号的信号,确定参考信号处于第一状态的多个时钟周期中的第一时钟周期,并且确定参考信号处于不同于第一状态的第二状态的多个时钟周期中的第二时钟周期。
向后追踪无效化过程1200可以在逻辑的扇入锥体中发生,并且多个节点可以用可以跳过计算的各种时间范围来标记。
可以执行对用于确定低功率结构的设计的分析以标识设计内的时钟门控和数据门控。可以首先评估所标识的时钟门控和数据门控的波形,并且可以在仿真运行期间转储这些波形以进一步提高重构速度。
参考图13,一个时间分片过程1300从仿真器接收多个逻辑电路的信号的波形,该信号由仿真器在多个逻辑电路的仿真期间针对多个时钟周期进行跟踪(框1302)。从波形中确定第一波形的第一部分,第一波形与信号中的第一信号相关联,第一波形的第一部分在多个时钟周期中的预定时钟周期期间具有至少预定数目的切换(框1304)。将第一波形的第一部分转换为多个位,多个位中的每个位表示第一信号在对应的时钟周期期间的状态(框1306)。获取多个逻辑电路中的一个或多个逻辑电路的计算机化模型(框1308)。根据计算机化模型,针对多个时钟周期中的第一时钟周期,电子地模拟一个或多个逻辑电路,多个时钟周期中的第一时钟周期对应于第一波形的第二部分(框1310)。针对与第一波形的第三部分相对应的多个时钟周期中的第二时钟周期,省略一个或多个逻辑电路的模拟(框1312)。针对多个时钟周期中的第三时钟周期,基于多个位电子地模拟一个或多个逻辑电路,多个时钟周期中的第三时钟周期对应于第一波形的第一部分(框1314)。基于针对第一时钟周期和第三时钟周期的一个或多个逻辑电路的模拟,针对多个时钟周期生成来自一个或多个逻辑电路的逻辑电路的输出信号的输出波形,逻辑电路的输出信号未被仿真器跟踪(框1316)。
时间分片过程1300还可以基于多个位通过单个操作码获取与第三时钟周期相对应的输出信号的一部分。
时间分片过程1300可以进一步针对第一时钟周期检测逻辑电路的输入信号的输入波形中的周期性图案,针对第一时钟周期确定输入信号的输入波形中的重复的周期性图案的数目,并且基于周期性图案和重复的周期性图案的数目,针对多个时钟周期生成逻辑电路的输出信号的输出波形。在一些实施例中,针对第二时钟周期生成逻辑电路的输出信号的处于预定状态的输出波形。
时间分片过程1300可以进一步确定要用作逻辑电路的参考信号的信号,确定参考信号处于第一状态的多个时钟周期中的第一时钟周期,并且确定参考信号处于不同于第一状态的第二状态的多个时钟周期中的第二时钟周期。
在一些实施例中,从仿真器接收的信号的波形可以以切换活动接口格式(SAIF)表示。以SAIF表示的信号的波形可以描述信号的切换的数目、信号处于低状态的时钟周期的数目、以及信号处于高状态的时钟周期的数目。
可以利用包括扫描链逻辑在内的技术来获取设计内的顺序元件。可以在有限的附加硬件要求下执行这些技术。在时间捕获窗口的开始时获取顺序元件的组合并且然后在时间捕获窗口内获取顺序元件的子集,可以允许重构顺序元件和组合元件。在窗口的开始时捕获元素的值可以允许计算设计中的元素的初始状态。
参考图14,时间矢量化过程1400接收输入数据(框1402)。输入数据可以是波形。将输入数据的大小与阈值进行比较(判定框1404)。可以从存储器结构接收阈值或者将阈值输入到系统。输入数据被转换为基于矢量的格式(框1406)。基于矢量的格式可以是基于单词的格式。如果输入数据小于阈值或者输入数据被转换为基于矢量的格式,则时间矢量化过程1400结束(完成框1408)。
可以对基于矢量的格式化数据执行附加操作。该操作可以包括逻辑运算(例如,“与”、“或”等)和转换为波形。
参考图15,数据转储屏障过程1500接收由硬件组件仿真的逻辑电路的信号(框1502)。确定针对一时间段的时钟周期数(框1504)。针对该时间段跟踪逻辑电路的信号(框1506)。将所跟踪的信号存储在跟踪存储器单元中(框1508)。生成表示信号的波形的输出数据流(框1510)。在输出数据流中插入标志(框1512)。该标志可以指示针对该时间段的信号的切换结束。将输出数据流传输到主机设备(框1514)。确定信号跟踪是否完成(判定框1516)。如果信号跟踪完成,则数据转储屏障过程1500结束(完成框1518)。
如果信号跟踪未完成,则确定跟踪存储器单元是否已满(判定框1520)。如果跟踪存储器单元已满,则清除跟踪存储器单元(框1522)并且确定新的时间段(框1504)。跟踪的时间段(框1506)可以是先前未跟踪的信号的一部分。如果跟踪存储器单元未满,则针对相同数目的时钟周期的附加时间段跟踪逻辑电路的信号(框1506)。跟踪的时间段可以是先前未跟踪的信号的一部分。
图16示出了根据一个实施例的示例性系统1600的若干组件。在各种实施例中,系统1600可以包括台式PC、服务器、工作站或能够执行诸如本文中描述的这些操作的其他计算设备。在一些实施例中,系统1600可以包括比图16所示的组件多得多的组件。然而,为了公开说明性实施例,不必示出所有这些通常的传统组件。总的来说,各种有形组件或有形组件的子集在本文中可以被称为以特定方式配置或适配的“逻辑”,例如作为配置或适配有特定软件或固件的逻辑。
在各种实施例中,系统1600可以包括共同提供本文中描述的功能的一个或多个物理和/或逻辑设备。在一些实施例中,系统1600可以包括一个或多个复制和/或分布式物理或逻辑设备。
在一些实施例中,系统1600可以包括从“云计算”提供商提供的一个或多个计算资源,例如,由华盛顿的西雅图的Amazon.com公司提供的Amazon Elastic Compute Cloud(“Amazon EC2”);由加利福尼亚州的圣克拉拉市的Sun Microsystems公司提供的SunCloud Compute Utility;由华盛顿州的雷蒙德市的微软公司提供的Windows Azure等。
系统1600包括互连若干组件的总线1602,包括网络接口1608、显示器1606、中央处理单元1610和存储器1604。
存储器1604通常包括随机存取存储器(“RAM”)和永久非暂态大容量存储设备,诸如硬盘驱动器或固态驱动器。存储器1604存储操作系统1612。
可以使用与非暂态计算机可读介质1616(诸如软盘、磁带、DVD/CD-ROM驱动器、存储卡等)相关联的驱动机构(未示出)将这些和其他软件组件加载到系统1600的存储器1604中。
存储器1604还包括数据库1614。在一些实施例中,系统1600可以经由网络接口1608、存储区域网络(“SAN”)、高速串行总线和/或经由其他合适的通信技术与数据库1614通信。
在一些实施例中,数据库1614可以包括从“云存储”提供商提供的一个或多个存储资源,例如,由华盛顿的西雅图的Amazon.com公司提供的Amazon Simple Storage Service(“Amazon S3”)、由加利福尼亚州的山景城的Google公司提供的Google Cloud Storage等。
对“一个实施例”或“实施例”的引用不一定指代同一实施例,尽管它们可以是同一实施例。除非上下文明确要求,否则在整个说明书和权利要求书中,词语“包括(comprise)”、“包括(comprising)”等应当被解释为包含性意义而不是排他性或穷举性意义;也就是说,在“包括但不限于”的意义上。除非明确地限于单个或多个,否则使用单数或复数的单词也分别包括复数或单数。另外,当在本申请中使用时,词语“本文中”、“上文中”、“下文中”和类似含义的词语在本申请中作为整体而不是指本申请的任何特定部分。当权利要求使用“或”一词来引用两个或更多个项目的列表时,该单词将涵盖对该单词的所有以下解释:列表中的任何项目,列表中的所有项目以及列表中的项目的任何组合,除非明确限于一个或另一个。“逻辑”是指机器存储器电路、非暂态机器可读介质和/或电路系统、材料和/或材料能量配置包括可以用于影响器件的操作的控制和/或程序信号、和/或设置和值(诸如电阻、阻抗、电容、电感、电流/电压额定值等)的电路。磁介质、电子电路、电气和光学存储器(易失性和非易失性)和固件都是逻辑的示例。逻辑特别排除纯信号或软件本身(但不排除包含软件并且从而形成物质配置的机器存储器)。本领域技术人员将理解,逻辑可以分布在一个或多个设备中,和/或可以包括存储器、介质、处理电路和控制器、其他电路等的组合。因此,为了清楚和正确,逻辑可能不总是在设备和系统的附图中清楚地示出,尽管其本身存在于其中。本文中描述的技术和过程可以经由分布在一个或多个计算设备中的逻辑来实现。逻辑的特定分布和选择将根据实现而变化。本领域技术人员将理解,存在可以用于实现本文中描述的过程和/或系统(例如,硬件、软件和/或固件)的各种逻辑实现,并且优选的车辆将随着部署有这些过程的上下文而变化。“软件”是指可以容易地重新适应不同目的的逻辑(例如,读/写易失性或非易失性存储器或介质)。“固件”是指实现为只读存储器和/或介质的逻辑。硬件是指实现为模拟和/或数字电路的逻辑。如果实现者确定速度和准确性是最重要的,则实现者可以选择硬件和/或固件车辆;或者,如果灵活性是最重要的,则实现者可以选择单独的软件实现;或者,备选地,实现者可以选择硬件、软件和/或固件的某种组合。因此,存在若干可能的车辆,通过这些车辆可以实现本文所述的过程,其中没有一个本质上优于另一个,因为要使用的任何车辆是根据车辆将被部署的环境和实现者的特定关注点(例如,速度、灵活性或可预测性)而选择的,其中任何一个都可能有所不同。本领域技术人员将认识到,实现的光学方面可以涉及光学定向的硬件、软件和/或固件。前面的详细描述通过使用框图、流程图和/或示例阐述了设备和/或过程的各种实施例。在这样的框图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员将理解这些框图、流程图或示例中的每个功能和/或操作可以通过各种硬件、软件、固件或其实际上的任何组合单独地和/或共同地实现。本文中描述的主题的若干部分可以经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其他集成格式来实现。然而,本领域技术人员将认识到,本文中公开的实施例的一些方面的全部或部分可以在标准集成电路中等效地实现,实现为在一个或多个计算机上运行的一个或多个计算机程序(例如,实现为在一个或多个计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序),实现为固件,或者实现为实际上其任何组合,并且根据本公开,设计电路和/或编写软件和/或固件的代码将在本领域技术人员的技能范围内。另外,本领域技术人员将理解,本文中描述的主题的机制能够以各种形式作为程序产品分发,并且本文中描述的主题的说明性实施例同样适用,而不管用于实际执行分配的信号承载介质的特定类型。信号承载介质的示例包括但不限于:可记录型介质,诸如软盘、硬盘驱动器、CD ROM、数字磁带、闪存驱动器、SD卡、固态固定或可移动存储器、以及计算机存储器。在一般意义上,本领域技术人员将认识到,可以通过各种硬件、软件、固件或其任何组合单独地和/或共同地实现的本文中描述的各个方面可以被视为包括各种类型的“电路系统”。因此,如本文中使用的,“电路系统”包括但不限于具有至少一个分立电路的电路系统、具有至少一个集成电路的电路系统、具有至少一个专用集成电路的电路系统、形成由计算机程序配置的通用计算设备的电路系统(例如,由至少部分地执行本文所述的过程和/或设备的计算机程序配置的通用计算机、或由至少部分地执行本文所述的过程和/或设备的计算机程序配置的微处理器)、形成存储器设备的电路系统(例如,随机存取存储器的形式)、和/或形成通信设备的电路系统(例如,调制解调器、通信交换机或光电设备)。本领域技术人员将认识到,在本领域中以本文中阐述的方式描述设备和/或过程是常见的,并且此后使用标准工程实践来将这样描述的设备和/或过程集成到更大的系统中。也就是说,可以经由合理数目的实验将本文中描述的设备和/或过程的至少一部分集成到网络处理系统中。
Claims (17)
1.一种包括存储的指令的非暂态计算机可读介质,所述指令在由处理器执行时引起所述处理器执行以下操作:
从仿真器接收多个逻辑电路的信号的波形,所述信号由所述仿真器在所述多个逻辑电路的仿真期间针对多个时钟周期跟踪;
获取多个逻辑电路的计算机化模型,所述计算机化模型包括:
所述计算机化模型的第一部分,对应于所述多个逻辑电路中的至少第一逻辑电路,以及
所述计算机化模型的第二部分,对应于所述多个逻辑电路中的至少第二逻辑电路;
由第一处理单元使用所述计算机化模型的所述第一部分电子地模拟所述第一逻辑电路;
由第二处理单元使用所述计算机化模型的所述第二部分电子地模拟所述第二逻辑电路;以及
基于所述第一逻辑电路和所述第二逻辑电路的所述模拟,针对所述多个时钟周期生成来自所述多个逻辑电路的逻辑电路的输出信号的输出波形。
2.根据权利要求1所述的非暂态计算机可读介质,还包括在由所述处理器执行时引起所述处理器执行以下操作的指令:
确定所述第一处理单元和所述第二处理单元中的可用处理单元,
其中所述指令还包括:用于响应于确定所述第一处理单元是可用的而由所述第一处理单元模拟所述第一逻辑电路的指令。
3.根据权利要求1所述的非暂态计算机可读介质,还包括在由所述处理器执行时引起所述第一处理单元在所述第一处理单元完成所述第一逻辑电路的模拟之后在所述第二处理单元模拟所述第二逻辑电路的同时来模拟所述多个逻辑电路中的第三逻辑电路的指令。
4.一种包括存储的指令的非暂态计算机可读介质,所述指令在由处理器执行时引起所述处理器执行以下操作:
从仿真器接收多个逻辑电路的信号的波形,所述信号由所述仿真器在所述多个逻辑电路的仿真期间针对多个时钟周期进行跟踪;
标识所述多个逻辑电路中的顺序逻辑电路的集合;
获取由所述仿真器跟踪的所述顺序逻辑电路的集合中的每个逻辑电路的初始值;
获取所述多个逻辑电路中的一个或多个逻辑电路的计算机化模型;
针对所述多个时钟周期中的第一时钟周期,基于所述顺序逻辑电路的集合的初始值,根据所述计算机化模型电子地模拟所述一个或多个逻辑电路;
针对所述多个时钟周期中的第二时钟周期,省略所述一个或多个逻辑电路的模拟;以及
基于针对所述第一时钟周期的所述一个或多个逻辑电路的所述模拟,针对所述多个时钟周期生成来自所述一个或多个逻辑电路中的逻辑电路的输出信号的输出波形,所述逻辑电路的输出信号未被所述仿真器跟踪。
5.根据权利要求4所述的非暂态计算机可读介质,其中在所述初始值被跟踪之后,不跟踪所述顺序逻辑电路的集合中的一个或多个逻辑电路。
6.根据权利要求4所述的非暂态计算机可读介质,其中引起所述处理器针对所述多个时钟周期生成所述逻辑电路的所述输出信号的所述输出波形的所述指令还包括在被执行时引起所述处理器执行以下操作的指令:
针对所述第一时钟周期检测所述逻辑电路的输入信号的输入波形中的周期性图案;
针对所述第一时钟周期确定所述输入信号的输入波形中的重复的周期性图案的数目;以及
基于所述周期性图案和重复的所述周期性图案的数目,针对所述多个时钟周期生成所述逻辑电路的所述输出信号的所述输出波形。
7.根据权利要求6所述的非暂态计算机可读介质,其中引起所述处理器针对所述多个时钟周期生成所述逻辑电路的所述输出信号的所述输出波形的所述指令还包括在被执行时引起所述处理器执行以下操作的指令:
针对所述第二时钟周期生成所述逻辑电路的所述输出信号的、处于预定状态的所述输出波形。
8.根据权利要求4所述的非暂态计算机可读介质,还包括在由所述处理器执行引起所述处理器执行以下操作的指令:
确定待用作所述逻辑电路的参考信号的信号;
确定所述多个时钟周期中的、所述参考信号处于第一状态的第一时钟周期;以及
确定所述多个时钟周期中的、所述参考信号处于不同于所述第一状态的第二状态的第二时钟周期。
9.一种包括存储的指令的非暂态计算机可读介质,所述指令在由处理器执行时引起所述处理器执行以下操作:
从仿真器接收多个逻辑电路的信号的波形,所述信号由所述仿真器在所述多个逻辑电路的仿真期间针对多个时钟周期跟踪;
从所述波形中确定第一波形的第一部分,所述第一波形与所述信号中的第一信号相关联,所述第一波形的所述第一部分在所述多个时钟周期中的预定时钟周期期间具有至少预定数目的切换;
将所述第一波形的所述第一部分转换为多个位,所述多个位中的每个位表示所述第一信号在对应的时钟周期期间的状态;
获取所述多个逻辑电路中的一个或多个逻辑电路的计算机化模型;
根据所述计算机化模型,针对所述多个时钟周期中的第一时钟周期,电子地模拟所述一个或多个逻辑电路,所述多个时钟周期中的所述第一时钟周期对应于所述第一波形的第二部分;
针对与所述第一波形的第三部分相对应的所述多个时钟周期中的第二时钟周期,省略所述一个或多个逻辑电路的模拟;
针对所述多个时钟周期中的第三时钟周期,基于所述多个位电子地模拟所述一个或多个逻辑电路,所述多个时钟周期中的所述第三时钟周期对应于所述第一波形的所述第一部分;以及
基于针对所述第一时钟周期和所述第三时钟周期的所述一个或多个逻辑电路的所述模拟,针对所述多个时钟周期生成来自所述一个或多个逻辑电路的逻辑电路的输出信号的输出波形,所述逻辑电路的输出信号未被所述仿真器跟踪。
10.根据权利要求9所述的非暂态计算机可读介质,其中引起所述处理器针对所述多个时钟周期中的第三时钟周期基于所述多个位来模拟所述一个或多个逻辑电路的指令进一步引起所述处理单元基于所述多个位通过单个操作码获取与所述第三时钟周期相对应的所述输出信号的一部分。
11.根据权利要求9所述的非暂态计算机可读介质,其中针对所述多个时钟周期生成所述逻辑电路的所述输出信号的所述输出波形的所述指令还包括在被执行时引起所述处理器执行以下操作的指令:
针对所述第一时钟周期检测所述逻辑电路的输入信号的输入波形中的周期性图案;
针对所述第一时钟周期确定所述输入信号的所述输入波形中的重复的周期性图案的数目;以及
基于所述周期性图案和重复的所述周期性图案的数目,针对所述多个时钟周期生成所述逻辑电路的所述输出信号的所述输出波形。
12.根据权利要求11所述的非暂态计算机可读介质,其中引起所述处理器针对所述多个时钟周期生成所述逻辑电路的所述输出信号的所述输出波形的所述指令还包括在被执行时引起所述处理器执行以下操作的指令:
针对所述第二时钟周期生成所述逻辑电路的所述输出信号的、处于预定状态的所述输出波形。
13.根据权利要求9所述的非暂态计算机可读介质,还包括在由所述处理器执行时引起所述处理器执行以下操作的指令:
确定待用作所述逻辑电路的参考信号的信号;
确定所述多个时钟周期中的、所述参考信号处于第一状态的所述第一时钟周期;以及
确定所述多个时钟周期中的、所述参考信号处于不同于所述第一状态的第二状态的所述第二时钟周期。
14.根据权利要求9所述的非暂态计算机可读介质,其中从所述仿真器接收的所述信号的所述波形以切换活动接口格式SAIF表示,以所述SAIF表示的信号的波形描述所述信号的切换的数目,所述信号处于低状态的时钟周期的数目、以及所述信号处于高状态的时钟周期的数目。
15.一种包括存储的指令的非暂态计算机可读介质,所述指令在由仿真器执行时将所述仿真器的硬件组件配置为:
针对一时间段跟踪由所述硬件组件仿真的逻辑电路的信号;
将所跟踪的信号存储在跟踪存储器单元中;
生成表示所述信号的波形的输出数据流;
在所述输出数据流中插入标志,所述标志指示针对所述一时间段的所述信号的切换的结束;以及
将所述输出数据流传输到主机设备。
16.根据权利要求15所述的非暂态计算机可读介质,其中所述标志在所述跟踪存储器单元已满时在所述一时间段之后被插入,并且其中所述仿真器还被配置为:
清除所述跟踪存储器单元;以及
针对附加时间段跟踪所述信号。
17.根据权利要求15所述的非暂态计算机可读介质,其中所述标志在所述跟踪存储器单元已满之前的所述时间段之后被插入,并且其中所述仿真器还被配置为针对附加时间段跟踪所述信号,所述一时间段和所述附加时间段具有相同数目的时钟周期。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662421167P | 2016-11-11 | 2016-11-11 | |
US62/421,167 | 2016-11-11 | ||
PCT/US2017/061172 WO2018089842A1 (en) | 2016-11-11 | 2017-11-10 | Waveform based reconstruction for emulation |
CN201780069727.7A CN109937418B (zh) | 2016-11-11 | 2017-11-10 | 用于仿真的基于波形的重构 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780069727.7A Division CN109937418B (zh) | 2016-11-11 | 2017-11-10 | 用于仿真的基于波形的重构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116796672A true CN116796672A (zh) | 2023-09-22 |
Family
ID=62106580
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311024263.1A Pending CN116796672A (zh) | 2016-11-11 | 2017-11-10 | 用于仿真的基于波形的重构 |
CN201780069727.7A Active CN109937418B (zh) | 2016-11-11 | 2017-11-10 | 用于仿真的基于波形的重构 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780069727.7A Active CN109937418B (zh) | 2016-11-11 | 2017-11-10 | 用于仿真的基于波形的重构 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11200149B2 (zh) |
EP (1) | EP3539027A4 (zh) |
CN (2) | CN116796672A (zh) |
TW (1) | TWI676133B (zh) |
WO (1) | WO2018089842A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10621296B1 (en) * | 2017-06-07 | 2020-04-14 | Synopsys, Inc. | Generating SAIF efficiently from hardware platforms |
US10540466B1 (en) * | 2018-02-09 | 2020-01-21 | Cadence Design Systems, Inc. | Systems and methods for streaming waveform data during emulation run |
US11138356B1 (en) * | 2018-08-17 | 2021-10-05 | Synopsys, Inc. | Dedicated reconfigurable IP for emulation-based power estimation |
EP3853726A1 (en) * | 2018-10-22 | 2021-07-28 | Siemens Industry Software Inc. | Dynamic allocation of computing resources for electronic design automation operations |
US11023635B1 (en) * | 2020-07-27 | 2021-06-01 | Synopsys, Inc. | Sequence of frames generated by emulation and waveform reconstruction using the sequence of frames |
CN114329644B (zh) * | 2021-11-17 | 2023-03-24 | 芯华章科技股份有限公司 | 对逻辑系统设计进行加密仿真的方法、设备及存储介质 |
CN116933699A (zh) * | 2022-04-08 | 2023-10-24 | 华为技术有限公司 | 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质 |
CN115718653B (zh) * | 2022-11-24 | 2024-05-07 | 中国华能集团清洁能源技术研究院有限公司 | 用于仿真平台的数据调用优化方法及系统 |
CN117454835A (zh) * | 2023-09-07 | 2024-01-26 | 芯华章科技(厦门)有限公司 | 保存和读取波形数据的方法、电子设备以及存储介质 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3443720B2 (ja) * | 1995-12-12 | 2003-09-08 | 株式会社日立製作所 | エミュレータ |
US6389379B1 (en) | 1997-05-02 | 2002-05-14 | Axis Systems, Inc. | Converification system and method |
US6009256A (en) | 1997-05-02 | 1999-12-28 | Axis Systems, Inc. | Simulation/emulation system and method |
US6785873B1 (en) * | 1997-05-02 | 2004-08-31 | Axis Systems, Inc. | Emulation system with multiple asynchronous clocks |
US6053947A (en) * | 1997-05-31 | 2000-04-25 | Lucent Technologies, Inc. | Simulation model using object-oriented programming |
US6073194A (en) * | 1997-07-31 | 2000-06-06 | Advanced Micro Devices, Inc. | Transaction based windowing methodology for pre-silicon verification |
US6061511A (en) * | 1998-06-12 | 2000-05-09 | Ikos Systems, Inc. | Reconstruction engine for a hardware circuit emulator |
US6295623B1 (en) * | 1999-01-29 | 2001-09-25 | Credence Systems Corporation | System for testing real and simulated versions of an integrated circuit |
US6317381B1 (en) * | 1999-12-07 | 2001-11-13 | Micron Technology, Inc. | Method and system for adaptively adjusting control signal timing in a memory device |
US6847927B2 (en) * | 2000-12-07 | 2005-01-25 | International Business Machines Corporation | Efficient array tracing in a logic simulator machine |
US20030105617A1 (en) * | 2001-12-05 | 2003-06-05 | Nec Usa, Inc. | Hardware acceleration system for logic simulation |
AU2003273685A1 (en) * | 2002-10-03 | 2004-04-23 | The Hospital For Sick Children Research Institute | Prevention of primary sjogren's syndrome by ica69 deficiency |
RU2005115082A (ru) * | 2002-11-18 | 2006-01-20 | Арм Лимитед (Gb) | Типы исключительных ситуаций в защищенной системе обработки |
JP2004171367A (ja) * | 2002-11-21 | 2004-06-17 | Matsushita Electric Ind Co Ltd | 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム |
US7716036B2 (en) * | 2003-04-24 | 2010-05-11 | International Business Machines Corporation | Method and apparatus to use clock bursting to minimize command latency in a logic simulation hardware emulator / accelerator |
US20080140379A1 (en) * | 2003-05-22 | 2008-06-12 | Xoomsys, Inc. | Approximations for simulations of systems |
US7698118B2 (en) * | 2004-04-15 | 2010-04-13 | Mentor Graphics Corporation | Logic design modeling and interconnection |
US8073672B2 (en) | 2004-07-06 | 2011-12-06 | Mentor Graphics Corporation | Managing communication bandwidth in co-verification of circuit designs |
EP1769345B1 (en) * | 2004-07-12 | 2018-12-19 | Mentor Graphics Corporation | Software state replay |
US8898603B1 (en) * | 2005-10-17 | 2014-11-25 | Altera Corporation | Method and apparatus for deriving signal activities for power analysis and optimization |
KR101282963B1 (ko) * | 2006-05-12 | 2013-07-08 | 삼성전자주식회사 | 에뮬레이션 시스템 및 그 방법 |
JP2008065640A (ja) | 2006-09-07 | 2008-03-21 | Toshiba Corp | シミュレーション装置およびそのシミュレーション制御方法 |
US8082139B1 (en) | 2007-03-27 | 2011-12-20 | Xilinx, Inc. | Displaying signals of a design block emulated in hardware co-simulation |
US8706467B2 (en) | 2008-04-02 | 2014-04-22 | Synopsys, Inc. | Compact circuit-simulation output |
JP4881404B2 (ja) | 2009-03-27 | 2012-02-22 | 株式会社東芝 | 回路記述生成装置および機能検証方法 |
US10423740B2 (en) | 2009-04-29 | 2019-09-24 | Synopsys, Inc. | Logic simulation and/or emulation which follows hardware semantics |
US8265918B1 (en) | 2009-10-15 | 2012-09-11 | Xilinx, Inc. | Simulation and emulation of a circuit design |
US8255853B2 (en) * | 2010-04-08 | 2012-08-28 | Springsoft Usa, Inc. | Circuit emulation systems and methods |
US8640070B2 (en) * | 2010-11-08 | 2014-01-28 | International Business Machines Corporation | Method and infrastructure for cycle-reproducible simulation on large scale digital circuits on a coordinated set of field-programmable gate arrays (FPGAs) |
US9619598B2 (en) | 2012-01-31 | 2017-04-11 | Mentor Graphics Corporation | Input space reduction for verification test set generation |
US9703579B2 (en) | 2012-04-27 | 2017-07-11 | Mentor Graphics Corporation | Debug environment for a multi user hardware assisted verification system |
US20140052430A1 (en) | 2012-04-27 | 2014-02-20 | Mentor Graphics Corporation | Partitionless Multi User Support For Hardware Assisted Verification |
US9135376B2 (en) | 2012-05-01 | 2015-09-15 | Mentor Graphics Corporation | Input space reduction for verification test set generation |
US8640064B1 (en) * | 2012-06-12 | 2014-01-28 | Xilinx, Inc. | Hardware description language simulator tracing and control |
TWI472912B (zh) * | 2012-09-11 | 2015-02-11 | Univ Nat Cheng Kung | 以電路內部事件作為觸發條件之除錯控制系統及其方法 |
US9372947B1 (en) | 2014-09-29 | 2016-06-21 | Cadence Design Systems, Inc. | Compacting trace data generated by emulation processors during emulation of a circuit design |
US9959375B2 (en) | 2014-10-06 | 2018-05-01 | Synopsys, Inc. | Efficient emulation and logic analysis |
US10140413B2 (en) | 2015-04-21 | 2018-11-27 | Synopsys, Inc. | Efficient resolution of latch race conditions in emulation |
US9852244B2 (en) * | 2015-05-04 | 2017-12-26 | Synopsys, Inc. | Efficient waveform generation for emulation |
US9286424B1 (en) * | 2015-05-04 | 2016-03-15 | Synopsys, Inc. | Efficient waveform generation for emulation |
US9959379B2 (en) * | 2015-10-07 | 2018-05-01 | Mentor Graphics Corporation | Hybrid compilation for FPGA prototyping |
-
2017
- 2017-11-10 TW TW106138955A patent/TWI676133B/zh active
- 2017-11-10 WO PCT/US2017/061172 patent/WO2018089842A1/en unknown
- 2017-11-10 CN CN202311024263.1A patent/CN116796672A/zh active Pending
- 2017-11-10 CN CN201780069727.7A patent/CN109937418B/zh active Active
- 2017-11-10 EP EP17868631.7A patent/EP3539027A4/en active Pending
- 2017-11-13 US US15/811,010 patent/US11200149B2/en active Active
-
2021
- 2021-11-11 US US17/454,589 patent/US11726899B2/en active Active
-
2023
- 2023-06-27 US US18/342,361 patent/US12001317B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2018089842A1 (en) | 2018-05-17 |
US20230342283A1 (en) | 2023-10-26 |
US12001317B2 (en) | 2024-06-04 |
CN109937418A (zh) | 2019-06-25 |
CN109937418B (zh) | 2023-12-08 |
TWI676133B (zh) | 2019-11-01 |
US20220066909A1 (en) | 2022-03-03 |
US11726899B2 (en) | 2023-08-15 |
US20180137031A1 (en) | 2018-05-17 |
TW201823975A (zh) | 2018-07-01 |
EP3539027A1 (en) | 2019-09-18 |
US11200149B2 (en) | 2021-12-14 |
EP3539027A4 (en) | 2020-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109937418B (zh) | 用于仿真的基于波形的重构 | |
Civera et al. | Exploiting circuit emulation for fast hardness evaluation | |
Civera et al. | An FPGA-based approach for speeding-up fault injection campaigns on safety-critical circuits | |
Tikir et al. | PSINS: An open source event tracer and execution simulator for MPI applications | |
CN102687114B (zh) | 具有行为特征的硬件设计的并发仿真 | |
US20150040096A1 (en) | Emulation-based functional qualification | |
JPS5995657A (ja) | 論理シミユレ−タ | |
US20090248390A1 (en) | Trace debugging in a hardware emulation environment | |
US10162915B2 (en) | Method and system for emulation of multiple electronic designs in a single testbench environment | |
US6847927B2 (en) | Efficient array tracing in a logic simulator machine | |
Civera et al. | FPGA-based fault injection for microprocessor systems | |
US10664637B2 (en) | Testbench restoration based on capture and replay | |
CN117113908B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
US20190005178A1 (en) | Waveform based reconstruction for emulation | |
CN117910398A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 | |
CN115629928B (zh) | 一种面向类脑处理器的软硬协同验证方法及系统 | |
US10621296B1 (en) | Generating SAIF efficiently from hardware platforms | |
Dobis et al. | Open-source verification with chisel and scala | |
US10409624B1 (en) | Data array compaction in an emulation system | |
Civera et al. | New techniques for efficiently assessing reliability of SOCs | |
CN112486748A (zh) | 测试系统及其测试方法 | |
US10606971B2 (en) | Testing netlists based on singular independent signals | |
US6829572B2 (en) | Method and system for efficiently overriding array net values in a logic simulator machine | |
Chen et al. | FPGA-based elastic in-circuit debugging for complex digital logic design | |
CN118468798B (zh) | 一种检查点的生成方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |