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. 在内网中 vue项目添加ECharts图表插件

    原文地址:https://www.cnblogs.com/aknife/p/11753854.html 最近项目中要使用到图表 但是项目在内网中无法直接使用命令安装 然后我在外网中弄个vue的项目(随 ...

  2. Linux进程间通信—使用共享内存

    Linux进程间通信-使用共享内存 转自: https://blog.csdn.net/ljianhui/article/details/10253345 下面将讲解进程间通信的另一种方式,使用共享内 ...

  3. 论文笔记 XGBoost: A Scalable Tree Boosting System

    XGBoost是boosting算法的其中一种.Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器,其更关注与降低基模型的偏差.XGBoost是一种提升树模型(Gradient bo ...

  4. WPF 程序如何移动焦点到其他控件

    原文:WPF 程序如何移动焦点到其他控件 WPF 中可以使用 UIElement.Focus() 将焦点设置到某个特定的控件,也可以使用 TraversalRequest 仅仅移动焦点.本文介绍如何在 ...

  5. node.js开发 1-概述

    https://www.cnblogs.com/gaoya666/p/9071288.html Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.c ...

  6. Javap与JVM指令

    一.javap命令简述 javap是jdk自带的反解析工具.它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令).本地变量表.异常表和代码行偏移量映射表.常量池等等信息.当 ...

  7. npm/svn 命令

    npm npm config set registry https://registry.npm.taobao.org npm config list svn + 清除失败的事务 - cmd管理员运行 ...

  8. mybatis异常:nested exception is org.apache.ibatis.builder.BuilderException: Error resolving JdbcType

    异常详细 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.Builde ...

  9. UCOSII软件定时器

    API函数 //创建 OS_TMR *OSTmrCreate (INT32U dly, INT32U period, INT8U opt, OS_TMR_CALLBACK callback, void ...

  10. 208道Java常见的面试题

    一.Java 基础 1.JDK 和 JRE 有什么区别? JRE=JVM+各种基础类库+java类库(String\System) JDK>JRE>JVM JRE:是java运行时环境  ...