博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流水灯实验
阅读量:6119 次
发布时间:2019-06-21

本文共 2193 字,大约阅读时间需要 7 分钟。

 

开发板上有一排LED灯,共26个,LEDR17-LEDR0-LEDG7-LEDG0;

实现以1s间隔从左至右流,循环不断~

完整代码如下(用的依旧是自动生成的模板):

//=======================================================//  This code is generated by Terasic System Builder//=======================================================module LED_Test(     CLOCK //    CLOCK_50,    RSTn,     LED //    LEDG,    LEDR );//=======================================================//  PORT declarations//======================================================= CLOCK //input                          CLOCK_50;input                            RSTn; LED //output             [8:0]        LEDG;output            [17:0]        LEDR;//=======================================================//  Structural coding//======================================================= //-----------------------定时器模板-------------------------- //----1MS定时器 parameter T1MS = 16'd49_999;reg    [15:0]    Count1;always@(posedge CLOCK_50 or negedge RSTn)    if(!RSTn)        Count1 <= 16'd0;    else if(Count1 == T1MS)        Count1 <= 16'd0;    else        Count1 <= Count1 + 1'b1;                //----1S定时器reg    [9:0]    Count_MS;always@(posedge CLOCK_50 or negedge RSTn)    if(!RSTn)        Count_MS <= 10'd0;    else if(Count_MS == 16'd1000)        Count_MS <= 10'd0;    else if(Count1 == T1MS)        Count_MS <= Count_MS + 1'b1;  //---------------------------------------------------------- //---------------------流水灯实现---------------------------reg    [26:0]    rLED;always@(posedge CLOCK_50 or negedge RSTn)    if(!RSTn)        rLED <= 27'b1000_0000_0000_0000_0000_0000_00;    else if(Count_MS == 16'd1000)        begin            if(rLED == 27'b0000_0000_0000_0000_0000_0000_001)    //首尾交接处                rLED <= 27'b1000_0000_0000_0000_0000_0000_000;            else if(rLED == 27'b0000_0000_0000_0000_0100_0000_000)   //红绿LED交接处                rLED <= 27'b0000_0000_0000_0000_0001_0000_000;            else                rLED <= {
1'b0,rLED[26:1]}; end //----------------------------------------------------------------- // 输出赋值assign LEDR = rLED[26:9];assign LEDG = {
1'b0,rLED[7:0]}; //由于LEDG8跟它们一排LED不在同一排,所以就分出来置零好了endmodule

 

转载于:https://www.cnblogs.com/fengyanlover/p/5021200.html

你可能感兴趣的文章
python模块之hashlib: md5和sha算法
查看>>
linux系统安装的引导镜像制作流程分享
查看>>
解决ros建***能登录不能访问内网远程桌面的问题
查看>>
pfsense锁住自己
查看>>
vsftpd 相关总结
查看>>
bash complete -C command
查看>>
解决zabbix 3.0中1151端口不能运行问题
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
dubbo
查看>>
【Git入门之四】操作项目
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
高利率时代的结局,任重道远,前途叵测
查看>>
Debian 6.05安装后乱码
查看>>
欢迎大家观看本人录制的51CTO精彩视频课程!
查看>>
IntelliJ IDEA中设置忽略@param注释中的参数与方法中的参数列表不一致的检查
查看>>
关于软件开发的一些感悟
查看>>
uva 10806
查看>>