一、创建 Vivado 工程
1)启动 Vivado,在 Windows 中可以通过双击 Vivado 快捷方式启动;linux在终端source /tools/Xilinx/Vivado/...../settings64.sh vivado&
2)在 Vivado 开发环境里点击“Create New Project”,创建一个新的工程,向导界面点击next,填写工程名,next
3)工程类选择RTL PROJECT,NEXT,目标语言可以选择Verilog,仿真语言选混合,下一步next,
4)Part选择所需器件,其中speed为速度-1表示的速度等级,越大,速度越快。选好后点击finish
5)软件界面
二、创建源文件
1)点击 Project Manager 下的 Add Sources 图标(或者使用快捷键 Alt+A);
2)选择添加或创建设计源文件“Add or create design sources”,点击“Next”
3)选择创建文件“Create File”,设置文件名,点击OK,点击finish
4)在弹出的模块定义“Define Module”,中可以指定文件的模块名称“Module
3.在弹出的 I/O Ports 中可以看到管脚分配情况 ,然后点击相应IO口,选出相应管脚号,电平号,类似QUARTUS和ISE操作。弹出窗口点击OK,文件类型XDC,在工程中出现XDC文件。
4.点击“Run Synthesis”开始综合,点击OK
5.综合完成后点击“Constraints Wizard”,设置要生成的时钟约束,按步骤填写,点击finish,此时XDC文件又更新。
2)编写约束文件法
方法和上面创建源文件一样,不过选择新增约束文件
编写约束文件。
约束文件语法:
set_property PACKAGE_PIN "引脚编号" [get_ports “端口名称”]
set_property IOSTANDARD LVCMOS33 [get_ports “端口名称”]
create_clock -period XX -name XX -waveform {,} [get_ports “端口名称”]
四、生成BIT文件
1、编译的过程可以细分为综合、布局布线、生成 bit 文件等,点击Generate Bitstream将包含(Run Synthesis-Run Implementation-Generate Bitstream三个过程,可以一一点击)。
2、编译中没有任何错误,编译完成,弹出一个对话框让我们选择后续操作,可以选择。
后面专门写一个implementation,包括布局布线,以及约束文件。中间编译过程会可能出现错误,这时候靠网络或者自己积累来解决。
2)在 Simulation Settings 窗口中进行配置
3)添加激励测试文件,点击 Project Manager 下的 Add Sources 图标,单击 Next。
4)编写仿真文件,保存,因为仿真文件调用了module,此时在文件层次中仿真文件为顶层
5)点击run_simulation,选择合适仿真进行仿真。
FPGA仿真分为RTL行为仿真、前仿真(不带时延)和后仿真(带时延),RTL行为仿真/功能仿真就是Run Behavioral Simulation,主要检查代码中语法错误以及代码行为正确性,不含延时。综合后的功能仿真 post-synthesis function simulation综合后的功能仿真,post-synthesis timing simulation综合后带时序信息的仿真,和真实运行的时序就相差不远了,post-implementation function simulation布线后的功能仿真,post-implementation timing simulation(布局布线后的仿真) 执行后的时序仿真 最接近真实的时序波形.
行为仿真是必须的,确保功能正确,综合后时序仿真是必要的,排除时序问题,布局布线后仿真,解决疑难杂症的,费时间,可以不做
六、下载。
1)在“HARDWARE MANAGER”界面点击“Auto Connect”,自动连接设备。
2)可以看到 JTAG 扫描到 FPGA 内核/arm核;
3)选择芯片,右键“Program Device...”,点击program进行下载
七、在线调试
1)点击 IP Catalog,在搜索框中搜索 ila,双击 ILA 的 IP
2)修改名称为 ila,根据信号数量,设置Probes 的数量,深度,generate
3)在源文件中例化
4)生成bitstream,和上面的步骤一样
5)下载,看到有 bit 和 ltx 文件,点击program,烧录,弹出调试窗口。
还有一种方法添加属性,在源文件中要加调试的端口中前面添加属性,如 (*MAKE_DEBUG="ture"*)output wire out;点击综合,综合后点击set up debug
弹出对话框设置,点击next,设置深度。重新生成bitsteam.