|
为什么一模一样的程序在quartus和modelsim中仿真不同,呵呵。
程序:
module state_ctrl(clk,en,reset,en1,en2,wen,ren,adder);
input clk,en,reset;
output en1;
output en2;
output wen;
output ren;
output[31:0] adder;
reg [3:0] state;
reg [31:0] adder;
always @(posedge clk or negedge reset)
begin
if(!reset)
adder<=0;
else if(!en)
begin if(adder==60000)
adder<=0;
else
adder<=adder+1;
end
else adder<=0;
end
assign {en1,en2,wen,ren}=state;
always @(adder)
begin
case(adder)
32'd0:state<=4'b1111;
32'd2:state<=4'b1001;
32'd3:state<=4'b1010;
32'd45:state<=4'b0111;
default:state<=state;
endcase
end
endmodule
-----------------------------------
测试文件:
module tb_state_ctrl;
reg clk,en,reset;
wire en1;
wire en2;
wire wen;
wire ren;
wire [31:0] adder;
state_ctrl state_ctrl(.clk(clk),.en(en),.reset(reset),.en1(en1),.en2(en2),.wen(wen),.ren(ren),.adder(adder));
initial
begin
clk=0;
forever #50 clk=!clk;
end
initial
begin
reset=0;
en=0;
#100 reset=1;
end
endmodule |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|