只使用0和1两个值的模型称为二值模型。二值模型假定逻辑元件都完成理想的布尔运算,可以检验数字系统的逻辑功能,可以检查电平配合、时序配合等问题。
  在二值的基础上再增加一个值X,即形成三值模型。X可以表示下列三种情况:
  (1)表示不确定状态,如未赋初值的信号值和某些初值。具有相同强度,不同逻辑值的输出端驱动同一个信号节点时,不能区分0或1,该信号值也用'X'表示。
  (2)处在跳变过程中的过渡态。信号从一个稳态过渡到另一个稳态,都要经历一段短暂时间。在此期间信号状态值未定,或处于0和1。
  (3)表示无关紧要的信号。
  根据X 表示或为0或为1,很容易得到关于X的运算规则:
    'X' and '0' = '0'; 'X' and '1' = 'X';
    'X' or '0' = 'X'; 'X' or '1' = '1';
    not 'X' = 'X';
  表3.1列出了三值模型的运算规则。

表3.1 三值模型的运算规则

0 1 x
0 0 0 0
1 0 1 x
x 0 x x
0 1 x
0 0 1 x
1 1 1 1
x x 1 x
 
0 1
1 0
x x

  三值模型可以用来检测竞争冒险,将在本章后面介绍。
  高阻值Z常用在CMOS电路中,晶体管截止时常出现高阻状态。三态门在控制信号为'0'时其输出呈现高阻状态,它相当于把连线断开。
  在CMOS电路中,常遇到两个或多个输出端直接连接在一起的情况,称为线或逻辑(Wired Or),或称为线连接(Wired Connection),如图3.4所示。在线或逻辑中通常只允许一个输出端为稳态值,其余端均应为'Z'。这时线或运算的最后结果就等于该稳态值。即
    'Z' wor y = y, y?{'0', '1', 'X'}
  其中, wor 表示线或运算。很明显,'Z' wor 'Z' ='Z'。
图3.4 线逻辑事例

  若在门的某一输入端出现Z信号,可以看作该线断开。其逻辑运算规则如表3.2所示(其中S表示另一个信号值0, 1, X)。

表3.2 Z的运算规则

S 线或
0 0 0 0
1 1 1 1
X X X X
Z X X Z


  若两个稳态值作线或运算,则其结果为未定(X)。
  Z的运算规则还可以根据电路工艺决定。
  由0,1,X,Z组成的信号值模型称为四值模型,常用来实现对MOS电路的模拟。
  前面介绍了为解决线或逻辑问题引入了高阻值Z。但仅仅区分"高阻"和"低阻",有时显得过于粗略。在MOS电路中常遇到用不同的电阻值来控制其工作过程的情况。为此常用到信号值强度。强度用来表示信号的驱动能力。
有些元件的输出信号值强度是根据元件输入端信号值的电平和强度计算出来的,根据元件模型来定。如传输门的功能可定义为
    if (E == '0') Out= "ZX";
    else Out = In;
即当E为'1'时,使得Out的值及其强度与In相同。
  当两个具有强度的信号值进行一般逻辑运算时,主要取决于电平值,与强度关系不大。
  当两个具有强度的信号值进行线或运算时,根据强度取胜的原则进行。即如果A的强度大于B的强度,则其线或结果与A的强度和值相同。如果如果A的强度等于B的强度,而A的值不等于B的值,则其线或结果为'X',强度不变。如果如果A的值等于B的值,而强度不同,则其线或结果的值不变,强度取其较强者。