芯驿电子科技(上海)有限公司
芯驿电子科技(上海)有限公司
021-67676997
www.alinx.cn
www.heijin.org
Vivado 下 LED 流水灯实验
流水灯实验
黑金动力社区 2018-02-26
黑金动力社区
黑金动力社区
黑金动力社区
1 实验简介
通过 LED 流水灯实验,介绍使用
流水灯实验,介绍使用 vivado 软件开发 FPGA 的基本流程,器件选择、设置、
器件选择、设置、代码
编写、编译、分配管脚、下载、程序 FLASH 固化、擦除等;同时也检验板上
板上 LED 灯是否正常。
编写、编译、分配管脚、下载、
2 实验环境
Windows 7 SP1 64
64 位
vivado 2017.4
黑金 FPGA 开发板(
开发板(AX7050 开发板、AX7035 开发板)
3 实验原理
3.1 LED 硬件电路
AX7035 开发板 LED 部分原理图
AX7050 开发板 LED 部分原理图
黑金 FPGA
版权所有
1 / 47
www.heijin.org
从上面的 LED 部分原理图可以看出,
部分原理图可以看出, AX7035 开发板和 AX7050 开发板都是
都是将 IO 经过一个电
阻和 LED 串联接电源端,FPGA
FPGA 的 IO 输出低电平点亮 LED。IO 输出高电平 LED
LED 灯熄灭,其中的串
联电阻都是为了限制电流。
3.2 程序设计
FPGA 的设计中通常使用计数器来
的设计中通常使用计数器来计时,对于 50Mhz 的系统时钟,一个时钟周期是
的系统时钟,一个时钟周期是 20ns,那
么表示一秒需要 50000000 个时钟
周期,如果一个时钟周期计数器累加一次,那么计数器从 0 到
时钟周期,如果一个时钟周期计数器累加一次,那么计数器从
49999999 正好是 50000000 个周期,就是
个周期,就是 1 秒的时钟。
程序中定义了一个 32 位的计数器:
位的计数器:
//Define the time counter
//Define the time counter
reg [31:0] timer;
最大可以表示 4294967295
4294967295,十六进制就是 FFFFFFFF,如果计数器到最大值,可以表示
,如果计数器到最大值,可以表示
85.89934592 秒。程序设计中是每隔
程序设计中是每隔 1 秒 LED 变化一次,一共消耗 4 秒做一个循环。
秒做一个循环。
clk or negedge rst_n)
timer <= 32'd0
always@(posedge sys_clk
begin
end
if (~rst_n)
else if (timer == 32'd199_999_999
else
timer <= timer
timer <= 32'd0
32'd0;
32'd199_999_999)
32'd0;
timer + 1'b1;
在第一秒、第二秒、第三秒、第四秒到来的时候分别改变 LED 的状态,其他时候都保持原来
在第一秒、第二秒、第三秒、第四秒到来的时候分别改变
的状态,其他时候都保持原来
的值不变。
clk or negedge rst_n)
led <= 4'b0001
led <= 4'b0000
// LED control
always@(posedge sys_clk
begin
end
if (~rst_n)
else if (timer == 32'd49_999_999
else if (timer == 32'd99_999_999
else if (timer == 32'd149_999_999
else if (timer == 32'd199_999_999
led <= 4'b0010
led <= 4'b1000
led <= 4'b0100
4'b0001;
4'b0010;
4'b1000;
4'b0100;
4'b0000;
32'd49_999_999)
32'd99_999_999)
32'd149_999_999)
32'd199_999_999)
黑金动力社区
2 / 47
www.heijin.org
4 Vivado 工程
4.1 创建工程
1. 启动 Vivado 2017.4 开发环境
开发环境(在开始菜单中选择 Xilinx Design Tools->Vivado 2017.
Vivado 2017.4->Vivado 2017.4。
或者双击桌面的 Vivado 2017.4
4 的图标直接打开软件。
2. 在 Vivado 2017.4 开发环境里双击
里双击 Create Project,如下图:
黑金动力社区
3 / 47
www.heijin.org
3. 弹出一个 Vivado 的工程向导,点击
的工程向导,点击 Next 按钮。
4. 在弹出的对话框中输入工程名和工程存放的目录,
在弹出的对话框中输入工程名和工程存放的目录,这里取一个 led_test 的工程名
的工程名,点击 Next。
黑金动力社区
4 / 47
www.heijin.org
5. 在下面的对话框中默认选择
在下面的对话框中默认选择 RTL Project, 因为我们这里使用 verilog 行为描述语言来编程
行为描述语言来编程。下面的
Do not specify source at this time
time 的勾也可以打上。如果不打上,下一步会进入添加
的勾也可以打上。如果不打上,下一步会进入添加 source file 界
面,
黑金动力社区
5 / 47
www.heijin.org
6. 进入添加 source file 界面,这里先不添加任何设计文件
界面,这里先不添加任何设计文件。点击 Next
黑金动力社区
6 / 47
www.heijin.org
7. 提示是否添加已有的约束文件,这里约束文件我们也没有设计好,也不添加
提示是否添加已有的约束文件,这里约束文件我们也没有设计好,也不添加。
提示是否添加已有的约束文件,这里约束文件我们也没有设计好,也不添加
8. 在接下来的对话框选择所用的
在接下来的对话框选择所用的 FPGA 器件,以及进行一些配置。FPGA 芯片型号一定要跟开发板
芯片型号一定要跟开发板
上的型号一致,AX7035 开发板
开发板首先在 Family 栏里选择 Artix-7, Speed grade 栏选择
栏选择-1, 在 Package 栏
选择 fgg484, 然后在下面的列表中选择
然后在下面的列表中选择 xc7a35tfgg484-1;AX7050 开发板首先在
开发板首先在 Family 栏里选择
Spartan-7, Speed grade 栏选择-
-1, 在 Package 栏选择 fgga484, 然后在下面的列表中选择
然后在下面的列表中选择
xc7s50fgga484-1;单击 NEXT 进入下一界面:
进入下一界面:
黑金动力社区
7 / 47
www.heijin.org
AX7035 开发板 FPGA
黑金动力社区
8 / 47