验证FPGA设计:模拟,仿真,还是碰运气?
优点和缺点
多数人讨论验证流程时,首先会比较模拟和在FPGA内验证的优劣。尽管有经验的读者可能会觉得乏味,本文也还是采用类似的模式。
模拟的一个很大的优点自然是它的访问能力。该方法可以以时钟周期分辨率观察RTL (寄存器传输层)设计中任何信号。只要有必要,对设计状态的控制可以达到任何水平。达到可观性和可控性的唯一限制就是对RTL的了解程度和对模拟环境的掌握程度。你可以在有限的设计领域交互式地工作,也可以构建运行好几天的大型试验。构建的模拟项目运行相对较快,所以可以快速地对很多东西进行试验。
模拟的另一优点是现在的多数模拟环境都可以很好地使用OVL(开放验证库,Open Verification Library)或SystemVerilog断言。经常可以找到直接的方法将这些断言输入到模拟环境中。随着基于断言的验证日益普遍,这点就越发重要。此外,通过模拟环境还可以将设计的激励和测量部分与设计本身分割开。这看起来似乎不是主要问题,但是,在密集验证工作中,这一特点对于保证设计的完整性会很重要。
但是,模拟比较慢。“如果你在做一个有2百万或3百万个门的块,模拟非常好,” 硬件仿真设备厂商Eve的营销副总裁Lauro Rizzatti说。“但是,在有多个块的层次,模拟会变慢,最终达到完全不可用的程度。”
设计的复杂度并不是唯一的限制因素。Altera公司技术营销高级经理Phil Simpson指出,如果设计本身就需要大量数据来进行验证,即使在块的级别模拟也会变得不实用。他以视频编解器为例说明这个问题。在视频编解器中内部状态非常之多,所以可能只有在15分钟的视频短片中间才能表露出问题。但是,对15分钟高清视频压缩和解压的模拟会非常费劲。
评论