微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 仿真出错为什么呢?

仿真出错为什么呢?

时间:10-02 整理:3721RD 点击:

  1.         always@(posedge clk or negedge rst_n) begin
  2. if(!rst_n) begin
  3. count_data <= 'd0;
  4. En_MSG <= 'd0;
  5. En_PTY <= 'd0;
  6. end
  7. else begin
  8. if(En_MSG) begin
  9. count_data <= count_data + 1;
  10. if(count_data==data_Frame) begin
  11. En_PTY <= 'd1;
  12. end
  13. end
  14. if(En_PTY) begin
  15. count_Pty <= count_Pty + 1;
  16. if(count_Pty==Pty_Num) begin
  17. En_MSG <= 'd1;
  18. end
  19. end
  20. end       
  21. 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条件下做初始化赋值

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top