小弟刚刚学习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
谢谢大家帮我看看啊
展开
 我来答
capark
2012-03-12
知道答主
回答量:21
采纳率:0%
帮助的人:16.4万
展开全部
在你的testbench中, en信号没有给对。
看你的程序, 当en=1的时候q才能自加一, 但是你在testbench中, en信号一直是0, 所以
output当然不会有值出现啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拱幼白6M
2012-03-01
知道答主
回答量:12
采纳率:0%
帮助的人:9.9万
展开全部
测试顶层没信号名,或是start simulation时把优化层次结构的钩钩去掉。波形还是需要自己加的。
追问
我已经发现问题了,是我的while用的不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式