其他分享
首页 > 其他分享> > Verilog0.2:跑通第一个Vivado工程

Verilog0.2:跑通第一个Vivado工程

作者:互联网

Verilog0.2:跑通第一个Vivado工程

在本文中,你将能学会:

  1. 学会基本使用Vivado
  2. 学会一些FPGA开发中的基本概念
  3. 用VScode代替Vivado写代码
  4. 接触到管脚约束及其细节

文章目录


基本概念

这里会以验证环境为由,顺便讲讲在FPGA开发中的几个基本概念:

这里以PCB生产中的一些概念来做类比:


下面主要讲一个一位全加器的实现

新建工程

  1. 打开vivado,点击创建工程

    image-20210312140355843

  2. 输入项目名和项目路径

    image-20210312140452136

  3. 选择项目类型为RTL Project:

    image-20210312140516770

  4. 添加源文件或者新建文件,这里可以直接下一步,后面再加:

    image-20210312140556617

  5. 选择器件,这里型号可以回看第一篇推文:

    image-20210312140736983

Vivado开始开发

  1. 点击增加源(Add Source),建议记住快捷键。可能会和微信截图冲突:

    image-20210312141246174

  2. 增加设计源:

  3. 新建一个Verilog文件:

    image-20210312141734838

  4. 指定模块名(注意规范):

    image-20210312141931070

  5. 这样就可以在Vivado内看到新建的文件了:

image-20210312142001795

使用Vscode作为Vivado文本编辑器

这里由于Vivado中原生的编辑器难用,而且vivado中有很多需要我们看的信息,或者快速点功能,所以建议使用第三方编辑器代替写代码的流程:

  1. 点Tool->Settings

    image-20210312142500965

  2. 跟着下面截图来选择:

    image-20210312142701198

  3. 客制化打开命令:

image-20210312143230741

  1. 此时再双击那文件,这就能用啦!

    image-20210312143317857

Vivado使用流程

  1. 点开刚刚的文件,施展一点魔法:

    image-20210312144240595

这里就不放代码了,建议手抄。

综合&实现

  1. 点击综合,直接起飞,概念见文首。

image-20210312144227577

  1. 直接开启综合多线程

image-20210312144618398

  1. 然后他就会默默地跑完了,

image-20210312144834572

这里我们直接点OK进行实现,先完成所有(一般大一点的工程的话,会直接点Cancel进行仿真)

  1. 实现完成,顺便先试着生成Generate Bitestream:

image-20210312145217029

引入管脚约束,看RTL图和生成Bitstream

  1. 然后这里我们就会遇到我们的第一个error了:

image-20210312145442795

显然,这里就是在指明,我们没有分配管脚,这也是fpga和普通mcu间最大的不同:fpga中的绝大多数信号脚都可以绑定到绝大多数的物理端口中。

  1. 还是点击Add Source,不过这次加的是约束文件:

image-20210312145624161

  1. 新建.xdc约束文件,但是我写到这里的时候忘记了还没给大家介绍约束怎么写,就先新建着:

image-20210312145709836

  1. 先看看怎么看写出来的电路时怎样的,点击左侧RTL ANALYSIS:

image-20210312150413755

  1. 就可以完美对应到数电书上面写的,一位全加器对应这两个一位半加器:

image-20210312150517494

  1. 接下来我们用图形界面来引入管脚约束:点击window->I/O Ports

image-20210312150706350

  1. 根据板子的原理图,规划管脚!可以看到他有以下的参数可以调:
    • Direction:输入IN,输出OUT,和双向INOUT,这个是综合完之后有的
    • Package Pin:所需要对应的FPGA物理端口
    • I/O Std:IO电平标准,常见的有好几种,这里就不一一介绍了,所需再出文章介绍,这里只要记住1.8,2.5和3.3,按别人的约束来看看就行
    • Slew Type:指上升下降沿的快慢,快的化功耗会高一点点
    • Pull Type:指默认上升下降沿啥的,这个就不介绍,看大家电路基础了

image-20210312150824705

  1. 填好之后大概长这样,这里物理端口是乱填的,!!!具体请自行看板子原理图!!!

image-20210312151107281

  1. 此时重新生成bitstream,同时我们打开刚刚所新建的m_addr.xdc:

    可以看到,其实他差不多就是我们所设置的那些东西,但是后面建议用代码方式写,具体原因大家可以试一下混合图形界面和代码两种方式,看看会发生什么问题:

image-20210312151726819

  1. 这样下来,我们就能看到Bitstream生成成功,可以下板子啦!

image-20210312151351556

  1. 到这里就大概结束了,如果你想下到板子去的话,还是参考你的板卡教程吧。

    因为涉及到硬件板子,这里先不进行介绍了,待后续讲到chipscope的时候再说吧。

结语

如果你已经走到这里了,那恭喜你把开发中最简单,也是最难的一步走完了,下面就让我们一起来学习Verilog吧!

最后,欢迎大家关注我的个人公众号:小何的芯像石头:
img
在微信中,除了这些教程之外,还会更一些更有科技向的文章,欢迎关注喔.

如果你觉得有丶收获的话

标签:仿真,这里,原理图,跑通,Verilog0.2,约束,Vivado,管脚
来源: https://blog.csdn.net/weixin_38071135/article/details/114806659