如何确保FPGA中生成的硬件对于特定代码段是否正确?

时间:2016-12-30 03:49:57

标签: verilog fpga synthesis

我在接受采访时被问到这个问题。面试官问了像#34;假设你已经编写了一个代码,用于在verilog中生成250MHz的时钟并合成它。现在,在仿真之前,您将如何确保生成的硬件能够工作250MHz? " 我已经在互联网上搜索了这个但是找不到任何答案。

4 个答案:

答案 0 :(得分:3)

  • 一些工具包具有后PAR(布局和布线)模拟,不仅模拟逻辑行为,还模拟时序。使用后PAR模拟,您可以验证电路是否符合时序约束。
  • 另一种验证时序的方法是使用时序约束。您的软件可能有一些约束编辑器,您可以为所需的输出信号设置约束。一旦定义,软件将在映射/布局和布线阶段检查时序并报告是否满足。

答案 1 :(得分:2)

在模拟器上运行生成Verilog代码的时钟。

FPGA供应商通常为模拟器提供其综合工具;或者您可以使用EDA供应商提供的免费模拟器或商业模拟器。

模拟器可让您随时查看设计中信号的所有值,以直观的图形用户界面显示,使您能够在FPGA上部署代码之前查找并修复许多问题。

答案 2 :(得分:1)

很抱歉发帖作为答案,没有评论的声誉。

我想也许面试官想要的答案就是使用时序分析器。

在类似SDC的文件中定义约束,并使用供应商时序分析器检查250MHz时钟是否确实可以在给定硬件中工作。

答案 3 :(得分:0)

由综合或PAR工具创建的网表应通过下面的主要步骤(不限于它们)进行验证。 FPGA工具可以选择写出门级网表并导出技术库,因此第三方工具也可以用于这些步骤。

1)静态时序分析(STA)

验证网表关于用户定义的时序约束的时间。 Xilinx和Intel(以前称为Altera)在其设计套件中都内置了工具。

2)正式/逻辑等效性检查

比较RTL和网表的功能。由于这是一个正式的过程,因此无需输入输入向量(例如testbench)。

3)门级模拟

验证功能和时间。通常,SDF(标准延迟格式)文件被馈送到网表的定时数据。 SDF可以通过综合,STA或PAR工具创建。