官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师

数字进制_不定态

发布时间:2023-04-13   作者:admin 浏览量:

需要看对应的视频,请点击视频编号:001100000056

1、本视频主要介绍数字电路的不定态,即X态,是0,1都可以。但建议所有的信号都不应该该处于不定态。                                                                                                                           
2、这是ALTERA和VIVADO视频


5.2.3不定态

前文中讲过数字电路只有高电平和低电平,分别表示10。但代码中经常能看到xz,如1’bx1’bz

那么这个xz是什么电平呢?答案是并没有实际的电平来对应两者。

xz更多地是用来表示设计者的意图或者用于仿真目的,旨在告诉仿真器和综合器如何解释这段代码。

X态,称之为不定态,其常用于判断条件,从而告诉综合工具设计者不关心它的电平是多少,是0还是1都可以。


1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
always   @(posedge clk or negedge rst_n)begin
  
     if(rst_n==1'b0)begin
  
dout<= 0;
  
     end
  
     else if(din==4'b10x0)begin
  
dout<= 1;
  
     end
  
end


上面的例子中可以看出判断条件是din==4’b10x0,该条件等价于din==4’b1000||din==4’b1010

其中“||”是“或”符号。



1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
always   @(posedge clk or negedge rst_n)begin
  
     if(rst_n==1'b0)begin
  
dout<= 0;
  
     end
  
     else if(din==4'b1000|| din==4'b1010)begin
  
dout<= 1;
  
     end
  
end


然而笔者的观点是在设计中直接写成din==4’b1000||din==4’b1010要好于写成“din==4’b10x0”,

因为这样的写法更加直接和简单明了。



在仿真的过程中有些信号产生了不定态,那么设计者就要认真分析这个不定态是不是合理的。

如果真的不关心它是0还是1,那么可以不解决。但笔者建议所有信号都不应该处于不定态,

写清楚其是0还是1,不要给设计添加“思考”的麻烦。

相关视频:https://www.bilibili.com/video/BV1yf4y1R7gH?p=10


相关视频:https://www.bilibili.com/video/BV1yf4y1R7gH?p=10


   拓展阅读