Vivado基本使用


本文介绍Xilinx Vivado的基本使用方法,包括如何创建工程、源文件、仿真文件、约束文件;如何进行仿真、综合、实现和生成Bitstream;如何使用VIO和ILA进行程序的调试。

1 创建工程

  • 创建工程
    • 打开Vivado→Quick Start→Create Project→Next→输入工程名称(cplr_intlk)和位置→选择RTL Project,勾选“Do not specify sources at this time”跳过添加和创建文件→选择芯片,Family选择Zynq-7000,Package选择clg400,Speed选择-2,器件选择xc7z020clg400-2,Next→Finish。
    • 更改芯片:Flow Navigator→PROJECT MANAGER→Settings→General→Project device。
  • 创建源文件
    • 点击PROJECT MANAGER→Add Sources→Add or create design sources→Create File→输入源文件名称(intlk_single和intlk_top),OK→Finish→OK→Yes。
    • 双击Sources→Design Sources→intlk_single/intlk_top,打开源文件开始编辑。
    • 编辑完后保存,在Messages会给出源文件中的错误提示。
    • 新建的源文件在/cplr_intlk/cplr_intlk.srcs/source_1文件夹下。
  • 添加VIO
    • 点击PROJECT MANAGER→IP Catalog→Search栏输入vio,双击选择VIO (Virtual Input/Output)弹出设置窗口。
    • 设置Component Name,Input Probe Count设置输入信号数量,Output Probe Count设置输出信号数量。
    • 点击PROBE_IN Ports标签,设置每个输入信号的位宽;点击PROBE_OUT Ports标签,设置每个输出信号的位宽和初始值。
    • 在源文件中按如下方式例化VIO。
    vio vio_i (
    	.clk(clk),
    	.probe_in0(din0),
    	...
    	.probe_out0(dout0),
    	...
    );
    
  • 添加ILA
    • 点击PROJECT MANAGER→IP Catalog→Search栏输入ila,双击选择ILA (Integrated Logic Analyzer)弹出设置窗口。
    • 设置Component Name,Number of Probes设置采样的个数,Sample Data Depth设置采样的点数,勾选Trigger Out Port和Trigger In Port使能输出/输入触发。
    • 点击Probe_Ports标签,设置每个采样信号的位数和触发方式。
    • 在源文件中按如下方式例化ILA (展开ILA文件可以直接复制例化方式)。
    ila ila_i (
    	.clk(clk),
    	.trig_in(trig_in0),
    	.trig_in_ack(trig_in0_ack),
    	.trig_out(trig_out0),
    	.trig_out_ack(trig_out0_ack),
    	.probe0(din0),
    	...
    );
    
  • 创建约束文件
    • 点击Flow Navigator→PROJECT MANAGER→Add Sources→Add or create constraints→Create File→输入约束文件名称(intlk_top),OK→Finiah。
    • 双击Sources→Constraints→constrs_1→intlk_top,打开约束文件开始编辑。或者点击Window→I/O Ports打开引脚分配窗口进行引脚分配,保存后也会产生约束文件。
    • 新建的约束文件在/cplr_intlk/cplr_intlk.srcs/constrs_1文件夹下。
    • 常用约束语句
    create_clock -period <时钟周期> -name <时钟名称> [get ports <端口名>] #创建时钟
    set property PACKAGE_PIN <引脚号> [get ports <端口名>] #约束端口引脚位置
    set property IOSTANDARD <引脚标准> [get ports <端口名>] #约束端口引脚标准,支持通配符,如<端口名>[*]
    set clock groups -asynchronous -group [get clocks -include generated clocks <时钟名称>] \
                                   -group [get clocks-include generated clocks <时钟名称>]  #设置异步时钟
    set_false_path -through [port <端口号>] #不检查通过<端口号>路径的时序
    set_false_path -to [port <端口号>] #不检查到<端口号>路径的时序
    
    • Flash固化相关约束
    set property CONFIG_VOLTAGE 1.8 [current design] #设置电压
    set property CONFIG_MODE_SPIX4 [current design] #设置SPI模式
    set property BITSTREAM.GENERAL.COMPRESS TRUE [current design] #设置bit是否压缩
    set property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current design] #设置SPI位宽
    set property BITSTREAM.CONFIG.SPI_32BIT_ADDR Yes [current design] #SPI Flash大于256Mb才需要
    set property BITSTREAM.CONFIG.CONFIGRATE 85.0 [current design] #设置SPI的加载时钟
    set property BITSTREAM.CONFIG.EXTMASTERCCLK_EN disable [current design] #使用外部时钟驱动Flash
    # set property BITSTREAM.CONFIG.EXTMASTERCCLK_EN DIV-1 [current design]
    set property BITSTREAMCONFIG.SPI_FALL_EDGE YES [current design] #设置SPI的数据加载时钟边沿
    set property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current design] #设置未使用管脚的默认电平
    set property BITSTREAM.CONFIG.CONFIGFALLBACK Enable [current design] #打开看门狗功能
    
  • 综合
    • 点击Flow Navigator→SYNTHESIS→Run Synthesis进行综合,状态信息在窗口右上角显示 。
    • 点击PROJECT MANAGER→RTL ANALYSIS查看RTL原理图。
  • 其它
    • 修改字体:Tools→Settings→Tool Settings→Text Editor→Fonts and Colors。
    • 修改Tab:Tools→Settings→Tool Settings→Text Editor→Tabs。
    • 点击窗口右上角可将窗口设为浮动窗口。

2 功能仿真

  • 创建仿真文件
    • 点击Flow Navigator→PROJECT MANAGER→Add Sources→Add or create simulation sources→Create File→输入仿真文件名称(intlk_single_test),OK→Finiah→Yes。
    • 双击Sources→Simulation Sources→sim_1→intlk_single_test,打开仿真文件开始编辑。
    • 新建的仿真文件在/cplr_intlk/cplr_intlk.srcs/sim_1文件夹下。
    • 下面给出一个基本的测试文件范例,点击Tools Language→Template可查看语言模版。
    `timescale 1 ns / 1 ps
    
    module sensor_tb;
    reg clk; //输出信号使用wire
    reg rst;
    reg tready;
    
    initial
    fork
    	#0 begin clk = l'bl; rst = l'bl; tready = 1'b0; end
    	#10 rst = 1'b0;
    	$display("\n## tb : @Time : %0t tready is asserted\n",$time);
    	#20 tready = 1'b1;
    	#1320 tready = 1'b0;
    	#1330 tready = 1'b1;
    join
    
    always #5 clk = !clk;
    sensor_sim sensor_sim i (
      .cmac_clk(clk),
      .rst_send(rst),
      .tx_tready(tready)
    );
    
    endmodule
    
  • 仿真设置
    • Flow Navigator→鼠标右键SIMULATION→Simulation Setings,设置Simulation top module name和Simulation标签里的runtime。
    • 点击SIMULATION→Run Simulation→Run Behevioral Simulation进行仿真。
  • 仿真操作
    • 点击仿真窗口上方的按钮进行保存、缩放、移动光标等操作。
    • 在信号名处点击鼠标右键进行信号名称长短、格式、颜色、删除等操作。
    • 点击Scopes→<模块>,在Objects中会显示所以变量的名称,右键点击需要添加的信号,选择Add to Wave Window将选择信号添加到窗口中。
    • 点击①进行Restart,通过②设置仿真时间 ,点击③进行仿真。
    • 如果修改了源文件和仿真文件,需要点击④重新进行仿真。
    • 可以在源程序中点击左侧设置断点,点击⑤进行单步仿真。
    • 点击⑥可对仿真波形进行设置。
    • 打开保存的仿真文件:File→Simulation Waveform→Open Configuration。

在这里插入图片描述

3 下载测试

3.1 Bitstream

  • 综合:Flow Navigator→SYNTHESIS→Run Synthesis,右上角显示状态。
  • 实现:Flow Navigator→IMPLEMENTATION→Run Implementation,右上角显示状态。
  • 生成Bitstream:Flow Navigator→PROGRAM AND DEBUG→Generate Bitstream,右上角显示状态。生成的Bitstream文件在/cplr_intlk/cplr_intlk.runs/impl_1文件夹下。
  • 连接开发板的电源、JTAG,启动选择JTAG (黑金ZYNQ系列板卡),打开电源。
  • 点击Open Hardware Manager→Open target→Auto Connect,左侧显示硬件。
  • 右键选择xc7z020_1(1)→Program Device→Program,选择Bitstream文件。
  • VIO设置
    • hw_vio_1显示Outputs out-of-sync表示当前窗口中的VIO设置与实际的不符,右键hw_vio_1,选择Commit Output Values to VIO Core将VIO设置同步到FPGA中。
    • 在窗口中右键信号,可对信号的格式、数值、属性等进行设置。

在这里插入图片描述

  • ILA调试:
    • 点击①触发一次,右键信号可以对信号进行相关设置。
    • 选中②,再点击①会一直触发,点击③停止。
    • 添加触发:在Trigger Setup中添加触发,并进行相关设置,再次运行,左侧显示状态 。
    • 设置触发方式:在Settings的Trigger Mode Settings中可对触发的方式进行设置。
    • 设置触发位置:Settings中设置Trigger position in window,再次运行。

在这里插入图片描述

  • 关闭连接:右键localhost→Close Server→OK。

3.2 Flash固化

  • 生成mcs文件
    • 点击菜单栏的 Tools→Generate Memory Configuration File…。
    • 在弹出的对话框中,Format选择 MCS,Custom Memory Size设置为128MB,Filename 设置生成的文件名字,Interface选择SPIx4,勾选Load bitstream files,Start address 设置为 0x00000000,Bitfile选择需要转化的bit文件。其他默认,点击OK。
  • 固化程序
    • 点击菜单栏的 Tools→Add Configuration Memory Device→xcvu23p_0。
    • 在弹出的对话框中,根据Flash芯片选择mx66u2g45-spi-x1_x2_x4。
    • 在弹出的对话框中, Configuration file 选择下载的mcs文件,其它默认,点击OK下载文件。
    • 断电重启FPGA板卡。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值