仿真出错为什么呢?
时间:10-02
整理:3721RD
点击:
- always@(posedge clk or negedge rst_n) begin
- if(!rst_n) begin
- count_data <= 'd0;
- En_MSG <= 'd0;
- En_PTY <= 'd0;
- end
- else begin
- if(En_MSG) begin
- count_data <= count_data + 1;
- if(count_data==data_Frame) begin
- En_PTY <= 'd1;
- end
- end
- if(En_PTY) begin
- count_Pty <= count_Pty + 1;
- if(count_Pty==Pty_Num) begin
- En_MSG <= 'd1;
- end
- end
- end
- end
综合之后提示说:
Register count_Pty_reg has both Set and Reset with same priority. 然后仿真出错。
别处没有相关寄存器的赋值操作了,请问这是怎么回事呢?
哪位给解释一下,不胜感激!
begin与end不匹配导致的吧
数了一下,你的count_Pty那个if语句已经在always外面了
你的代码太乱了,不同的变量最好写在不同的进程里面。
代码有点乱,begin end 是匹配的,不然工具会报错。我主要是想问的是Register count_Pty_reg has both Set and Reset with same priority. 通常是由于睡眠原因导致的?谢谢!
是的,最好一个信号只出现在一个always块中,是没想好代码怎么写
可能的原因之一是你这个count_Pty_reg没有在!rst_n条件下做初始化赋值
