如何双击打开vivado工程_FPGA基础入门——流水灯(从创建工程到开发板测试)

本博客详细介绍了如何使用Vivado进行FPGA开发,从创建工程、添加源文件、编写Verilog代码、仿真验证、设置管脚约束到编译生成bit文件,最后下载到开发板实现流水灯功能。适合FPGA初学者入门。
摘要由CSDN通过智能技术生成

目录

一、开发板资料相关介绍

二、创建Vivado工程

三、添加工程文件

四、仿真文件(此步骤可有可无,主要验证代码的正确性)

五、添加管脚约束文件

六、编译并产生bit文件

七、下载程序


本系列博客采用ZYNQ 7000系列的开发板。本章也可只使用其他开发板,后续主要以ZYNQ嵌入式SOC学习为主。

一、开发板资料相关介绍

开发板的相关硬件原理图:

  1. 开发板提供四个用户按键,按键原理图:b04a375676c9057aaf85a30f2894986b.png
    相关按键的管脚:848117d6193da7030eabd3de03e689ba.png

  2. 开发板提供五个LED灯,LED原理图:d26aee5674e320c830312ba43357421f.png
    相关LED管脚定义:da86c299477f5b890c8745a4f8b32f15.png

二、 创建Vivado工程

  1. 启动vivado软件,并创建新建工程49ec50685f0aad4fcc992c8c5b5f0837.png

  2. 创建名为 flow_led工程名,并保存在相应路径(注意不要有中文路径)abde78b306546d443d3e233d4e79fc19.png

  3. 工程类型选择RTL描述59bdee0d53286831531a53c469534a72.png

  4. 选择芯片的型号,可以筛选出对应的芯片,具体根据自己的芯片11066f22ac59d6f2b30a4042a2f8f32e.png

  5. 可以看到我们创建工程的summary,以上设置也可以在后续操作中更改。721c1452e4cef7bb8d9f901e8c1afdd5.png

  6. 创建后的工程窗口:82516409f53af538f9d75a9314382948.png

三、添加工程文件

  1. 添加source文件,然后给source文件命名(命名规范),然后在Design Source中可以看到创建的flow_led.v文件,然后即可以编写我们的Verilog代码49cf3788941fa1047cd1f4cd9f665099.png

  2. 双击我们创建的文件打开编辑器,可以看到创建的信息。博主用的编辑器为Gvim编辑器。397e946a5813643e6010a356085d3c36.png

  3. 编写程序并添加工程信息

//省略
`timescale 1ns / 1ps
// Revision:
// Revision 0.01 - File Created

// Additional Comments:
// 1. _i PIN input
// 2. _o PIN output
// 3. _n PIN active low
// 4. _dg debug signal
// 5. _r reg delay
// 6. _s state machine
//
module flow_led(
input clk_i, rst_n_i,
output reg [3:0] led_o
);

//define a count
reg [31:0] count;

//
always@(posedge clk_i)
begin
if (! rst_n_i) //reset
begin
count <= 0;
led_o <= 4'b0001;
end
else
begin
if (count == 32'd50_000_000 ) //count restart
begin
count <= 0;
if (led_o == 4'b1000) // and shift 1 bit
led_o <= 4'b0001;
else
led_o <= led_o << 1;
end
else
begin
count <= count + 1'b1; //or continue count
led_o <= led_o;
end
end
end
endmodule

四、仿真文件(此步骤可有可无,主要验证代码的正确性)

  1. 新建仿真文件testbench, 参考上面创建文件的方法,只需更改下面的步骤即可,并重新命名为tb_test。0d7d4c0ac426ac6c28d9f26bb2b18a75.png

  2. 打开并编写测试仿真文件
    相关的测试编写规则可参考上一篇博文:

    https://blog.csdn.net/vivid117/article/details/90247582

  3. 编写测试内容:

module tb_test(
);

reg clk_i, rst_n_i; // the type of input is generally reg
wire [3:0] led_o; // the type of output is generally wire

//cite the module
flow_led flow_led_u(
.clk_i(clk_i),
.rst_n_i(rst_n_i),
.led_o(led_o)
);

//initial the module
initial begin
clk_i = 0;
rst_n_i = 0;
#10
rst_n_i =1;
end

always #0.001 clk_i = ~clk_i; // period is 2ps to fastly simulate

endmodule
  1. 仿真结果:仿真注意:由于仿真只是验证功能的正确性,可以适当的吧计数器的技术终值减小,以减小计数周期带来的大量仿真时间。7acb210575c2e99caebe7b0728aa0b60.png

  2. Vivado编译起来相当的慢,其实可以提高编译速度,在VIVADO中一个run编译时支持的线程数:c4bf4e243a9d986f4acefe9b61026e4d.png
    在tcl脚本处输入如下命令:
    基于自己电脑线程数设置线程数,可以适当加快仿真速度。不过每次在执行imp之前都需要输入一次,这个不要忘记

     	设置多线程的命令为:set_param general.maxThreads 4
    读取当前线程数的命令:get_param general.maxThreads

五、添加管脚约束文件

管脚约束文件.xdc,添加约束文件一般有三种常用的方法,分别是手动添加xdc PIN管脚约束文件、直接加入已写好文件、综合后添加管脚约束文件。
我们采用综合后添加约束文件的方式。

  1. 综合工程396d3219c71bdfeb9d30a3ccbb78b333.png

  2. 可以看到vivado右上方显示正在综合,并等待。e56ceda61e9aa68f51122ef6d866a07e.png

  3. 然后选择open synthesized design87dda719c190b473be1605fc3bbec7e5.png
    可以查看schematic(按F4键或者在tools工具栏中选择):dc080071fa4b90a4b30dd18c986fc80c.png

  4. 管脚配置:
    选择工具栏中的Window的I/O Port, 可以看到如下,分别对其进行Pin管脚的配置和电平配置。bc7537ee155c3d6521b13f8bfc2fc701.png
    rst_n_i 对应T19. clk_i 对应H16,电平选择LVCOMOS33其他分别如下6f0f379a05e48f8954da799ce5f51b17.png
    然后保存生.XDC文件 即可:2a29b915ca0829704e35b0d30096dd34.png
    打开可以看到如下信息(所以建议大家还是自己编写.XDC文件较好):5425241d573b7727cc5da2567e8fdc6e.png
    注:可以将电平约束的一组改写为:

set_property IOSTANDARD LVCMOS33 [get_ports {led_o[*]}]
  1. 优化管脚约束文件
    为减小bit文件的大小,提高下载速度,在约束文件后添加:0e94938bfb44f54a4affcb39e8ebfcbd.png

六、编译并产生bit文件

  1. 综合,执行,产生bit文件976362cad3307ef7696c1469ed670905.png
    结果如下:56c13b0660fce69daa0cdd63d8abee5e.png

七、下载程序

  1. 首先给开发板供电,并连接好下载器。

  2. 然后按如下操作3a690f9743b70d67a599e8eb5ba53b07.png

  3. 可以看待如下信息e9fcb445a025a370af9ce64307a40d0a.png

  4. 然后program device7ee63dd44656b35b8653aa368ff22529.png

  5. 找到产生的bit文件9efd34cdeaef483f7132279b599a2776.png

  6. program 即可以完成看到流水灯点亮。5bfb765a6ce3f617102af568641ad43a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值