请教一下各位,我用的artix 7 100t芯片,vivado2019,我写了一个串口接收模块,功能调试好了以后,在这个代码里面有ila的时候,模块功能就是正常的,当我把ila注释掉了以后,功能就不对了,具体就是里面有个reg rxFinish,用来指示是否接收完成,在正常接收情况下,有ila的时候rxFinish可以取到1,没有ila的时候rxFinish不会等于1,我试过把这个模块里面的所有reg 和 wire 前面都加上(* dont_touch = "true" *)了的,但是都没用,必须要加上ila才行,这个串口接收模块是在多个地方例化了的,太奇怪了,请各位帮助分析一下这是什么情况,感谢
部分代码如下
always@(posedge clk50m)begin
case(stateRx)
0:begin
if(RX == 0)begin
stateRx <= 1;
beginCnt<=1;
end
rxFinish<=0;
end
1:begin//startBit
if(BaudePulse == 1)begin
stateRx<= 2;
bitCntRx<=0;
end
end
2:begin//data bit
if(halfBaudPulse == 1)begin
bitCntRx<= bitCntRx + 1;
rxBuffer[bitCntRx] <= RX;
if(bitCntRx >= 7)begin
stateRx <= 3;
end
end
end
3:begin // stop bit
if(halfBaudPulse == 1)begin
beginCnt <= 0;
stateRx <= 0;
rxFinish<=1;
end
end
default:begin
stateRx<=0;
end
endcase
end
ila_0 your_instance_name (
.clk(clk50m), // input wire clk
.probe0(RX), // input wire [0:0] probe0
.probe1(BaudePulse), // input wire [0:0] probe1
.probe2(rxFinish), // input wire [0:0] probe2
.probe3(halfBaudPulse), // input wire [0:0] probe3
.probe4(0), // input wire [15:0] probe4
.probe5(stateRx) // input wire [7:0] probe5
);