打印
[FPGA]

Quartus和Vivado简单教程 转

[复制链接]
2821|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AD, ar, vi
Quartus篇
1、创建一个工程
建议不要关闭quartus的欢迎界面,因为它很好用呀!直接点击New Project Wizard 就可以创建一个新的工程
2、选择目录,填写项目名称
由于第三个框框要填顶层模块的名称,所以建议把项目名称命名成顶层的名称(填了一个,另一个自动填充,跟后面的testbench一样)
3、选择器件
4、选择仿真器
一般新版的quartus自带modelsim-altera,建议使用,调用独立modelsim的话,每次都要编译库,特别慢,modelsim-altera已经编译好了(如何使用modelsim独立仿真可以参见专栏另一篇**)
这时就已经建立完一个空的工程了,一般我都是在别的编辑器写好代码来quartus进行其他的操作,所以这里就选择添加文件,如果使用quartus的编辑器,直接new一个verilog HDL file/VHDL file就行了
5添加文件
下拉project navigator 选择files,然后右键files文件夹添加文件,选择目录添加文件,多个文件它自己就直接添加了,单个文件需要点击add,完成添加,这里注意,建议把源代码单独放到一个文件夹里,如果testbench文件也在这个目录的话,不要添加它,因为它不需要综合,现在添加的都要综合,不然每次改动testbench项目都会过期,需要重新编译,testbench在仿真的时候添加就可以了
6、返回层次级界面,就是添加files之前的目录
双击你个顶层模块名,它就可以自动打开相应的文件了,如果你一开始设置的顶层模块名和实际的不一致,就是第2条提到的顶层模块名,这时只要右键,setting,general,修改top-level entity保持一致就可以了
修改一致以后双击顶层,就可以打开代码了
7、分析和综合
设计流程的所有流程几乎都在这个task窗口,直接点击相应的功能即可,分析和综合完成之后,你的各个模块的层次结构就可以显示在project navigator窗口了,每个模块包含了那些模块,层次特别清晰,下拉三角就可以展开了
8、功能仿真
综合完成之后就可以功能仿真了,先要添加testbench,打开setting(右键顶层,或者工具栏assignments找到,下文中介绍过的选项卡就不再详细说在哪了)找到eda tool setting中的simulation,选择工具和语言,然后点击compile testbench,选择文件
同样需要文件名和模块名,建议保持一致,填写两个名字,添加文件,其他默认,一路确定就好了。
然后点击tools,run simulation tool,rtl simulation,就可以自动调用你前面设置的仿真器了
如果需要调用独立的modelsim,需要打开tools,options,找到EDA tool options设置modelsim的目录即可
然后即可等待仿真运行。
注意:quartus没有嵌入的仿真器,只有modelsim-altera,另外,同一个工程之只能打开一个modelsim,再开会报错
9、时序分析
点击工具栏中那个表一样的图标就可以打开(但是只有布局布线完成才能生成时序网表,查看报告)
首先创建一个时序网表,读取或者添加sdc文件(约束文件)
有sdc文件的可以直接read,如需要新建的,点工具栏constraints,create clock,起一个名字,设置周期(默认百分之五十占空比)选择目标,然后点击list会列出所有目标,双击相应的项,然后点击tasks栏最下方的wirte sdc file即可保存刚才建立的约束,此时即可查看相应的报告
生成了约束之后(也可以直接使用tcl命令建立sdc文件),为布局布线添加约束,setting,time quest timing analyzer添加sdc文件,重新编译运行即可按照相应的约束进行
然后里面有各种详细的时序违规的分析,这里就不再展开,后续的下载调试,因为我都是在xilinx上实现的,这里使用较少就不误导了

Vivado篇
这里vivado自带说明书(xilinx documentation navigator)里面有相应的所有教程,左边的design hub view里面的vivado design hubs有所有的设计流程的使用教程,简单易用,下面简单介绍一下使用流程
1、创建工程
起名字(这里可以随便起,比quartus强),添加源文件(testbench调整为 仿真,其他的仿真&综合),添加IP,添加约束,选择器件
2、添加IP核
在project manager目录下打开IP catalog添加IP(这里以常用的时钟管理为例)
选择系统时钟作为输入,选择两个输出时钟,可以修改名字,设置端口
把它存在默认目录下就好,vivado的默认目录很人性化,然后确定生成IP
选择out of context per IP,这里指的单独综合,global即和整体设计一起综合,别的地方有改动IP也要重新综合
然后打开IP source选项卡,就可以看到生成的文件,包括模板,约束等一系列文件,打开模板复制端口到设计中就可以完成例化了
简单浏览
在软件的左边显示了设计的所有流程,按照顺序即可进行相应的步骤
3、RTL analysis
第一步首先进行RTL分析,进行详细描述,可以生成RTL视图,个人感觉没啥用,因为我感觉我没怎么用过它
4、simulation
选择好testbench文件之后可以直接进行仿真,没有quartus那么麻烦,第一步如果没有添加的话,可以选择创建相应的文件,在project manager里add source 即可选择添加对应的文件,包括约束,源文件,仿真文件等,这里比较好的是创建完就不用另外添加,quartus需要自己添加仿真文件和约束文件。
设置好仿真文件之后,点击run simulation可以看到5种仿真,分别是功能仿真,综合后功能,综合后时序,实现后功能,实现后时序,这里一般只使用功能仿真,时序的话进行综合后功能仿真就可以了,其他的运行时间特别慢不建议使用,还不如直接debug。
5、综合
第一次的话首先run synthesis,这里可以看到clk IP核是不参与整体设计的综合的,因为采用的是OOC设置,完成之后open synthesized design,进行约束
第一步,时序约束,直接edit timing constraints就可添加时序约束,如果使用了时钟管理类的IP核它会自己进行默认的约束,例如我使用的默认系统时钟,它会自己添加一个200M的时钟约束,不允许修改(输出时钟好像不需要约束)
第二步,IO约束,分配管脚,这里我是用的是图形化的约束,综合完成之后,选择工具栏的layout为IO planning,选择左下角的group by interface and bus展开所有列表,进行管脚分配
第三步,添加debug,为后面的debug添加mark,综合后,打开综合后的设计,选择netlist就可以看到所有的nets,然后选择想要观察的信号,右键,mark debug
然后set up debug就可以看到刚才你mark的所有信号,点击下一步,选择深度,勾选两个高级触发和存储设置,完成
然后保存所有设计,debug实质是添加了ILA的IP核,以约束的方式实现的,所以完成这三步,实际只对约束文件进行了修改
6、实现
完成上述的综合以及约束之后就可以进行实现了(对应quartus的布局布线),完成之后就可以查看时序报告和其他报告了
7、板级调试
实现完成之后就可以生成比特流文件,其实可以直接点生成比特流文件如果没有综合和实现,它会先综合实现然后再进行文件生成,然后点开program and debug 的hardware manager连接器件,然后program device就可以下载到板子上了
添加了debug会自动弹到ILA界面,需要进行条件触发,不同的时钟域会生成不同的ILA核,然后在trigger setup界面选加号,添加并设置触发条件
然后run trigger for this ila core就进入等待触发状态了,然后进行复位触发之后就可以进行数据采样了
以上就是两个软件的简单的设计流程

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:这个社会混好的两种人:一是有权有势,二是没脸没皮的。

1051

主题

11300

帖子

26

粉丝