我的59位的计数器为什么仿真的时候输出为不定值,麻烦哪位高人帮我看一下。

来源:百度知道 编辑:UC知道 时间:2024/06/27 07:41:00
module bcdjishuqi(data,load,cin,clk,rest,qout, count);
input load,cin,clk,rest;
input[7:0] data;
output qout ,count;
reg [7:0] qout;
always@(posedge clk)
begin
if(!rest)
qout=8'b00000000;
else if(load)
qout[7:0]<=data[7:0];
else if(cin)
begin
if (qout[3:0]==4'b1001)
begin
qout<=8'b00000000;
if (qout[7:4]==4'b0101)
qout[7:4]<=8'b00000000;
else qout[7:4]=qout[7:4]+1;
end
else qout[3:0]=qout[3:0]+1;
end
end
assign count=((qout==8'h59)&cin)?1:0;
endmodule

module bcdjishuqi_tp;
reg load,cin,clk,rest;
reg [7:0] data;
wire count;
wire [7:0] qout;
bcdjishuqi wsm(data,load,cin,clk,rest,qout,count);
initial
begin
$monitor ($time,"data=%b,load=%b,cin=%b,clk=%b,rest=%b,qout=%b,count=%b\n",data,lo

if (qout[3:0]==4'b1001)
begin
qout<=8'b00000000;
if (qout[7:4]==4'b0101)
qout[7:4]<=8'b00000000;
else qout[7:4]=qout[7:4]+1;
end
else qout[3:0]=qout[3:0]+1;
end

低四位等于9则把第四位清零,你怎么把8位全清了,
还有,qout[7:4]<=8'b00000000,看起来怪怪的