使用vivado2016.4编写一个流水灯项目(下)

使用vivado2016.4编写一个流水灯项目(上) 里面,介绍了使用vivado开发一个一个完整的项目过程的前半部分。在这篇文章里会继续介绍后面的部分,使之成为一个完整的开发过程。

目录

  • 3.项目流程
    • 5.综合(Synthesis)
    • 6.布局布线
    • 7.硬件实现
  • 4.最终话

3.项目流程

5.综合(Synthesis)

在上一步模拟仿真中,经过验证我们的仿真波形正确,接下来就可以进行综合这一环节了。
1.首先点击主界面左边Synthesis中的Run Synthesis,即可开始综合
在这里插入图片描述
之后会出现这个对话框,点击OK即可进行综合的过程。
使用vivado2016.4编写一个流水灯项目(下)_第1张图片
2.综合完毕之后会出现下一步的提示:
使用vivado2016.4编写一个流水灯项目(下)_第2张图片
其中第一项为:实现布局布线。即跳入下一个大环节中,此处先不选择。
第二项为:打开综合设计。即观察综合后的资源情况,这里选择这一项。
第三项为:查看报告,和上一项的功能差不多。
3.打开Synthesis中的Report Timing Summary,即报告时序总结,可以查看时序的合格情况。
使用vivado2016.4编写一个流水灯项目(下)_第3张图片
将画红线的地方改为100,查看前100个不是很稳定的时序内容,并点击OK
使用vivado2016.4编写一个流水灯项目(下)_第4张图片
观察电路图下方的Design Timing Summary一栏,发现我们的时序设计没有红色下划线的内容,证明时序上是满足的。
使用vivado2016.4编写一个流水灯项目(下)_第5张图片
4.时序满足后,我们可以添加约束文件,即程序中输入与输出与其对应硬件资源的对应关系。添加文件的方法之前介绍过,此处不再介绍。直接上代码:

// led_s.XDC
set_property PACKAGE_PIN M19 [get_ports rst_n]
set_property IOSTANDARD LVCMOS15 [get_ports rst_n]

set_property PACKAGE_PIN T28 [get_ports {led[0]}]
set_property PACKAGE_PIN V19 [get_ports {led[1]}]
set_property PACKAGE_PIN U30 [get_ports {led[2]}]

set_property IOSTANDARD LVCMOS15 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS15 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS15 [get_ports {led[2]}]

set_property IOSTANDARD DIFF_SSTL15 [get_ports clk_in1_p]

set_property PACKAGE_PIN AD12 [get_ports clk_in1_p]
set_property PACKAGE_PIN AD11 [get_ports clk_in1_n]

5.接下来我们点击Synthesis中的Set Up Debug,来建立一个Debug核,可以在后面的步骤中来观察程序中变量的情况。
使用vivado2016.4编写一个流水灯项目(下)_第6张图片
点击next,出先选择信号界面。此处我们将网表中的信号拖入对话框中,即可完成信号的添加:
使用vivado2016.4编写一个流水灯项目(下)_第7张图片
之后点击next,最后点击Finish即可完成。
使用vivado2016.4编写一个流水灯项目(下)_第8张图片
6.在添加完Debug核之后,我们重新进行综合,就完成了整个综合的环节。此处根据需要可以继续查看时序报告,观察其满足情况。

6.布局布线

在完成了综合之后,就可以开始布局布线了。
1.首先点击主界面左侧的Implementation中的Run Implementation,开始进行布局布线。出现如图对话框,点击OK即可。使用vivado2016.4编写一个流水灯项目(下)_第9张图片
2.综合完毕之后出现对话框:
使用vivado2016.4编写一个流水灯项目(下)_第10张图片
其中,第一项为:打开布局布线设计,此处选择这项。
第二项为:生成比特流文件,用于硬件实现。这里我们下一个环节再点击这项。
第三项:查看报告。不赘述了。
3.打开布局布线的时序报告,即点击Report Timing Summary,可以看出开发板的资源被之前设置的Debug核占用了很大一部分,不过依然满足时序条件,如图:使用vivado2016.4编写一个流水灯项目(下)_第11张图片
4.到这里,布局布线的过程也已经结束了,最后就是将程序输入到开发板中了。

7.硬件实现

1.首先将开发板连接好,使用JTAG方式进行程序的输入,接好电源线。
2.点击主界面左侧的Program and Debug中的Generate Bitstream,即生成比特流文件,用于烧录程序到开发板中。
在这里插入图片描述
出现对话框,点击OK即可。
使用vivado2016.4编写一个流水灯项目(下)_第12张图片
3.当比特流文件生成完毕之后,出现对话框,如图:
使用vivado2016.4编写一个流水灯项目(下)_第13张图片
第一项:查看报告;
第二项:打开硬件管理器,此处选择此项。
最后一项:生成内存配置文件。暂时没用到。
4.这时显示没有目标硬件连接,将开发板开关打开即可。
在这里插入图片描述
5.点击open target,选择Auto Connect即可连接开发板。然后点击主界面左侧Program and Debug中的Program Device,将程序输入到开发板中。
6.出现此界面,点击Program即可进行烧录。
使用vivado2016.4编写一个流水灯项目(下)_第14张图片
7.烧录完毕,观察开发板,与目标结果相符。
8.我们可以设置触发条件来观察开发板的波形情况。点击Trigger Setup框中的 +,添加触发波形条件。这里我设置的波形为state,触发条件为state=3。点击Waveform中画红圈的播放按钮,即可查看触发波形。
使用vivado2016.4编写一个流水灯项目(下)_第15张图片
9.最后关闭开发板电源,项目实现完成~

4.最终话

一个简单的项目流程,却花了不少时间来写。希望自己以后能更加驾轻就熟吧。FPGA这东西刚我开始接触,熟悉流程总是好的。最后希望能给有需要的人一些帮助,自己也能在这条路上越走越好。
这个项目就到此结束了,完结撒花!

你可能感兴趣的:(Vivado使用技巧)