Bootstrap

数字ic设计bug:寄存器翻转错误

数字ic设计bug:寄存器翻转错误


bug场景:

寄存器未按指定条件翻转,满足翻转条件,但未翻转

问题描述

always@(posedge clk or negedge rst_n)
if(!rst_n)
    a <= 1‘d0;
else if(a_condition)
    a <= 1’b1;

a_condition为1时,寄存器a依然为0,未翻转为1

原因分析:

  • 门控时钟信号设置错误,导致clk时钟信号恒为0,未在a_condition为1时产生上升沿;
  • rst_n未正常拉起,a_condition为1时,rst_n为0;
  • a_condition不与clk同步,a_condition含异步时钟域的信号;
  • (大概率)代码和波形不一致,未对齐,需要重新根据最新代码重新跑波形;
;