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. 阿里云ECS云服务器Linux Tomcat启动慢 访问网页转圈

    状况: 今天购买了一台阿里云云服务器,按照正常的方式安装JDK,mysql,以及Tomcat 这里的版本信息有 系统 :Centos 7 tomcat: apache-tomcat-8.5.45.ta ...

  2. 保研经验帖----江西师范大学 to 华中科技大学

    呼,距离拿到华科cs的offer也有一段时间,有好几次准备动手写这篇经验帖,但就是理不清自己想表达什么,今早起来状态还不错,洗漱的时候思路居然通透了,哈哈哈~ 一.基本情况 先简单介绍笔者的一些基本情 ...

  3. python BeautifulSoup4--例子

    from bs4 import BeautifulSoup import requests import re #请求博客园首页 r=requests.get('http://www.cnblogs. ...

  4. Python接口自动化基础---环境准备

    安装requests模块 pip install requests request帮助文档查看 import requests print(help(requests)) Help on packag ...

  5. Java开发环境搭建(二):环境变量配置

    如果不配置环境变量,java 命令就只能在 bin 目录下才能使用,而且很多Java软件也需要在配置JAVA_HOME和PATH的状态下才能运行.为了在任何目录下都可以使用 java 命令.保证程序正 ...

  6. HTTP API 认证授权术

    原文:https://coolshell.cn/articles/19395.html 我们知道,HTTP是无状态的,所以,当我们需要获得用户是否在登录的状态时,我们需要检查用户的登录状态,一般来说, ...

  7. jvm调优相关

    查找占用cpu过高的线程,并排查原因 1.查找jvm进程 (1)jps -l (2)ps -ef|grep java 这一步骤可以得到进程号,假如进程号为9527 2.查找该jvm进程中占用cpu比较 ...

  8. springboot整合ActiveMQ1(基本使用)

    基本使用,https://www.tapme.top/blog/detail/2018-09-05-10-38 主备模式,https://www.tapme.top/blog/detail/2018- ...

  9. 过渡属性transition

    过渡属性:使元素变化过程可见 transition: all 1s;元素所有变化过程都可见 transition: 1s;元素所有变化过程都可见 transition: 指定属性 2s 1s;指定属性 ...

  10. javascript 数组排序原理的简单理解

    js内置的Array函数原型对象有个sort方法,这个方法能按照顺序排序数组. 例如: var arr1 = [6, 4, 2, 5, 2]; arr1.sort((x, y) => x - y ...