如题:
硬件为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引脚直接驱动发光二极管。
分析:
问题原因,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
|