FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
登录
首页-工程案例-正文

基于ZYNQ ECO开发板的跑马灯实验

snx_taoxsnx_taox
工程案例
3年前
6
0
984

基于ZYNQ ECO开发板的跑马灯实验

1.理论学习

如果大家之前玩过单片机肯定知道,跑马灯实验绝对是一个经典的例程,其效果是让排成一排的led灯依次闪亮,像“流水”一样循环不止,

看上去很舒服,其原理就是依次控制每个连接到led灯的I/O电平的高低,我们本次的实验是让led灯依次闪亮的间隔为1s,也就是让led灯

每次只亮一个,每次亮的时间为1s ,本文档我们还会涉及到让led灯依次闪亮的新语法。

2.实战演练

2.1 实验目标

依次点亮板载的4个LED灯,实现跑马灯的效果,两灯之间点亮间隔为1s,LED灯一次点亮持续时间1s。

2.2 程序设计

2.2.1模块框图

我们给模块取名为water_led,因为我们要让led灯亮的时间为1s,肯定少不了计数器,既然用到计数器,那时钟和复位信号也是必须有的, 所以输入为时钟和复位信号。我们只需要控制led灯亮的时间和哪一个led灯亮,流水的过程会无限循环下去,所以不需要额外的其他输入 信号,而输出为4bit的led_out,用于控制板子上的4个小灯,使它们依次闪亮产生流水的效果。 设计框图如下图所示  

基于ZYNQ ECO开发板的跑马灯实验 - 第1张

端口列表与功能总结如表格

基于ZYNQ ECO开发板的跑马灯实验 - 第2张

led跑马灯状态图

基于ZYNQ ECO开发板的跑马灯实验 - 第3张

2.2.2实现步骤

2.2.2.1Vivado使用
创建项目以及芯片选型

基于ZYNQ ECO开发板的跑马灯实验 - 第4张

基于ZYNQ ECO开发板的跑马灯实验 - 第5张

基于ZYNQ ECO开发板的跑马灯实验 - 第6张

基于ZYNQ ECO开发板的跑马灯实验 - 第7张

基于ZYNQ ECO开发板的跑马灯实验 - 第8张

基于ZYNQ ECO开发板的跑马灯实验 - 第9张基于ZYNQ ECO开发板的跑马灯实验 - 第10张  

基于ZYNQ ECO开发板的跑马灯实验 - 第11张基于ZYNQ ECO开发板的跑马灯实验 - 第12张

添加源文件 :基于ZYNQ ECO开发板的跑马灯实验 - 第13张

基于ZYNQ ECO开发板的跑马灯实验 - 第14张基于ZYNQ ECO开发板的跑马灯实验 - 第15张基于ZYNQ ECO开发板的跑马灯实验 - 第16张  基于ZYNQ ECO开发板的跑马灯实验 - 第17张

基于ZYNQ ECO开发板的跑马灯实验 - 第18张基于ZYNQ ECO开发板的跑马灯实验 - 第19张  

代码如下: [rihide]

`timescale 1ns / 1ps

module water_led(

input clk, //系统时钟50MHz

input rst_n, //全局复位

output [3:0] led //输出控制led灯

);

parameter clk_1s=32'd50_000_000;

reg [31:0] cnt;

//------1s计时模块------

always@(posedge clk)

if(!rst_n)

cnt<=0;

else if(cnt==clk_1s-1)

cnt<=0;

else

cnt<=cnt+1;

//------跑马灯实现模块------

reg[3:0]led_out;

always@(posedge clk)

if(!rst_n)

led_out<=4'b0001;

else if(cnt==clk_1s-1)

led_out<={led_out[2:0],led_out[3]} ;

else

led_out<=led_out;

assign led=led_out;

endmodule

[/rihide] 可将此代码复制粘贴过去保存文档后,按下面步骤操作进行综合,并进行管脚约束

基于ZYNQ ECO开发板的跑马灯实验 - 第20张

基于ZYNQ ECO开发板的跑马灯实验 - 第21张

 在上面的操作完成后,需等待综合完成,综合完成后会出现下图弹窗:基于ZYNQ ECO开发板的跑马灯实验 - 第22张   管脚约束: [rihide]上板验证之前先要进行管脚约束。工程中各输入输出信号与开发板管脚对应关系如表格所示。  基于ZYNQ ECO开发板的跑马灯实验 - 第23张进行管脚分配:

基于ZYNQ ECO开发板的跑马灯实验 - 第24张每个端口的电压都要选择为LVCMOS33基于ZYNQ ECO开发板的跑马灯实验 - 第25张

[/rihide] 选择好之后按CTR+S键进行保存,保存时会出现弹窗让你命名,可按照喜好命名,但不能用中文命名,完成后继续按照下图进行操作

基于ZYNQ ECO开发板的跑马灯实验 - 第26张

此时出现的弹窗全部点击ok就行,然后进行等待比特流完成,之后将进行硬件连接

基于ZYNQ ECO开发板的跑马灯实验 - 第27张

上板验证:如烧录后led灯进行流水效果则证明实验成功基于ZYNQ ECO开发板的跑马灯实验 - 第28张

基于ZYNQ ECO开发板的跑马灯实验 - 第29张

此时你将看到视频中的流水效果: [video width="1920" height="1080" mp4="https://kecheng.shaonianxue.cn/wp-content/uploads/2021/12/1640181174-cfeae99cc97c9b0.mp4" loop="true" autoplay="true"][/video]  

3.总结

本章通过一个最经典的跑马灯例子重点引入了位拼接这个新语法,位拼接操作符是很常用的运算符,在串并转换、 移位寄存器的设计中都很常用,希望大家一定掌握它的用法。

3.1 重点掌握

1.{}(实现拼接功能的位拼接运算符)

3.2 知识点总结

1.能够熟练根据时钟计算出任意精确计时所需要计数的个数; 2.掌握位拼接运算符的使用。

4.拓展训练

1、本次思考给大家布置一个学习的任务,自行查阅相关资料,用左移(<<)的方法实现同样的功能, 并与使用位拼接操作符进行的移位方式进行对比,总结各自的特点与优点。 2、本例我们实现的是向左流水效果,我们尝试将其改为双向往复循环移动,并上板验证。
标签:
本文原创,作者:snx_taox,其版权均为FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训所有。
如需转载,请注明出处:https://z.shaonianxue.cn/330.html
snx_taox

snx_taox

新手小白
这家伙真懒,几个字都不愿写!
17.77W19
分享:
成电国芯FPGA赛事课即将上线
基于ZYNQ ECO开发板的呼吸灯实验
基于ZYNQ ECO开发板的呼吸灯实验上一篇
基于ZYNQ ECO开发板的蜂鸣器实验下一篇
基于ZYNQ ECO开发板的蜂鸣器实验
相关文章
总数:42
AHT10读取温湿度工程

AHT10读取温湿度工程

项目简介AHT10读取温湿度工程刘珺琦-9.5作业-ah…
工程案例
2个月前
0
0
48
0
基于 FPGA 的压缩算法加速实现

基于 FPGA 的压缩算法加速实现

第一部分设计概述/DesignIntroduction1.…
工程案例
4个月前
0
0
82
0
Modelsim联合Matlab搭建FPGA图像仿真平台

Modelsim联合Matlab搭建FPGA图像仿真平台

一、原理1、Matlab程序img_data_gen.m…
工程案例
3个月前
0
0
74
0
评论表单游客 您好,欢迎参与讨论。
请输入昵称
请输入邮箱
请输入网址
0 / 100
评论列表
总数:0
FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
暂无评论,第一个评论下?