Vivado 入门(一)LED灯闪烁

一、新建工程
1、打开 Vivado 软件,点击 “Creat Project” 新建工程;设置工程名称为 “led_twi” 并指定保存路径(工程路径不能包含中文、空格或者其它一些特殊的符号)。
2、选择工程类型为 “RTL Project” 并勾选 “Do not specify sources at this time”(不创建或者添加设计文件)。
3、选择器件型号为xc7k325tffg900-2 (这里使用的是Digilent Genesys 2 board Kintex-7 FPGA)。
Genesys 2 FPGA

二、设计输入
1、点击“Sources”窗口中的“+”号,选择 “Add or create design sources”, 点击“Create File”, “File name” 输入 “led_twi”, 点击 finish。
2、双击 “Sources” 窗口中的源文件,输入LED灯闪烁的代码:

module led_twi(
    input clk_p,
    input clk_n,
    input sys_rst_n,
    output [1:0] led
    );
    
wire clk;    
reg [25:0] cnt ;

assign led = (cnt < 26'd2500_0000) ? 2'b01 : 2'b10 ;


//pll设置200MHz差分时钟输入,100MHz时钟输出
clk_wiz_0 u_clk_wiz_0
 (
  .clk(clk),
  .clk_in1_p(clk_p),
  .clk_in1_n(clk_n)
 );

always @ (posedge clk or negedge sys_rst_n) begin
    if(!sys_rst_n)
        cnt<=26'd0;
    else if(cnt < 26'd5000_0000)
        cnt <= cnt + 1'b1;
    else
        cnt <= 26'd0;
    end   
    
endmodule

三、分析与综合
1、点击“Flow Navigator”窗口中的“Open Elaborated Design”按钮编译RTL 源文件进行全面的语法检查。
2、点击“Flow Navigator”窗口中的“Run Synthesis”按钮进行综合。

四、约束输入
1、点击“Sources”窗口中的“+”号,选择“Add or create constraints”,在接下来的界面中点击“Create File”,输入约束文件的名称“led_twi”,点击finish。
2、双击打开"led_twi.xdc"文件(“Source”->“Constraints”->“constrs_1”->“led_twi.xdc”),输入以下内容:

# Clock Signal
set_property -dict { PACKAGE_PIN AD11  IOSTANDARD LVDS     } [get_ports { clk_n }]; 
set_property -dict { PACKAGE_PIN AD12  IOSTANDARD LVDS     } [get_ports { clk_p }]; 
#Reset
set_property -dict { PACKAGE_PIN R19   IOSTANDARD LVCMOS33 } [get_ports { sys_rst_n }]; 
#LED
set_property -dict { PACKAGE_PIN T28   IOSTANDARD LVCMOS33 } [get_ports { led[0] }]; 
set_property -dict { PACKAGE_PIN V19   IOSTANDARD LVCMOS33 } [get_ports { led[1] }]; 

以上代码是对 IO 管脚的引脚位置约束和电平标准约束。第一行中“set_property”是命令的名称;“PACKAGE_PIN AD11”是引脚位置参数,代表引脚位置是 AD11;“[get_ports {clk-n}]”代表该约束所要附加的对象是 clk-n 引脚。

五、设计实现
点击“Flow Navigator”窗口中的“Run Implementation”按钮实现设计,完成后关闭窗口。

六、生成和下载比特流
1、点击“Flow Navigator”窗口中的“Generate Bitstream”按钮生成比特流文件,完成后关闭窗口。
2、将下载器一端连接电脑,另一端与开发板上的 JTAG接口相连接,然后连接开发板电源线。
3、点击“Flow Navigator”窗口中的“Open Hardware Manager”按钮,然后点击“Hardware”子窗口中的“Auto Connect”进行自动连接。右击“xc7k325t_0”,在弹出的菜单中选择 "Program Device” ,在弹出的对话框中直接点击“Program”,代码下载完成后可以看到开发板上的LED灯交互闪烁。

附录:添加PLL的ipcore进行时钟分频
Genesys 2有一个200MHz的LVDS差分振荡器,引脚为AD11/AD12。
1、选择“Flow Navigator”窗口中“Project Manager”下的“IP Catalog”
在这里插入图片描述
2、在右侧搜索“clock”,并选择"Clocking Wizard"
在这里插入图片描述
3、在"Clocking Options"界面进行如下设置:
在这里插入图片描述
在这里插入图片描述
4、在"Output Clocks"界面进行如下设置:
在这里插入图片描述

在这里插入图片描述
设置完成后生成如下代码:

`timescale 1ps/1ps

module clk_wiz_0 
 (
  // Clock out ports
  output        clk,
 // Clock in ports
  input         clk_in1_p,
  input         clk_in1_n
 );

endmodule

参考:
1、正点原子达芬奇pro之FPGA开发指南
2、Genesys 2 FPGA Board Reference Manual
https://digilent.com/reference/programmable-logic/genesys-2/reference-manual

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值