打印

分析一个简单CPLD程序问题

[复制链接]
2070|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuhaidianzi|  楼主 | 2012-12-30 20:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题:

   硬件为EPM570T100C5N的开发板。
实现不了小灯闪烁功能,可以单独对小灯进行控制(只可以控制亮灭,不能控制闪烁),不知道什么原因,特来请教大家。
以下是程序部分:
module LEDxiaodeng(CLK,LED);
input CLK;
output [8:1]LED;
reg[8:1]LED;
reg[22:0]buffer;
initial buffer=0;
always @(posedge CLK)
begin
buffer=buffer+1;
if(buffer==23'd5000000)
begin
buffer=0;
LED=~LED;//好像进行到这里就不能进行,好像不能循环似的,真像见了鬼的似的。
end
end
endmodule

程序编译没有问题,目的是实现1秒一闪,晶振是10MHZ。硬件部分为CPLD引脚直接驱动发光二极管。

相关帖子

沙发
wuhaidianzi|  楼主 | 2012-12-30 20:55 | 只看该作者
分析:

   问题原因,LED没有初值,LED=~LED 就不能执行。对上面的程序改造如下:

module LEDxiaodeng(CLK,LED);
input CLK;
output [8:1]LED;
reg[8:1]LED;
reg[22:0]buffer;
initial begin
buffer=0;
led=0;
end
always @(posedge CLK)
begin
if(buffer==23'd4999999)
begin
buffer=0;
LED=~LED;
end
else
buffer=buffer+1;
LED=LED;
end
end
endmodule

使用特权

评论回复
板凳
robbins37| | 2013-1-28 23:42 | 只看该作者
嗯  值得关注的问题 学习了

使用特权

评论回复
地板
dwananqinyan| | 2013-1-28 23:51 | 只看该作者
解决方法值得学习!

使用特权

评论回复
5
dousfoulexd| | 2013-1-29 00:09 | 只看该作者
。。。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

146

帖子

0

粉丝