当前位置:   article > 正文

【FPGA】Vivado软件使用教程_vivado使用教程

vivado使用教程

目录

      一、创建Vivado工程

二、创建Verilog HDL文件

三、添加管脚约束

四、时序约束

五、生成BIT文件

六、Vivido仿真

七、上板再补充

一、创建Vivado工程

1、启动Vivado,在Vivado开发环境里点击“Create Project”,创建新工程。

 2、弹出窗口点击“Next”,在弹出的窗口中输入工程名和存放的工程路径,工程名在这里我取的run_led;工程路径不能含有中文字符,路径名也不宜太长。

 3、点击“Next”后,在后面弹出的窗口,在工程类型中选择“RTL Project”;目标语言Target language中选择“Verilog”。在添加文件窗口中直接点击“Next”,不添加任何文件。

在器件选择页面中根据自己使用的FPGA开发板进行选择。

 点击“Finish”完成工程创建。

二、创建Verilog HDL文件

1、工程创建完成后随之进入到Vivido软件界面。点击PROJECT MANAGER 下的Add Sources(或者快捷键Alt+A)。

2、 选择“Add or create design sources”添加或创建设计源文件,点击“Next”。

 3、选择创建文件“Create File”。

 4、文件命名为run_led,点击“OK”。再点击“Finish”完成“run_led.v”文件的添加。

 5、在弹出的Define Module模块定义中,可以指定“run_led.v”文件的模块名称,默认不变为“run_led”。

 6、双击“run_led.v”打开文件,可以编辑代码。

 编写好代码保存。

代码是简单的点灯。

  1. `timescale 1ns / 1ps
  2. //
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 2023/03/28 17:54:01
  7. // Design Name:
  8. // Module Name: run_led
  9. // Project Name:
  10. // Target Devices:
  11. // Tool Versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //
  21. module run_led(
  22. input clk ,
  23. input rst_n,
  24. output reg led
  25. );
  26. //参数定义
  27. reg [11:0] cnt ;
  28. wire add_cnt;
  29. wire end_cnt;
  30. //参数设置
  31. parameter TIME_1S = 20 ;//1S亮灭
  32. //计数器
  33. always@(posedge clk or negedge rst_n)begin
  34. if(~rst_n)begin
  35. cnt <= 0;
  36. end
  37. else if(add_cnt)begin
  38. if(end_cnt)begin
  39. cnt <= 0;
  40. end
  41. else begin
  42. cnt <= cnt + 1 ;
  43. end
  44. end
  45. end
  46. assign add_cnt = 1;
  47. assign end_cnt = add_cnt & (cnt == TIME_1S - 1);
  48. //流水灯
  49. always @(posedge clk or negedge rst_n) begin
  50. if(~rst_n)begin
  51. led <= 0;
  52. end
  53. else if(end_cnt)begin
  54. led <= ~led;
  55. end
  56. else begin
  57. led <= led ;
  58. end
  59. end
  60. endmodule

三、添加管脚约束

       Vivado使用的约束文件格式是xdc文件。管脚约束是对“run_led.v”程序中的输入输出端口分配到FPGA的真实管脚上。

1、点击“Open Elaborated Design”打开详细设计。在弹出的窗口点击“OK”。

 2、在菜单中选择“Window”中的“I/O Ports”。

 3、在弹出的I/O Ports中可以看到管脚分配情况。根据FPGA芯片的原理图将复位信号、时钟信号和LED分配管脚和电平标准,完成后点击保存。

 4、弹出保存界面,文件类型默认“XDC”,文件名填写“run_led”,点击“OK”。

5、 打开刚才生成的“run_led.xdc”文件,是一个TCL脚本,如果我们了解语法,也可以自己编写xdc文件来约束管脚。

 四、时序约束

1、点击“Run Synthesis”开始综合,弹出窗口点击“OK”。

2、综合完成点击“Cancel”。

 3、点击“Constraints Wizard”,在弹出的窗口点击“Next”。

4、 时序约束向导分析出设计中的时钟,这里把“clk”频率设置成20MHz,点击“Skip to Finish”,结束时序约束向导。

 5、在弹出的窗口点击“OK”,点击“Finish”。Run_led.xdc文件已经更新,点击“Reload”重新加载文件,并保存文件。

 五、生成BIT文件

编译的过程可以细分为综合、布局布线、生成bit文件等。

1、点击“Cenerate Bitsteam”,直接生成bit文件,在弹出的对话框可以选择任务数量,数量越大编译越快。

 2、编译完成后,弹出对话框进行后续操作,可以选择“Open Hardware Manger”,也可以选择“Cancel”,先不下载。

 六、Vivido仿真

利用Vivido自带的仿真工具来输出波形验证程序是否正确(在生成bit文件之前也可以仿真)。

1、打开 SIMULATIONZ 中的 Simulation Settings,设置仿真配置。

 2、在设置窗口进行配置,根据需要自行设置,我这里设置50ms。

 3、添加激励测试文件,点击Project Manager下的Add Sources,选择仿真。

4、点击“Create File”生成仿真激励文件。

 

5、激励文件命名,我命名为“vtf_run_led_test”

6、 这里先不添加I/O Ports,点击OK.

 7、在Simulation Sources中看到添加进的vtf_run_led_test文件。双击激励文件进行编写,编写后保存,vtf_run_led_teat.v自动成为仿真Hierarchy的顶层,文件下面是run_led.v。

仿真激励文件代码:

  1. `timescale 1ns / 1ps
  2. //
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 2023/03/28 18:28:36
  7. // Design Name:
  8. // Module Name: vtf_run_led_test
  9. // Project Name:
  10. // Target Devices:
  11. // Tool Versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //
  21. module vtf_run_led_test();
  22. reg tb_clk ;
  23. reg tb_rst_n;
  24. wire tb_led;
  25. parameter CYCLE=20;
  26. //模块例化
  27. run_led u_run_led(
  28. .clk (tb_clk ),
  29. .rst_n (tb_rst_n),
  30. .led (tb_led )
  31. );
  32. //初始化
  33. initial begin
  34. tb_clk=1'b1;
  35. tb_rst_n=1'b1;
  36. #40;
  37. tb_rst_n=1'b0;//复位
  38. #40;
  39. tb_rst_n=1'b1;
  40. #(CYCLE*25*6);
  41. $stop;
  42. end
  43. always #10 tb_clk=~tb_clk;
  44. endmodule

 8、点击Run Simulation ,在选择Run Behavioral Simulation。开始行为级仿真。

9、在弹出的仿真界面是仿真软件自动运行到仿真设置的50ms的波形。

 

 10、可以点击Scope界面下的u_run_led,再右键选择Objects界面下的timer,在弹出的下拉菜单里选择Add to Wave Window。观测计数器的变化。

11、添加计数器cnt后,需要点击restart复位,再点击Run ALL。

 12、就可以看到更新后的仿真图了。 

七、上板再补充

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/154871
推荐阅读
相关标签
  

闽ICP备14008679号