【流水灯样例】基于 FPGA Vivado 的设计
前言
Vivado 设计流程指导手册——2013.4(做不出来,勿下载)
密码:5txi
未找到手册中的开发板,找到的是XC7A100T-1CSG324I。其手册在的说明文档参考:
XC7A100T-1CSG324I购买详情页面
XC7A100T-1CSG324I说明文档
一,创建空白工程
二,设计文件输入
Add or Create Design Sources,用来添加或新建 Verilog 或 VHDL 源文件,点击Next。
弹出的 Define Module 中的 I/O Port Definition,输入设计模块所需的端口,并设置端口防线,如果端口为总线型,勾选 Bus 选项,并通过 MSB 和 LSB 确定总线宽度。完成后点击OK。
新建的设计文件(此处为 flowing_light.v)即存在于 Sources 中的 Design Sources 中。双击打开该文件,输入相应的设计代码。
`timescale 1ns / 1ps
module flowing_light(
input clk,
input rst,
output [3:0] led
);
reg [23 : 0] cnt_reg;
reg [ 3 : 0] light_reg;
always @ (posedge clk)
begin
if (rst)
cnt_reg <= 0;
else
cnt_reg <= cnt_reg + 1;
end
always @ (posedge clk)
begin
if (rst)
light_reg <= 4'b0001;
else if (cnt_reg == 24'hffffff) begin
if (light_reg == 4'b1000)
light_reg <= 4'b0001;
else
light_reg <= light_reg << 1;
end
end
assign led = light_reg;
endmodule
添加约束文件
有两种方法可以添加约束文件,一是可利用 Vivado 中 IO planning 功能,二是可以直接新建 XDC 的约束文件,手动输入约束命令。
a、第一种方法,利用 IO planning。
a.8.1、点击 Flow Navigator 中 Synthesis 中的 Run Synthesis,先对工程进行综合。
]
如果没出现如下界面,在图示位置的 layout 中选择 IO planning一项。
在右下方的选项卡中切换到 I/O ports 一栏,并在对应的信号后,输入对应的 FPGA
管脚标号(或将信号拖拽到右上方 Package
图中对应的管脚上),并指定 I/O std
。(具体的 FPGA约束管脚和 IO 电平标准,可参考对应板卡的用户手册或原理图)。
拖拽信号到对应的管脚上,或者直接在Package Pin中下拉选中。
完成之后,点击左上方工具栏中的保存按钮,工程提示新建 XDC 文件或选择工程中已有的 XDC
文件。在这里,我们要 Create a new file
,输入 File name
,点击 OK
完成约束过程。
此时,在 Sources 下 Constraints 中会找到新建的 XDC 文件。
b、利用第二种方法添加约束文件。
b.8.1、点击 Add Sources
,选择第一项 Add or Create Constraints
一项,点击 Next。
双击打开新建好的 XDC 文件,并按照如下规则,输入相应的 FPGA 管脚约束信息和电平标准。
关于引脚约束与被占用:
CLOCK_DEDICATED_ROUTE Property Invalid Option Value Nexys 4 DDR
clk : IO_L3N_T0_DQS_EMCCLK_14
set_property PACKAGE_PIN D18 [get_ports {led[3]}]
set_property PACKAGE_PIN G14 [get_ports {led[2]}]
set_property PACKAGE_PIN M17 [get_ports {led[1]}]
set_property PACKAGE_PIN M16 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property PACKAGE_PIN L16 [get_ports clk]
set_property PACKAGE_PIN G16 [get_ports rst]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports rst]
三,工程实现
在 Flow Navigator 中点击 Program and Debug
下的 Generate Bitstream
选项,工程会自动完成综合、实现、Bit 文件生成过程,完成之后,可点击 Open Implemented Design
来查看工程实现结果。
板子太老,后面的步骤进行不下去。搁置!