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实现的更多相关文章

  1. 【接口时序】2、Verilog实现流水灯及与C语言的对比

    一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 硬件平台: 1.FPGA型号:XC6SLX45 ...

  2. [51单片机] EEPROM 24c02 [I2C代码封装-保存实现流水灯]

    这里把EEPROM 24c02封装起来,今后可以直接调用,其连线方式为:SDA-P2.1;SCL-P2.0;WP-VCC >_<:i2c.c /*--------------------- ...

  3. 3. 戏说VHDL之入门游戏一:流水灯

    一.   流水灯 1.1流水灯原理 流水灯是每个学电子的入门“游戏” ,示意图如图1,其原理极其简单,但是可玩性却极强,可以就8个LED写出不同花样的程序.在1.2中我们列出两个不同思路的代码作为VH ...

  4. FPGA——流水灯(一)

    对于FPGA的结构原理,先不进行全面的了解,先能根据教程程序看得懂,写得出来跑起来.慢慢的了解程序运行的原理,各种语法的使用. 今天对流水的程序有一个认识,熟悉软件的使用,语法规则,原理.以正点原子的 ...

  5. 第一个FPGA工程—LED流水灯

    这一章我们来实现第一个FPGA工程-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...

  6. Zedboard学习(三):PL下流水灯实验 标签: fpgazynqPL 2017-07-05 11:09 21人阅读 评论(0)

    zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...

  7. 单片机教程4.C语言基础以及流水灯的实现

    单片机教程4.C语言基础以及流水灯的实现 C语言,没接触过计算机编程语言的人会把它看的很神秘,感觉非常的难,而在我看来,C语言的逻辑和运算,就是小学水平,所以大家不要怕它,我尽可能的从小学数学逻辑方式 ...

  8. 【黑金教程笔记之003】【建模篇】【Lab 02 闪耀灯和流水灯】—笔记

    (1)       扫描频率和闪耀频率? 模块: /**************************************** module name:flash_module function ...

  9. FPGA 流水灯

    VerilogHDL那些事儿_建模篇(黑金FPGA开发板配套教程) 作者:akuei2 说明:参照该书将部分程序验证学习一遍 学习时间:2014年5月2号 主要收获: 1. 对FPGA有初步了解: 2 ...

随机推荐

  1. PB 报表数值列加%

  2. get merge --no-ff和git merge区别、git fetch和git pull的区别

    get merge --no-ff和git merge区别 git merge -–no-ff可以保存你之前的分支历史.能够更好的查看 merge历史,以及branch 状态. git merge则不 ...

  3. Python字符串格式化方式之format

    format方式是在Python3引入了一个新的字符串格式化的方法,并且随后支持了Python2.7.这个新的字符串格式化方法摆脱了%操作符并且使得字符串格式化的语法更规范了.现在时候通过调用字符串对 ...

  4. TypeScript之泛型

    什么是泛型,有什么用? 泛型字面意思就是广泛的类型,怎么样才算广泛呢?当然是能变的最广泛嘛, 所谓泛型就是类型的变量写法,让你的变量的类型是动态可变的,应用场景如官方文档描述的例子: 一个函数,输入什 ...

  5. Java调用WebService方法总结(3)--wsimport调用WebService

    wsimport是JDK自带的把WSDL转成Java的工具,可以很方便的生成调用WebService的代码.文中所使用到的软件版本:Java 1.8.0_191. 1.准备 参考Java调用WebSe ...

  6. dubbo源码阅读之服务引入

    服务引入 服务引入使用reference标签来对要引入的服务进行配置,包括服务的接口 ,名称,init,check等等配置属性. 在DubboNamespaceHandler中,我们可以看到refer ...

  7. php生成一维码以及保存-转载

    地址:http://www.cnblogs.com/ForEvErNoME/archive/2012/04/21/2460944.html 注释掉: //header('Content-Type: i ...

  8. CSSTab栏下划线跟随效果

    神奇的 ~ 选择符 对于当前 hover 的 li ,其对应伪元素的下划线的定位是 left: 100%,而对于 li:hover ~ li::before,它们的定位是 left: 0. ul li ...

  9. Android studio来开发移动App--SQA计划和系统测试规程

    概述 团队分工 产品需求 团队合作 每日例会 思维导图 UML 产品代码 团队分工 成员:刘鹏芝,罗樟,王小莉,沈兴艳,徐棒,彭康明,胡广键 产品用户:王小莉 需求规约:彭康明,罗樟 UML:刘鹏芝, ...

  10. CSS是什么

    css是层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. CSS不 ...