FPGA设计流程与Vivado的基础使用

电子说

1.3w人已加入

描述

这里我们以8-bit 的LFSR(线性反馈移位寄存器)做一个流水灯为例,介绍Vivado的基本使用。

Vivado的基本使用过程大致如下:

一. 选则器件建立工程(或者是打开之前的工程)

二. 添加电路设计描述Verilog文件

三. 查看Schematic。

四. 添加TB文件,做功能仿真。

五. 添加约束文件,Synthesis(综合)。

六. Implementation(实现)并生成Bit文件。

七. 生成bit文件,下载到板子上。

一 .  新建工程

1. 打开Vivado工具,点击如下 Create Project 。

FPGA

2. 点击Next,出现如下图所示界面,填入工程名字(Project name),以及选择工程存放的目录(Project location)。

选择项Create project subdirectory就是在在你选择的目录下再生成一级与工程名字一样的子目录,工程将放在这个子目录文件夹。

FPGA

3. 选择RTL Project,再点击Next

FPGA

4. 在这里你可以添加已有的Verilog设计文件(Add Files),甚至是某个文件夹下的多个设计文件(Add Directories),或者新建Verilog文件(Create Files)。这里我们暂时不管,直接点击Next。

FPGA

5. 同样的,这里你可以添加或者新建约束文件(XDC文件)。这里我们暂时也先不管,直接点击Next。

FPGA

6. 选择器件(FPGA板子)。这一步很重要,你必须选择你要使用的板子型号。它有一些筛选项。 

Category: 下对应的是工业应用,普通应用,军工/高可靠性应用

Family:下对应的就是所有的Xlinx公司有的FPGA芯片型号。

同时,还可以根据封装类型(Package),温度(Temperature), 速度(Speed)等信息去选择。这里我选好了我要用的板子。点击Next。

FPGA

7. 所有的工程信息展示入下。确认没问题,点击Finish。如果觉得有问题可以点击Back回退到上一步。

FPGA

二. 添加电路描述Verilog文件

1. 在如下界面,点击 Add->Source 。

FPGA

2. 在弹出的页面选择Add or create design source 并点击Next。

FPGA

3. 再在接下来弹出的页面点击Create File。此时如下图,在2位置敲入文件文件名字,这里可以取为,LSFR_8bits , 再点击OK。

FPGA

4. 点击Finish后出现如下图界面。这里你可以定义这个模块的输入输出端口。这里我们先不定义,直接点击OK。

FPGA

5. 这就生成了一个Verilog设计文件,在如下界面可以找到。双击上图文件,对Verilog文件进行编辑。

FPGA

6. 编辑完毕后,如下。点击保存。

FPGA

7. 由于我们开发板上的时钟频率为20M,用它来做流水灯,肉眼看不出效果,故需要再添加一个分频模块,以及一个顶层模块。添加方式同上。最后的设计层次关系入下。

FPGA

三. 查看Schematic

1. 在如下界面,找到RTL ANALYSIS栏。在RTL ANALYSIS栏下,有一个Open Elaborated Design。在Open Elaborated Design下点击Schematic。

FPGA

2. 点击Schematic之后,一般要等一会,便会弹出相应的Verilog文件描述的电路原理图。如下图。

FPGA

3. 点击clk_gen_inst原理图上的+号,就可以展开其内部电路。大家可以分析一下这个电路与你们的Verilog描述之间的关系。

FPGA

4. 对于LSFR展开后电路如下。

FPGA

5. 对于LSFR_8_reg[7:0] 这个8bit寄存器,如果想要看它内部的连接,可以单击选中它,再按下F4。其内部原理图就展现出来了。8个寄存器首尾相连,数据从第一个寄存器进来,随着节拍一拍一拍往后传递,这就是移位寄存器。

FPGA

四. 添加TB文件,做功能仿真

1. 在左边栏点击  Add Sources。

FPGA

2. 选择 Add or Create simulation source , 点击Next。

FPGA

3. 点击Create Files, 弹出2所示小框。选择文件类型,这里我们选择Verilog来写TB。文件名字可以取为led_tb 。点击OK。

FPGA

4. 再点击Finish,此时也会弹出定义端口的设置框,如下。这里不管,直接点击OK。

FPGA

5. 在simulation Sources找到led_tb.v文件,双击对其进行编辑。

FPGA

6. 编辑完之后如下。可以看到,TB只是用来给我们的设计提供输入信号(输入激励),然后再去通过波形等其它判断方式,去查看输出是否符合我们的设计功能要求。

FPGA

7. 在下图位置点击  Run Simulation 。再选择Run Behavioral Simulation(功能仿真)。

FPGA

8. 如下图所示,1按钮表示从新开始仿真;2表示一直跑仿真;3表示跑仿真的时间为4,5里面的设置的值。在6里面可以选择相应的模块,同时7里面就可以看到这个模块里面的所有内部信号,可以右击某个信号再选择Add to wave window,将其添加到右边的波形显示框显示。

五. 添加约束文件并做Synthesis(综合)

1. 如上添加其它文件一样点击 Add Sources。在弹出的页面选择 Add or create constraints,再点击Next。

FPGA

2. 点击Create Files,在弹出的小框2里填入文件名字。再点击OK,继续点击Finish。

FPGA

3. 在Source下找到新建的XDC文件。双击对其进行编辑。

FPGA

4. 在XDC文件里面主要是对设计加入端口与时钟约束,输入输出延时等其它约束。这里我们只加入端口约束。这里端口约束,既将设计的顶层模块的输入输出端口与实际的FPGA芯片I/O端口互连。编辑完,保存。

FPGA

5. 在上面弹出的Constraints更新了的提示,点击Reload。

FPGA

6. 更新完毕,在下图位置找到Run Synthesis,点击Run Synthesis。再在弹出的框里选择OK。

FPGA

7. 此时在右上方可以看到有Running synth_deign的提示。如果综合完成则会提示,Synthsis Complete。并弹出如下框。当然这里可以选择 Run Implementation。也可以选择其它两个。真正的设计当中,在这里我们一般不着急继续Run Implementation。而是先看看综合后的时序报告。当然这里就不多做介绍了。

FPGA

六. Run Implementation并生成Bit文件

1. 综合完成后,就是Run Implementation。我们可以在综合完之后弹出的框里直接选择Run Implementation。也可以事后在如下图位置找到 Run Implementation。

FPGA

2. 在点击了 Run Implementation之后,如果Implementation完成了,会弹出如下提示框。这里我们选择Generate Bitstream,点击OK。

FPGA

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. 等待一会,下载完毕,在板子上就可以看到效果了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分