请帮小弟看看这个verilog程序
以下为小弟编的verilog程序,最终输出的结果 Out是正常的,但是经示波器观察
Mode的输出却不是很稳定,时不时的跳一下,请帮小弟看一下,万分感谢!
module Counter(Clk,Ch,Q);
//计数器,在Ch为高电平时计数,为低电平时输出计数器的高3位
input Clk,Ch;
output[2:0] Q;
reg[2:0] Q;
reg[15:0] Counter;
reg Temp;
always @ (posedge Clk)
if (Ch == 1)
begin
if(Temp)
Counter <= Counter + 1;
else
begin
Counter <= 1;
Temp <= 1;
end
end
else
begin
Q <= Counter[15:13];
Temp <= 0;
end
endmodule
module Comparator(Clk,Q,Result);
//比较器
input[2:0] Q;
input Clk;
output[1:0] Result;
reg[1:0] Result;
always @ (posedge Clk)
if(Q < 3)
Result <= 2'b00;
else if (Q > = 4)
Result <= 2'b10;
else
Result <= 2'b01;
Endmodule
module SwitchMode (Clk,Result,Mode,Out);
input Clk;
input[1:0] Result;
output[2:0] Mode;
output[1:0] Out;
reg[2:0] Mode;
reg[1:0] Out;
always @ (posedge Clk)
case(Result)
2'b01:
begin
Mode <= 3'b010;
Out <= 2'b10;
end
2'b10:
begin
Mode <= 3'b011;
Out <= 2'b11;
end
default:
begin
Mode <= 3'b000;
Out <= 2'b00;
end
endcase
endmodule
发表时间:2007年3月8日21:53:08