本帖最后由 elecfans跑堂 于 2015-8-31 09:38 编辑
程序如下
module fsm2(clk,led);
input clk;//,rst;
output led;
reg led;
reg[19:0]i;
ini
tial
begin
led<=1;
i<=0;
end
always@(posedge clk )//or negedge rst)
//if(0==rst)
//begin
// end
//else
begin
i<=i+1;
if(i==1000000)
begin
i<=0;
led<=~led;
end
end
endmodule
而我的
仿真程序如下
module tt;
// Inputs
reg clk;
// Outputs
wire led;
// Instantiate the Unit Under Test (UUT)
fsm2 uut (
.clk(clk),
.led(led)
);
initial begin
// Initialize Inputs
clk = 0;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
forever
begin
#10;
clk<=!clk;
end
end
endmodule
module fsm2(clk,led);
input clk;
output led;
reg led;
reg[19:0] i;
initial
begin
led<=1;
i<=0;
end
always@(posedge clk )
begin
if(i==1000000)
begin
i<=0;
led<=~led;
end
else
i<=i+1;
end
endmodule
我把它改为这个以后,还是一样,仿真的时候led一直保持高电平
module fsm2(clk,led);
input clk;
output led;
reg led;
reg[19:0] i;
initial
begin
led<=1;
i<=0;
end
always@(posedge clk )
begin
if(i==1000000)
begin
i<=0;
led<=~led;
end
else
i<=i+1;
end
endmodule
我改为这个以后,仿真时led一直保持高电平,不知道是为什么
自己好好看看,你那程序咋做的,并行同时赋值会出问题的,好好看看VERILOG的书
一周热门 更多>