花样流水灯的verilog实现
LED(Light emitting diode)发光二极管将电能转化为可见光,正向电压导通,反向电压截止。对于该板子,二极管用低电压导通,其实验原理图为:

所谓流水灯,即让LED像水一样的点亮,从左向右依次点亮,最右位点亮后,再从左向右移动。以下是以移位方式实现的verilog代码:
module led(
clk, //50M时钟输入
reset, //复位信号,高电平复位
led //led输出
); input clk;
input reset;
output[7:0] led; wire clk,reset; reg [7:0]led,led_temp;
reg [40:0] count; //分频计数器,系统时钟频率过高,需要计数的方式来产生延时,使led保持状态一段时间 always @ (posedge clk or negedge reset)
begin
if(!reset)//复位
begin
led_temp<=8'h80;
count<=41'h0;
end
else
begin
count<=count+1;
if(count==41'hff_ff_ff) //判别counter数值,做输出处理
begin
led_temp<=led_temp>>1;
led<=~led_temp;
count<=0;
if(led_temp==8'h01)
led_temp<=8'h80;
end
end
end
endmodule
花样流水灯根据循坏赋值方式实现:
module led_water(clk,led,reset);
input clk;
input reset;
output [7:0] led; reg [7:0] led;
reg [23:0] counter;
reg [4:0] led_state;
reg clk_div; always @(posedge clk)
begin
if(counter==24'h500000)
begin
clk_div<=~clk_div;
counter<=24'h000000;
end
else
counter<=counter+1'b1;
end always @(posedge clk_div or negedge reset)
begin
if(!reset)
begin
led<=8'hff;
led_state<=4'b0000;
end
else
begin
case (led_state)
5'b00000: led<=8'b1111_1110;
5'b00001: led<=8'b1111_1101;
5'b00010: led<=8'b1111_1011;
5'b00011: led<=8'b1111_0111;
5'b00100: led<=8'b1110_1111;
5'b00101: led<=8'b1101_1111;
5'b00110: led<=8'b1011_1111;
5'b00111: led<=8'b0111_1111; 5'b01000: led<=8'b1011_1111;
5'b01001: led<=8'b1101_1111;
5'b01010: led<=8'b1110_1111;
5'b01011: led<=8'b1111_0111;
5'b01100: led<=8'b1111_1011;
5'b01101: led<=8'b1111_1101;
5'b01110: led<=8'b1111_1110; 5'b01111: led<=8'b1110_0111;
5'b10000: led<=8'b1101_1011;
5'b10001: led<=8'b1011_1101;
5'b10010: led<=8'b0111_1110; 5'b10011: led<=8'b1011_1101;
5'b10100: led<=8'b1101_1011;
5'b10101: led<=8'b1110_0111; 5'b10110: led<=8'b1010_1010;
5'b10111: led<=8'b0101_0101; 5'b11000: led<=8'b1000_0000;
5'b11001: led<=8'b0100_0000;
5'b11010: led<=8'b0010_0000;
5'b11011: led<=8'b0001_0000;
5'b11100: led<=8'b0000_1000;
5'b11101: led<=8'b0000_0100;
5'b11110: led<=8'b0000_0010;
5'b11111: led<=8'b0000_0001;
default:led<=8'b1111_1111;
endcase
led_state<=led_state+1'b1;
end
end
endmodule
综合优化后,板子呈现花样流水灯样式。

花样流水灯的verilog实现的更多相关文章
- 【接口时序】2、Verilog实现流水灯及与C语言的对比
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 硬件平台: 1.FPGA型号:XC6SLX45 ...
- [51单片机] EEPROM 24c02 [I2C代码封装-保存实现流水灯]
这里把EEPROM 24c02封装起来,今后可以直接调用,其连线方式为:SDA-P2.1;SCL-P2.0;WP-VCC >_<:i2c.c /*--------------------- ...
- 3. 戏说VHDL之入门游戏一:流水灯
一. 流水灯 1.1流水灯原理 流水灯是每个学电子的入门“游戏” ,示意图如图1,其原理极其简单,但是可玩性却极强,可以就8个LED写出不同花样的程序.在1.2中我们列出两个不同思路的代码作为VH ...
- FPGA——流水灯(一)
对于FPGA的结构原理,先不进行全面的了解,先能根据教程程序看得懂,写得出来跑起来.慢慢的了解程序运行的原理,各种语法的使用. 今天对流水的程序有一个认识,熟悉软件的使用,语法规则,原理.以正点原子的 ...
- 第一个FPGA工程—LED流水灯
这一章我们来实现第一个FPGA工程-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...
- Zedboard学习(三):PL下流水灯实验 标签: fpgazynqPL 2017-07-05 11:09 21人阅读 评论(0)
zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...
- 单片机教程4.C语言基础以及流水灯的实现
单片机教程4.C语言基础以及流水灯的实现 C语言,没接触过计算机编程语言的人会把它看的很神秘,感觉非常的难,而在我看来,C语言的逻辑和运算,就是小学水平,所以大家不要怕它,我尽可能的从小学数学逻辑方式 ...
- 【黑金教程笔记之003】【建模篇】【Lab 02 闪耀灯和流水灯】—笔记
(1) 扫描频率和闪耀频率? 模块: /**************************************** module name:flash_module function ...
- FPGA 流水灯
VerilogHDL那些事儿_建模篇(黑金FPGA开发板配套教程) 作者:akuei2 说明:参照该书将部分程序验证学习一遍 学习时间:2014年5月2号 主要收获: 1. 对FPGA有初步了解: 2 ...
随机推荐
- 从create-react-app开始,构建项目架构
1.生成项目 命令行执行:create-react-app myapp,生成如下结构: 2.安装sass依赖,让你在项目中可以使用scss模块化,index.module.scss: npm i n ...
- .Net Core 注入学习——注册服务
解析 .Net Core 注入——注册服务发表于:2017-10-23 10:47 作者:行走即歌 来源:51Testing软件测试网采编字体:大 中 小 | 上一篇 | 下一篇 |我要投稿 | 推荐 ...
- .Net MVC 输出HTML内容
1.后台代码中的带HTML标记的内容 ViewData["msg"]="<b>Title</b>"; 然则如许打印出来的就是 <b ...
- 阿里企业邮箱smtp设置
阿里的邮箱没有SMTP授权码信息 SMTP服务器:smtp.mxhichina.com
- 浮动和渐变色,定位position,元素的层叠顺序
浮动: float 是我们网页布局的一种 浮动 可以有 left 左浮动 right 右浮动 两种 浮动的特点: 脱离正常的文档流,原本的空间不占据,浮动的标签都具有块级标签的一些特点,可以手动设置宽 ...
- H5打开app指定页面(H5+app项目)
H5+app项目,在HBuilderX中设置 详情参考官方 https://ask.dcloud.net.cn/article/64 给h5+app设置scheme值,作用:在其它app和h5页面中启 ...
- C++遍历磁盘驱动器
#include <stdio.h> #include <windows.h> typedef struct tagDRIVER { // (1)磁盘盘符 wchar_t di ...
- Qt 子线程更新Ui
最近做练习,写一个Qt版的飞机大战,需要用子线程更新UI,发现Qt子线程不能更新Ui,否则程序会崩溃.在网上百度了下,说是需要在子线程自定义信号,然后在线程回调的run()函数里发射信号,主线程连接信 ...
- NSLog的各种打印格式符和打印CGRect相关结构体
1.打印CG开头的数据类型,如CGRect,CGSize等方法 1.1 打印CGRect : NSLog(@"%@", NSStringFromCGRect(someCGRect) ...
- go语言 goquery爬虫
goquery 类似ruby的gem nokogiri goquery的选择器功能很强大,很好用.地址:https://github.com/PuerkitoBio/goquery 这是一个糗百首 ...