硬件仿真

编辑
本词条由“匿名用户” 建档。
在集成电路设计中,硬件仿真是用另一块硬件(通常是专用仿真系统)模仿一个或多个硬件(通常是设计中的系统)的行为的过程。仿真模型通常基于硬件描述语言(如Verilog)源代码,编译成仿真系统使用的格式。目标通常是对正在设计的系统进行调试和功能验证。通常,仿真器的速度足够快,可以插入到工作目标系统中代替尚未构建的芯片,因此可以使用实时数据调试整个系统。这是在线仿真的一种特殊情况。 有时,硬件仿...

什么是硬件仿真

编辑

在集成电路设计中,硬件仿真是用另一块硬件(通常是专用仿真系统)模仿一个或多个硬件(通常是设计中的系统)的行为的过程。仿真模型通常基于硬件描述语言(如Verilog)源代码,编译成仿真系统使用的格式。目标通常是对正在设计的系统进行调试和功能验证。通常,仿真器的速度足够快,可以插入到工作目标系统中代替尚未构建的芯片,因此可以使用实时数据调试整个系统。这是在线仿真的一种特殊情况。

有时,硬件仿真可能会与硬件设备混淆,例如带有辅助软件仿真功能的硬件处理器的扩展卡,例如带有x86芯片的旧子板,以允许x86操作系统在不同处理器系列的主板上运行。

调试模拟与仿真/原型制作

编辑

值得注意的是,模拟和原型设计涉及两种不同的执行风格。模拟串行执行RTL代码,而原型完全并行执行。这导致调试中的差异。在模拟中:

  • 用户可以设置断点并停止仿真以检查设计状态、与设计交互并恢复仿真。
  • 用户可以在“周期中”停止执行,因为它只执行了部分代码。
  • 用户可以随时查看设计中的任何信号以及任何存储位置的内容。
  • 用户甚至可以备份时间(如果他们保存了检查点)并重新运行。

使用原型:

  • 用户使用逻辑分析仪进行可视化,因此只能看到他们提前确定的有限数量的信号(通过夹在探针上)。随着新兴的FPGA原型工具(例如Certus)提供对10,000个内部信号的完全可见性,这种情况正在发生变化。
  • 逻辑分析仪触发时目标并没有停止,因此用户每次更改探头或触发条件时,都必须重新设置环境并从头开始。
  • 探头直接添加到RTL设计中,使特定信号可用于观察。当系统运行时,连接到每个检测信号的基于RTL的探针在每个时钟周期收集信号值。数据存储在FPGABlockRAM的跟踪缓冲区中。连接到原型的分析器下载信息,让用户离线查看系统以进行高效调试。

就RTL执行和调试而言,加速和仿真更像是原型设计和硅片,因为整个设计就像在硅片中一样同时执行。由于通常使用相同的硬件来提供仿真加速和在线仿真,因此这些系统混合了这两种截然不同的调试方式。

高端硬件仿真器提供的调试环境具有逻辑仿真器中可以找到的许多功能,在某些情况下甚至超过其调试功能:

  • 用户可以设置断点并停止仿真以检查设计状态、与设计交互并恢复仿真。仿真器总是在循环边界处停止。
  • 用户可以查看设计中的任何信号或内存内容,而无需在运行前设置探针。虽然还提供了过去时间的可见性,但在某些情况下,它可以显示过去的时间量可能受限于模拟器跟踪内存的深度。
  • 用户甚至可以备份时间(如果他们保存了检查点)并重新运行。
  • 由于成本高昂,许多开发人员无法使用仿真器,这导致了高级FPGA原型设计平台和调试工具的兴起。

硬件仿真

仿真和二态逻辑

编辑

模拟与加速和仿真之间的另一个区别是加速器使用硬件来实现的结果——它们只有两种逻辑状态——以硅片制造时的方式运行。这意味着:

  • 它们对于分析X状态初始化没有用处。
  • 他们不能分析强度分辨率,或者至少这必须在编译时静态完成。
  • 仿真器不会对精确的电路时序进行建模,因此它们可能不会发现任何竞争条件或建立和保持时间违规。

这些任务在逻辑仿真期间或使用静态时序分析工具正确执行。

仿真与原型设计

编辑

仿真器和FPGA原型系统之间的一个关键传统区别在于,仿真器提供了丰富的调试环境,而原型系统几乎没有或没有调试功能,主要在设计调试后创建多个副本,用于系统分析和软件开发。新工具可通过较小的FPGALUT影响实现完整的RTL信号可见性、允许深度捕获并提供多芯片和时钟域分析,以实现与仿真器相当的高效调试。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/126746/

(3)
词条目录
  1. 什么是硬件仿真
  2. 调试模拟与仿真/原型制作
  3. 仿真和二态逻辑
  4. 仿真与原型设计

轻触这里

关闭目录

目录