verilog写的一段代码,行为仿真时有问题,大家帮忙解决一下
时间:10-02
整理:3721RD
点击:
always @(posedge Clk or posedge ClearCount or posedge Reset)
if(Reset == 1)
XXXXXXXXXXXX
else if(ClearCount == 1)
Counter[2:0] <= 0;
else
begin
# 1.2 //1.2ns
Xor_Buf[7:0] <= {Xor_Buf[6:0] , IQ ^ LO};
Counter[2:0] <= Counter[2:0] + 1;
end
endcase
always @(posedge IQ or posedge Reset)
if(Reset == 1)
XXXXXXXXXXXX
else if(Counter[2:0] == 0)
XXXXXXXXXXXX
else
begin
ClearCount = 1;
# 1.2;
ClearCount = 0;
end
endmodule
代码如上,问题是寄存器clearcount置1时也就是clearcount的上升沿无法触发第一个always语句,请大家帮忙看一看,谢谢.
if(Reset == 1)
XXXXXXXXXXXX
else if(ClearCount == 1)
Counter[2:0] <= 0;
else
begin
# 1.2 //1.2ns
Xor_Buf[7:0] <= {Xor_Buf[6:0] , IQ ^ LO};
Counter[2:0] <= Counter[2:0] + 1;
end
endcase
always @(posedge IQ or posedge Reset)
if(Reset == 1)
XXXXXXXXXXXX
else if(Counter[2:0] == 0)
XXXXXXXXXXXX
else
begin
ClearCount = 1;
# 1.2;
ClearCount = 0;
end
endmodule
代码如上,问题是寄存器clearcount置1时也就是clearcount的上升沿无法触发第一个always语句,请大家帮忙看一看,谢谢.
第二个always 也要使用非阻塞赋值,不一定能解决问题。
always中的条件应一致 。
lz是不是要先考虑下.到底要做一个什么样的电路,
需要那些功能,先在纸面上搞清楚电路的基本结构
别老盯着代码.
否则代码 不出问题才怪.ls说的风格,lz确实...
