这里我们以8-bit 的lfsr(线性反馈移位寄存器)做一个流水灯为例,介绍vivado的基本使用。
vivado的基本使用过程大致如下:
一. 选则器件建立工程(或者是打开之前的工程)
二. 添加电路设计描述verilog文件
三. 查看schematic。
四. 添加tb文件,做功能仿真。
五. 添加约束文件,synthesis(综合)。
六. implementation(实现)并生成bit文件。
七. 生成bit文件,下载到板子上。
一 . 新建工程
1. 打开vivado工具,点击如下 create project 。
2. 点击next,出现如下图所示界面,填入工程名字(project name),以及选择工程存放的目录(project location)。
选择项create project subdirectory就是在在你选择的目录下再生成一级与工程名字一样的子目录,工程将放在这个子目录文件夹。
3. 选择rtl project,再点击next
4. 在这里你可以添加已有的verilog设计文件(add files),甚至是某个文件夹下的多个设计文件(add directories),或者新建verilog文件(create files)。这里我们暂时不管,直接点击next。
5. 同样的,这里你可以添加或者新建约束文件(xdc文件)。这里我们暂时也先不管,直接点击next。
6. 选择器件(fpga板子)。这一步很重要,你必须选择你要使用的板子型号。它有一些筛选项。
category: 下对应的是工业应用,普通应用,军工/高可靠性应用
family:下对应的就是所有的xlinx公司有的fpga芯片型号。
同时,还可以根据封装类型(package),温度(temperature), 速度(speed)等信息去选择。这里我选好了我要用的板子。点击next。
7. 所有的工程信息展示入下。确认没问题,点击finish。如果觉得有问题可以点击back回退到上一步。
二. 添加电路描述verilog文件
1. 在如下界面,点击 add->source 。
2.在弹出的页面选择add or create design source 并点击next。
3.再在接下来弹出的页面点击create file。此时如下图,在2位置敲入文件文件名字,这里可以取为,lsfr_8bits , 再点击ok。
4. 点击finish后出现如下图界面。这里你可以定义这个模块的输入输出端口。这里我们先不定义,直接点击ok。
5. 这就生成了一个verilog设计文件,在如下界面可以找到。双击上图文件,对verilog文件进行编辑。
6. 编辑完毕后,如下。点击保存。
7. 由于我们开发板上的时钟频率为20m,用它来做流水灯,肉眼看不出效果,故需要再添加一个分频模块,以及一个顶层模块。添加方式同上。最后的设计层次关系入下。
三. 查看schematic
1. 在如下界面,找到rtl analysis栏。在rtl analysis栏下,有一个open elaborated design。在open elaborated design下点击schematic。
2. 点击schematic之后,一般要等一会,便会弹出相应的verilog文件描述的电路原理图。如下图。
3. 点击clk_gen_inst原理图上的+号,就可以展开其内部电路。大家可以分析一下这个电路与你们的verilog描述之间的关系。
4. 对于lsfr展开后电路如下。
5. 对于lsfr_8_reg[7:0] 这个8bit寄存器,如果想要看它内部的连接,可以单击选中它,再按下f4。其内部原理图就展现出来了。8个寄存器首尾相连,数据从第一个寄存器进来,随着节拍一拍一拍往后传递,这就是移位寄存器。
四. 添加tb文件,做功能仿真
1. 在左边栏点击 add sources。
2. 选择 add or create simulation source , 点击next。
3. 点击create files, 弹出2所示小框。选择文件类型,这里我们选择verilog来写tb。文件名字可以取为led_tb 。点击ok。
4. 再点击finish,此时也会弹出定义端口的设置框,如下。这里不管,直接点击ok。
5. 在simulation sources找到led_tb.v文件,双击对其进行编辑。
6. 编辑完之后如下。可以看到,tb只是用来给我们的设计提供输入信号(输入激励),然后再去通过波形等其它判断方式,去查看输出是否符合我们的设计功能要求。
7. 在下图位置点击 run simulation 。再选择run behavioral simulation(功能仿真)。
8. 如下图所示,1按钮表示从新开始仿真;2表示一直跑仿真;3表示跑仿真的时间为4,5里面的设置的值。在6里面可以选择相应的模块,同时7里面就可以看到这个模块里面的所有内部信号,可以右击某个信号再选择add to wave window,将其添加到右边的波形显示框显示。
五. 添加约束文件并做synthesis(综合)
1. 如上添加其它文件一样点击 add sources。在弹出的页面选择 add or create constraints,再点击next。
2. 点击create files,在弹出的小框2里填入文件名字。再点击ok,继续点击finish。
3. 在source下找到新建的xdc文件。双击对其进行编辑。
4. 在xdc文件里面主要是对设计加入端口与时钟约束,输入输出延时等其它约束。这里我们只加入端口约束。这里端口约束,既将设计的顶层模块的输入输出端口与实际的fpga芯片i/o端口互连。编辑完,保存。
5. 在上面弹出的constraints更新了的提示,点击reload。
6. 更新完毕,在下图位置找到run synthesis,点击run synthesis。再在弹出的框里选择ok。
7. 此时在右上方可以看到有running synth_deign的提示。如果综合完成则会提示,synthsis complete。并弹出如下框。当然这里可以选择 run implementation。也可以选择其它两个。真正的设计当中,在这里我们一般不着急继续run implementation。而是先看看综合后的时序报告。当然这里就不多做介绍了。
六. run implementation并生成bit文件
1. 综合完成后,就是run implementation。我们可以在综合完之后弹出的框里直接选择run implementation。也可以事后在如下图位置找到 run implementation。
2. 在点击了 run implementation之后,如果implementation完成了,会弹出如下提示框。这里我们选择generate bitstream,点击ok。
3. bit文件生成成功,会弹出如下提示。这里我们先点击cancel。
七. 将生成的bit文件下载到板子上
1. 先将fpga开发板上电,并将xlinx fpga下载器与电脑和板子连好。
2. 在如下位置找到 open hardware manager -> open target。点击open target -> auto connect 。
3. 点击 open target -> auto connect 等待一会,如果如下图提示no target is open。右击箭头所指的localhost,再点击 close server。
4. 将操作2再做一遍,如果成功连接上开发板,情况如下。可以看到板子的型号。
5. 右击器件,选择 program device
6. 如下图,其自动选择了本工程生成的bit文件。点击 program。
7. 等待一会,下载完毕,在板子上就可以看到效果了。
多土层土壤参数监测仪的详细介绍
绝缘轴承因其独特的工艺和特性而有着广泛应用
采用热敏电阻构成的超温报警器电路
有哪些因素会导致安规电容的损坏
小米松果处理器来了 雷军还会继续“耍猴”吗?
FPGA设计流程与Vivado的基础使用
松下将于2012年量产负极材料采用硅系合金的锂离子充电电池
NASA完成无人机交通管理测试项目
TD-SCDMA入选信息产业部"十一五"
国家政策带来的福音,新能源汽车发展再提速
Bebop无人机目标跟踪与运动控制环境搭建
基于R&S的矢量源和信号分析仪构建无线系统仿真平台的方案
紫光展锐CEO楚庆表示未来的趋势将是5G+AI并举
慕尼黑展览(上海)有限公司携手IPC升级新一轮战略合作,共创电子智造新未来
三大运营商推SWP-SIM NFC抢进平价高规手机
智能家电电子电路设计图集锦 —电路图天天读(90)
精密可调电阻和精密电位计的七大区别
TVS管和稳压管有哪些区别
电子绕线电阻器主要结构控制原理方式
美国想要一击毙命华为 从而达到贸易战再回到桌面谈判