当输出取决于不同信号的顺序或者时序时,被称为竞争。竞争可以分为两种
「实际硬件中的竞争」:以SR锁存器为例,当SR都是1的时候,输出为1,此时如果SR同时变成0,那么Q和Q'就会进入竞争的情况。可以通过添加合适的逻辑避免。
「仿真行为中的竞争」:例如下面的代码
always @(posedge clk or posedge reset)
if (reset) X1 = 0; // reset
else X1 = X2;
always @(posedge clk or posedge reset)
if (reset) X2 = 1; // reset
else X2 = X1;
由于使用了阻塞赋值,便会发生竞争的情况,通过改为非阻塞赋值可以解决
你答对了吗
欢迎在留言区给出你的答案,正确答案将在下一期公布,或者到下面的文章获取答案