为什么一模一样的程序在quartus和modelsim中仿真不同,呵呵。
为什么一模一样的程序在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 adder;
reg state;
reg 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
elseadder<=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 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 恩,好好向这里学习知识的 我其实还不会仿真的 我觉得主要是仿真软件本身的延时问题把,结果还是一样的。你注意一下en1,en2,wen.. 多谢各位了,我来学习一下啊 :D 学习学习 感觉很奇妙,呵呵,学习一下!!!!!!! 一本学习FPGA不错的书 你在quartus里仿真用的是创建波形的模式吧,但是在modelsim里是通过写testbench来做的仿真,出现这种错误的原因很可能是你创建波形给的激励和你写tesetbench给的激励不一样。 同意楼上的说法,虽然我也是刚学Verilog
页:
[1]
2