| 本人刚入门,想点亮一个led灯间隔200ms闪烁,用了两种方法,重点是always语句后面有不同。但只有一种方法能够实现。 方法一: always后面直接加延时时间,200ms(行为级仿真没有问题,但是用modelsim后仿led显示为红色即stx状态,未知电平),下载进去led不亮
 方法二:always后面采用clk的边沿触发 ,定义一个数据变量data用于计时,clk为50Mhz——20ns,一个周期记数一次,间隔也为200ms。前仿后仿都没问题,下载led也闪烁。module led_test(clk,led);
input clk;
output led;
wire led;
reg data;
initial  data=1'b0;
always #200000000
                 data=~data;
assign        led=data;
endmodule
 以上就是我的两种方法。第二种成功,而第一种失败。引脚分配ok,请大家帮我分析分析,非常感谢!module led_test(clk,led);
input clk;
output led;
reg led;
reg [31:0]data;
initial 
        begin 
        led=1'b1;
        data=0;
        end
        
always @(posedge clk)
        begin
                 if(data==10000000)
                        begin
                                led=~led;
                                data=0;
                        end
                 else data=data+1;
        end
endmodule
 
 
 |