【FPGA Vivado】基于 FPGA Vivado 的流水灯样例设计

本文介绍了一种基于FPGA Vivado的流水灯设计方法,包括创建工程、设计文件输入及约束文件添加等步骤,并提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

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 来查看工程实现结果。
在这里插入图片描述
板子太老,后面的步骤进行不下去。搁置!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值