博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流水灯之并行操作
阅读量:5222 次
发布时间:2019-06-14

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

流水灯

 功能描述:
 10个led灯 从第一个和最后一个led灯开始从两边向中间闪烁,闪烁频率为0.5s一次
 项目实现
 首先定义一个计时器 计数器的名字为count1,如果复位或者count1==2.5s时复位,否则count1加1,开发板晶振50M 当计数达到TIME=2.5s/(1/50M)-1=124_999_999
次数的时候,即为2.5s
具体代码为:always@(posedge CLK or negedge RSTn)
   if(!RSTn)
    Count1<=28'd0;
   else if(Count1==TIME)
    Count1<=28'd0;
   else
    Count1<=Count1+1'b1;
由流水灯的方式 在2.5s的周期内,有5对led的闪烁方式是一样,所以可以采用并行操作的方式,把TIME分为5部分,让10只led灯只在特定的时间段下亮灭
部分代码如下
reg [1:0] rLED_Out;
always@(posedge CLK or negedge RSTn)
if(!RSTn)
 rLED_Out<=2'b0;
else if(Count1>28'd0&&Count1<28'd25_000_000)
 rLED_Out<=2'b11;
else
 rLED_Out<=2'b0;
assign LED_Out=rLED_Out;
顶层模块为
module top
(
CLK,RSTn,LED_Out
);
input CLK;
input RSTn;
output [9:0] LED_Out;
wire[1:0] LED_Out1;//连线作用
module1 U1
(
 .CLK(CLK),
 .RSTn(RSTn),
 .LED_Out(LED_Out1)LED_Out1把模块里面的led和led[9:0]链接起来
);
assign LED_Out={LED_Out1,LED_Out2....}
错误总结
在五分之一个周期的时候写Count1的范围需要对限定左边的极限
模块声明里面逗号,外部加分号

LED_Out1所在9:0里面的位置取决于在大括号里面的位置

转载于:https://www.cnblogs.com/bixiaopengblog/p/5927197.html

你可能感兴趣的文章
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
jmeter系列二(jmeter engine相关)
查看>>
前端页面设计问题小计
查看>>
一份超全超详细的 ADB 用法大全
查看>>
Spring定时任务(@Scheduled)
查看>>
WebView 调试
查看>>
IB使用
查看>>
Linux硬链接和软链接(符号链接)
查看>>
git stash
查看>>
Apache Common-IO 使用
查看>>
Java-第一课正则表达式
查看>>
深入剖析,什么是eval的直接调用.
查看>>
apidoc
查看>>
3月14日-15日学习总结
查看>>
关于 ++x 和 x++ 比较难的一个例子
查看>>
第三次作业 105032014021
查看>>
记录一些容易忘记的属性 -- UILabel
查看>>
android新手关于左右滑动的问题,布局把<android.support.v4.view.ViewPager/><ImageView/> 放在上面就不行了。...
查看>>
人脸识别FaceNet+TensorFlow
查看>>