Verilog程序 流水灯

求助诸位大神,本人写了一个流水灯程序,目的是led0以一定频率闪烁,led1闪烁频率为led0的十分之一,经过时序仿真,发现程序基本没问题。但是输出的波形中,led0和l... 求助诸位大神,本人写了一个流水灯程序,目的是led0以一定频率闪烁,led1闪烁频率为led0的十分之一,经过时序仿真,发现程序基本没问题。但是输出的波形中,led0和led1的高电平时间过短,导致led灯无法观察到闪烁现象,我应该如何修改程序,从而延长高电平的时间呢? 展开
 我来答
帐号已注销
2014-11-06 · TA获得超过8230个赞
知道小有建树答主
回答量:1146
采纳率:94%
帮助的人:217万
展开全部
看你这代码真的很蛋疼,我给你写一个:
module led(clk,rst,led0,led1)
input clk,rst; output led0,led1;
reg [31:0 ]cnt_led0;
reg [31:0 ]cnt_led1;
reg led0,led1;
begin
if(rst) begin cnt<=0; led0<=0; led1<=0; end
else
begin
cnt_led0<=cnt_led0+1;
cnt_led1<=cnt_led1+1;
if(cnt_led0==99) begin led0<=~led0;cnt_led0<=0; end
if(cnt_led1==999) begin led1<=~led1;cnt_led1<=0; end
end
end
以上代码应该可以实现led1闪烁是led0频率的十分之一,只需调整一下CLK的频率即可实现人眼可分辨的频闪,led1是CLK频率的2000分频,led0是CLK的200分频
追问
大神你好,我才接触这方面,写的代码您见笑了...不过,有什么方法可以实现一个语句的持续延时么?比如“led0=1”我想让它保持10个clk 如何办到?
追答
别叫大神,我也才接触FPGA开发1年时间,保持10个CLK,就是增加10个触发器(如果你学过数电),每一个CLK到来,把前级触发器给后级,这样的话10个clk以后,输入就到输出的位置上了;写代码的话  就是定义一个累加的变量,每个clk累加一次  比如 累加值到10的时候你点亮 累加到20的时候熄灭  是不是就保持了10个CLK?很简单吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式