用modelsim仿真verilog,输入量在testbench里都赋了值但所有输入都显示Hiz,源程序和testbench在下面
到底是哪里出了问题啊~~~求大神解救verilog源程序:modulecounter(clock,reset,Xstep,Xupdown,Xcount);inputclo...
到底是哪里出了问题啊~~~求大神解救
verilog 源程序:
module counter(clock,reset,Xstep,Xupdown,Xcount);
input clock,Xstep,Xupdown,reset;
output [23:0]Xcount;
reg [23:0]Xcount;
always @ (posedge clock)
begin
if(reset==1)//reset
begin
Xcount[23:0]=0;
end
else if (reset==0) // no reset
begin // no reset begin****
if(Xstep==1)
begin // counter start***
if(Xupdown==1)
begin
Xcount=Xcount+1;
end
else if(Xupdown==0)
begin
Xcount=Xcount-1;
end
end // counter end***
end //home end***
end
endmodule
testbench:
`timescale 1ns/1ps
module tst_counter();
reg eachvec;
reg clock;
reg Xstep;
reg Xupdown;
reg reset;
wire[23:0] Xcount;
counter xx(
.clock(clock),
.reset(reset),
.Xstep(Xstep),
.Xupdown(Xupdown),
);
initial
begin
clock=0;
forever
begin
#10 clock=~clock;
end
end
initial
begin
Xstep=1;
Xupdown=1;
reset=1;
#30 reset=0;
end
endmodule
发现是testbench 里多了一个逗号,现在输入是对的但输出是Hiz了。。。 展开
verilog 源程序:
module counter(clock,reset,Xstep,Xupdown,Xcount);
input clock,Xstep,Xupdown,reset;
output [23:0]Xcount;
reg [23:0]Xcount;
always @ (posedge clock)
begin
if(reset==1)//reset
begin
Xcount[23:0]=0;
end
else if (reset==0) // no reset
begin // no reset begin****
if(Xstep==1)
begin // counter start***
if(Xupdown==1)
begin
Xcount=Xcount+1;
end
else if(Xupdown==0)
begin
Xcount=Xcount-1;
end
end // counter end***
end //home end***
end
endmodule
testbench:
`timescale 1ns/1ps
module tst_counter();
reg eachvec;
reg clock;
reg Xstep;
reg Xupdown;
reg reset;
wire[23:0] Xcount;
counter xx(
.clock(clock),
.reset(reset),
.Xstep(Xstep),
.Xupdown(Xupdown),
);
initial
begin
clock=0;
forever
begin
#10 clock=~clock;
end
end
initial
begin
Xstep=1;
Xupdown=1;
reset=1;
#30 reset=0;
end
endmodule
发现是testbench 里多了一个逗号,现在输入是对的但输出是Hiz了。。。 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏80(财富值+成长值)
2个回答
展开全部
源码里的赋值全部用非阻塞赋值试试,也就是<=
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询