分析一个简单CPLD程序问题

[复制链接]
2371|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 | 显示全部楼层
解决方法值得学习!
dousfoulexd 发表于 2013-1-29 00:09 | 显示全部楼层
。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

146

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部