[ECE]Vivado设计流程中,“Synthesis“(综合)和 “Implementation“(实现)是两个关键步骤

本文详细解释了Vivado工具中HDL代码的综合(Synthesis)和实现(Implementation)过程,包括步骤、报告检查和注意事项。同时强调了测试台(testbench)在设计验证中的作用,以及如何编写和在Vivado中运行仿真。
摘要由CSDN通过智能技术生成

是什么? 

  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博客

  • 25
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vivado软件的使用 一、 建立工程 1.1新建一个工程 或者: 1.2设置工程名字和路径。输入工程名称、选择工程存储路径,并勾选Create project subdirectory选项,为工程在制定存储路径下建立独立的文件夹设置完成后,点击Next。注意: 工程名称和存储路径不能出现文和空格,建议工程名称以字母、数字、下划线来组成。 1.3选择RTL Project一项,并勾选Do not specify sources at this time,勾选该选项是为了跳过在新建工程的过程添加设计源文件。点击Next。根据使用的FPGA开发平台,选择对应的FPGA目标器件. 1.4确认相关信息与设计所用的FPGA器件信息是否一致,一致请点击Finish,不一致,请返回上一步修改。 1.5得到如下的空白的Vivado工程界面,完成空白工程新建 二、 工程设计 2.1设计文件输入,如下图所示,点击Flow Navigator下的Project Manager->Add Sources或间Sources的对话框打开设计文件导入添加对话框。 2.2添加设计文件,然后Next 2.3如果有v/vhd文件,可以通过Add File一项添加。在这里,我们要新建文件,所以选择Create File一项。 2.4在Create Source File输入File Name,点击OK。注:名称不可出现文和空格。 2.5在弹出的Define Module的I/O Port Definition,输入设计模块所需的端口,并设置端口防线,如果端口为总线型,勾选Bus选项,并通过MSB和LSB确定总线宽度。完成后点击OK. 2.6新建的设计文件(此处为flow_led.v)即存在于Source的Design Source。双击打开该文件,输入相应的设计代码。 三、 添加约束 添加约束文件,有两种方法可以添加约束文件,一是利用Vivadoplanning功能,二是可以直接新建XDC的约束文件,手动输入约束命令。 3.1利用IO planning 3.1.1点击Flow Navigator Synthesis的Run Synthesis,先对工程进行综合。 3.1.2综合完成后,选择Open Synthesized Design,打开综合结果。 3.1.3此处应该出现如下界面,如果没有出现,在图示位置layout选择IO planning在右下方的选项卡切换I/O ports 一栏,并在对应的信号后,输出对应的FPGA管脚标号,并制定I/O std。(具体的FPGA约束管脚和IO电平标准,可参考对应板卡的用户手册或原理图)。 3.1.4完成后,点击上方工具栏的保存按钮,工程提示新建XDC文件或选择工程已有的XDC文件。在这里,我们要Create a new file,输入File name,点击OK完成约束过程。 3.1.5、此时在Source下的Constraints会找到新建的XDC文件。 3.2建立XDC文件 3.2.1、点击Add Source ,选择第一项Add or Create Constraints一项,点击Next。 3.2.2、点击Create File ,新建一个XDC文件,输入XDC文件名,点击OK。点击Finish。 3.2.3、双击打开新建好的XDC文件,按照如下规则,输入相应的FPGA管脚约束信息和电平标准。 四、 功能仿真 4.1创建激励测试文件,在Source右击选择Add source。在Add Source界面选择第三项Add or Create Simulation Source,点击Next。 4.2选择Creat File,创建一个新的激励测试文件。输入激励测试文件名,点击OK,然后点击Finish。 4.3弹出module端口定义对话框,由于此处是激励文件,不需要有对外的接口,所以为空。点击OK,空白的激励测试文件就建好了。 4.4在source 下双击打开空白的激励测试文件,完成对将要仿真的module的实例化和激励代码的编写。激励文件完成后,工程目录如下图: 4.5此时,进入仿真。在左侧Flow Navigator点击Simulation 下的Run Simulation 选项,并且选择Run Behavioral Simulaiton一项,进入仿真界面。 4.6下图为仿真界面。 4.7可以通过左侧的Scope一栏的目录结构定位到设计者想要查看的module内部寄存器,在Objects对应的信号名称上右击选择Add To Wave Window,将信号加入波形。 4.8可通过选择工具栏的如下选项来进行波形的仿真时间控制,如下工具条,分别是复位波形(即清空现有波形)、运行仿真、运行特定时长的仿真、仿真时长设置、仿真时长单位、单步运行、暂停…… 4.9最终得到的仿真效果图如下。核对波形与预设的逻辑功能是否一致,仿真完成。 五、综合下载 5.1在Flow Navigator点击Program and Debug下的Generate Bitstream选项,工程会自动完成综合实现、Bit文件生成过程,完成之后,可点击Open Implemented Design 来查看工程实现结果。 5.2点击Flow Navigator的Open Hardware Manager一项,进入硬件编程管理界面。 5.3在Flow Navigator展开Hardware Manager ,点击Open New Target 5.4在弹出的Open hardware target向导,先点击Next,进入Server选择向导。 5.5保持默认,next。 5.6选FPGA芯片型号,点击Next。完成新建Hardware Target。 5.7此时,Hardware一栏出现硬件平台上可编程的器件。(此处以zynq为例,如果是纯的FPGA的平台,该出只有一个器件。)在对应的FPGA器件上右击,选择Program Device 5.8选择bit文件位置,默认,直接Program。 观察实验结果,设计完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值