- 卡诺图是一种逻辑化简工具,用来在布尔函数的最小项和形式中,找到冗余项并实现逻辑化简。也可用于HDL中竞争和冒险的判断。
最小项
- 任何一个逻辑函数都能化简为最小项的和的形式
- 对于 n 个变量的布尔表达式,每个变量都必须以原变量(如A)或非变量(即否定的形式A’)出现,且在每个最小项中只能出现一次。每个最小项代表一个特定的输入组合。
- 例:假设有两个变量 A A A 和 B B B,则最小项可以表示为:
A ′ B ′ : 对应 ( A , B ) = ( 0 , 0 ) A'B' : \text{对应 } (A, B) = (0, 0) A′B′:对应 (A,B)=(0,0)
A ′ B : 对应 ( A , B ) = ( 0 , 1 ) A'B : \text{对应 } (A, B) = (0, 1) A′B:对应 (A,B)=(0,1)
A B ′ : 对应 ( A , B ) = ( 1 , 0 ) AB' : \text{对应 } (A, B) = (1, 0) AB′:对应 (A,B)=(1,0)
A B : 对应 ( A , B ) = ( 1 , 1 ) AB : \text{对应 } (A, B) = (1, 1) AB:对应 (A,B)=(1,1)
格雷码
格雷码(Gray Code)是一种特殊的二进制编码,每相邻两个数之间只有一个位发生变化
。格雷码的这种特性在某些应用中可以减少误差和干扰,因此被广泛用于数字电路设计、编码器、存储器地址生成、错误校验等领域。
-
格雷码可以
循环排列
,即从最大值到最小值过渡时也只有一个位变化。 -
n 位的格雷码可以通过以下递归方式生成:
- 0 位格雷码: G ( 0 ) = [ 0 ] \text{G}(0) = [0] G(0)=[0]
- 1 位格雷码: G ( 1 ) = [ 0 , 1 ] \text{G}(1) = [0, 1] G(1)=[0,1]
- n 位格雷码:将 n-1 位格雷码的所有数按顺序排列,然后将 n-1 位格雷码的所有数按逆序排列。然后在第一个排列前加 0,在第二个排列前加 1。
-
2 位格雷码生成过程:
- 从 1 位格雷码 [ 0 , 1 ] [0, 1] [0,1] 开始。
- 正序排列:[0, 1],在前面加 0 得到 [ 00 , 01 ] [00, 01] [00,01]。
- 逆序排列:[1, 0],在前面加 1 得到 [ 11 , 10 ] [11, 10]