是什么? 

  1. Synthesis(综合):

    • 作用: 综合是将你的HDL代码(如VHDL或Verilog)转换成门级网表的过程,这个网表描述了逻辑门和触发器的连接方式。
    • 如何运行: 你可以在Vivado中点击“Run Synthesis”(运行综合)或使用Tcl命令launch_synthesis来开始综合过程。
    • 查看代码是否正确: 综合后,Vivado会生成综合报告,你可以在这些报告中查看潜在的问题。比如,是否有逻辑被优化掉了,是否有错误或警告需要注意。你也可以查看“Elaborated Design”视图来查看综合后的设计结构是否符合预期。
    • 关注: 应关注的是综合报告中的错误和警告,以及设计是否如你所愿地被综合,例如检查是否有不需要的逻辑优化。
  2. Implementation(实现):

    • 作用: 实现过程涉及三个主要步骤:布局(Placing),布线(Routing),以及生成比特流(Bitstream generation)。这一阶段将综合后的网表映射到FPGA上的实际资源中,并处理物理约束。
    • 如何运行: 点击“Run Implementation”(运行实现)或使用Tcl命令launch_implementation来开始实现过程。
    • 查看代码是否正确: 与综合类似,实现后Vivado会生成一系列报告,包括布局和布线报告。这些报告将显示任何错误或警告,以及资源利用率,时序信息等。
    • 关注: 重点关注的是时序报告,资源使用情况,布线拥挤情况,还有实现过程中出现的任何错误或警告。
  3. **Synthesis(综合)主要关注代码的逻辑功能是否能正确转换为硬件描述,而Implementation(实现)**则更多地关注这些逻辑功能是否能在FPGA上物理实现,以及它们的性能如何。

    所以,你应该这样做:

    在综合阶段,确认你的代码逻辑正确无误,没有综合错误或不良的优化。在实现阶段,确认你的设计能够在特定的FPGA硬件上正确布局和布线,并满足时序等性能要求。

对于具体的问题:

所以,我写的testbench只有第二次会用到?Vivado会自己找到testbench在哪里并运行?

不完全是这样。在Vivado中,综合(Synthesis)和实现(Implementation)阶段主要关注的是硬件设计的准备,以便它可以被加载到FPGA上。这些步骤不直接运行测试台(testbench)。

测试台(testbench)是用来仿真(Simulation)你的设计的。这是一个在综合和实现之前可以执行的步骤,用以验证你的设计在逻辑上是否正确。Vivado不会自动找到并运行测试台,你需要手动启动仿真。

仿真可以使用下面的步骤进行:

  1. 编写测试台(testbench):这是一个没有物理对应的,仅用于仿真的VHDL或Verilog文件。它模拟外部信号,并提供给你的设计输入,检查输出是否符合预期。

  2. 运行仿真:你需要在Vivado中指定要仿真的测试台文件,并执行仿真。通常有两种仿真:

    • 行为仿真(Behavioral Simulation):这是在综合之前进行的,目的是检查逻辑设计的行为是否符合预期。
    • 后综合/后实现仿真(Post-synthesis/Post-implementation Simulation):这是在综合或实现后进行的更精确的仿真,它考虑了实际硬件的限制。
  3. 检查结果:仿真后,Vivado会提供一个波形查看器(waveform viewer),你可以在其中查看所有仿真信号随时间的变化,以及各种断言(assertions)和检查点(checkpoints)的结果。

测试台的编写和仿真通常是硬件开发流程中的初步验证步骤,目的是确保设计在逻辑上是正确的。综合和实现步骤之后,可能还需要进行后综合或后实现仿真来确认设计在考虑到具体FPGA硬件限制后的表现。

在vivado中如何写仿真文件(testbench)?_vivado仿真文件怎么写-CSDN博客

04-30 22:11