小弟刚刚学习verilog,自己试着写一段代码,但是上去就不好使,在ModelSim SE 6.0上,没错误啊, 10
小弟刚刚学习verilog,自己试着写一段代码,但是上去就不好使,在ModelSimSE6.0上,没错误啊,但是仿真没有波形,大家帮我检查一下!!这是一个计数器代码~~~...
小弟刚刚学习verilog,自己试着写一段代码,但是上去就不好使,在ModelSim SE 6.0上,没错误啊,但是仿真没有波形,大家帮我检查一下!!
这是一个计数器代码~~~~~~我把测试的放后面啊
//----------------------------------------
module zy(rst,clk,en,ld,d,co,q);
input rst;
input clk;
input en;
input ld;
input[7:0] d;
output co;
output[6:0] q;
reg co;
reg[6:0] q;
always@(posedge clk or posedge rst)
begin
if(rst==1'b1)
q<= 7'b0000000;
else if (ld==1'b1)
begin
if(d>8'b01100011)
q<=1'bx;
else
q<=d;
end
else if(en==1'b1)
begin
while(q<7'b1100011)
begin
q<=q+1'b1;
end
end
end
//---------------------------------------
always@(q)
begin
if(q==7'b1100011)
co=1'b1;
else
co=1'b0;
end
//---------------------------------------
endmodule
这是测试代码
//------------------------------------
module zy_tb();
reg rst;
reg clk;
reg en;
reg ld;
reg[7:0] di;
wire co;
wire[6:0]q;
//----------------------------------
zy u1
(.rst(rst),
.clk(clk),
.en(en),
.ld(ld),
.d(di),
.co(co),
.q(q)
);
//-----------------------------------
initial begin
rst=1'b1;
clk=1'b0;
en=1'b0;
ld=1'b0;
di=8'b0000_0000;
#1 en=1'b1;
#1 rst=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
$stop();
end
//----------------------------------
endmodule
谢谢大家帮我看看啊 展开
这是一个计数器代码~~~~~~我把测试的放后面啊
//----------------------------------------
module zy(rst,clk,en,ld,d,co,q);
input rst;
input clk;
input en;
input ld;
input[7:0] d;
output co;
output[6:0] q;
reg co;
reg[6:0] q;
always@(posedge clk or posedge rst)
begin
if(rst==1'b1)
q<= 7'b0000000;
else if (ld==1'b1)
begin
if(d>8'b01100011)
q<=1'bx;
else
q<=d;
end
else if(en==1'b1)
begin
while(q<7'b1100011)
begin
q<=q+1'b1;
end
end
end
//---------------------------------------
always@(q)
begin
if(q==7'b1100011)
co=1'b1;
else
co=1'b0;
end
//---------------------------------------
endmodule
这是测试代码
//------------------------------------
module zy_tb();
reg rst;
reg clk;
reg en;
reg ld;
reg[7:0] di;
wire co;
wire[6:0]q;
//----------------------------------
zy u1
(.rst(rst),
.clk(clk),
.en(en),
.ld(ld),
.d(di),
.co(co),
.q(q)
);
//-----------------------------------
initial begin
rst=1'b1;
clk=1'b0;
en=1'b0;
ld=1'b0;
di=8'b0000_0000;
#1 en=1'b1;
#1 rst=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
#1 clk=1'b1;
#1 clk=1'b0;
$stop();
end
//----------------------------------
endmodule
谢谢大家帮我看看啊 展开
2个回答
展开全部
在你的testbench中, en信号没有给对。
看你的程序, 当en=1的时候q才能自加一, 但是你在testbench中, en信号一直是0, 所以
output当然不会有值出现啊。
看你的程序, 当en=1的时候q才能自加一, 但是你在testbench中, en信号一直是0, 所以
output当然不会有值出现啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询