什么是disjoint-support?

在这里插入图片描述
这是原文The Disjunctive Decompositionof Logic Functions的解释。

什么是布尔差分(boolean difference)?

∂ F / ∂ x i = F x i = 0 ⊕ F x i = 1 \partial F/\partial x_i = F_{x_i=0} \oplus F_{x_i=1} F/xi=Fxi=0Fxi=1,如果 ∂ F / ∂ x i \partial F/\partial x_i F/xi恒等于0,则说明 F F F的取值与变量 x i x_i xi无关。如果不恒等于0,则称这一类的变量集合 S F S_F SF为布尔函数 F F Fsupport

什么是disjoint-support?

如果有两个布尔函数 F F F G G G,如果他们的 s u p p o r t support support集合并集为空,即 S F ⋂ S G = ϕ S_F \bigcap S_G = \phi SFSG=ϕ,则称这两个布尔函数是disjoint-support的。

什么是decomposition?

为什么要对布尔函数进行decomposition?

首先,若将一个复杂的二级布尔函数表示转换成一个多级的表示,则它可以将输入集中在更简单和更小的逻辑块中,从而减少了面积和互连。
其次,通过证明 F F F的子函数在计算中的独立性,揭示了布尔函数 F F F计算的并行性。

Disjunctive Decompositions

对布尔函数的 F F F的分解是通过寻找其他的更简单的函数 L L L A i A_i Ai完成,能够使得,
F ( x i , . . . , x n ) = L ( A 1 ( x 1 , . . . ) , A 2 ( x 1 , . . . ) , . . . , A k ( x 1 , . . . ) ) (1) F(x_i,...,x_n)=L(A_1(x_1,...), A_2(x_1,...),...,A_k(x_1,...)) \tag{1} F(xi,...,xn)=L(A1(x1,...),A2(x1,...),...,Ak(x1,...))(1)

这个公式的意思就是将原始的布尔函数 F F F,拆分成 k k k个更小的函数 A i A_i Ai A i A_i Ai之间满足disjoint-support,最后通过函数 L L L,将这些 A i A_i Ai结合在一起。

定义1: 对于函数 L ( A 1 , . . . , A k ) L(A_1,...,A_k) L(A1,...,Ak), 如果存在 k k k个非常数disjoint-support函数 A 1 , . . . , A k , n > k > = 2 A_1,...,A_k,n > k >= 2 A1,...,Ak,n>k>=2满足等式(1),则称 F F Freduce。如果任何 L L L都不能分解 F F F,则 F F F被称为prime

函数 A i A_i Ai被称为 F F F的分解的形式输入(formal input)。 F F F的形式输入集合表示为 F / L F/L F/L,称为 F F F的分解列表(decomposition list)。我们称 F F F的disjunctive decomposition为满足等式(1)的任意 ( L , F / L ) (L,F/L) (LF/L)组合。

如果F是可分解的,则可以将其分解描述为:
》有一个unique prime函数L将它分解,可以将它的formal input排列和互补(取反)。
》如果 L L L的support集合内元素个数 ∣ S L ∣ > 2 |S_L| > 2 SL>2,那么 F / L F/L F/L中的函数也是唯一确定的,可以将它的formal input排列和互补。(没太理解)
》如果 L L L的support集合内元素个数 ∣ S L ∣ = 2 |S_L| = 2 SL=2,那么F可以被精确地用以下方式之一分解:
(1)
在这里插入图片描述
我的理解是 L L L的support集合中只有 A 1 , A 2 A_1,A_2 A1,A2,那么 F = A 1 + A 2 F=A_1 + A_2 F=A1+A2,其中 L L L的功能即 O R OR OR
(2)
在这里插入图片描述
没懂。可能是F被分解成 F = A 1 + A 2 ‾ F=\overline{A_1+A_2} F=A1+A2这样?
(3)
在这里插入图片描述
这里 F F F被分解成 F = A 1 ⊕ A 2 F=A_1 \oplus A_2 F=A1A2或者 F = A 1 ⊙ A 2 F=A_1 \odot A_2 F=A1A2

Shannon- and disjunctive-decompositions

在这里插入图片描述
大概像这样,
在这里插入图片描述
目的是通过 F 0 F_0 F0 F 1 F_1 F1的分解最终推断出 F F F的分解。
论文里说 F F F的分解和他的余因子之间的联系概念很简单。例如,如果一个函数 A A A属于 F 0 F_0 F0 F 1 F_1 F1的分解树,则该函数 A A A一定属于 F F F的分解树。

不过,在实践中需要考虑几个案例和子案例。如下,
在函数 F F F的分解中,最上面的变量 z z z只能以以下四种方式中的一种出现:
在这里插入图片描述
接下来详细分析这四种情况。

case1

在这种情况中, F ( z = 0 ) , F ( z = 1 ) F ( z = 0), F ( z = 1) F(z=0),F(z=1)其中一个必须是常数。假设 F 1 = 1 F_1=1 F1=1,则 F = F 0 + z F=F_0+z F=F0+z,因此 F F F的分解类型是 O R OR OR。且F的分解列表是 F 0 + z F_0+z F0+z
这个实际上是有点简化的,我们知道 F = z ‾ F 0 + z F 1 F=\overline{z}F_0+zF_1 F=zF0+zF1,那么当 F 1 = 1 F_1=1 F1=1的时候,这个式子就变为 F = z ‾ F 0 + z F=\overline{z}F_0+z F=zF0+z,根据布尔化简,得到 F 0 + z F_0+z F0+z

case2

在这种情况下,需要 F 0 = F 1 ‾ F_0=\overline{F_1} F0=F1。我们只要验证了 F 0 = F 1 ‾ F_0=\overline{F_1} F0=F1,那么足以推断出 F F F的分解为 F = z ⊕ F 0 F=z \oplus F_0 F=zF0
因为当 z = 0 z=0 z=0时, F = 0 ⊕ F 0 = F 0 F=0 \oplus F_0=F_0 F=0F0=F0;当 z = 1 z=1 z=1时, F = 1 ⊕ F 0 = F 0 ‾ = F 1 F=1 \oplus F_0=\overline{F_0}=F_1 F=1F0=F0=F1。能够符合等式 F = z ‾ F 0 + z F 1 F=\overline{z}F_0+zF_1 F=zF0+zF1

case3

在这里插入图片描述
情况3,指的是如果top variable z属于F的formal input的情况。

Case3.a

在这里插入图片描述
F 0 F_0 F0 F 1 F_1 F1能够被同一个函数L分解。且 F 0 F_0 F0 F 1 F_1 F1的分解列表(形式输入,formal input)是重合的,只有 A ( z = 0 ) A(z=0) A(z=0) A ( z = 1 ) A(z=1) A(z=1)不同。
假设, F 0 F_0 F0 F 1 F_1 F1的分解分别含有函数 A 0 A_0 A0 A 1 A_1 A1,则
只要有 A 0 = A 1 = 0 A_0=A_1=0 A0=A1=0或者 A 0 = A 1 = 1 A_0=A_1=1 A0=A1=1就有, F 0 ( A 0 = 0 ) = F 1 ( A 1 = 0 ) F_0(A_0=0)=F_1(A_1=0) F0(A0=0)=F1(A1=0) and F 0 ( A 0 = 1 ) = F 1 ( A 1 = 1 ) F_0(A_0=1)=F_1(A_1=1) F0(A0=1)=F1(A1=1)
在这里插入图片描述
这个例子的top variable选择的是变量a。
所以当 a = 0 a=0 a=0 F 0 = M a j o r i t y ( b , c + e , f g ) F_0=Majority(b,c+e,fg) F0=Majority(b,c+e,fg);当 a = 1 a=1 a=1 F 1 = M a j o r i t y ( d , c + e , f g ) F_1=Majority(d,c+e,fg) F1=Majority(d,c+e,fg)。这两个余因子的形式输入就分别是 b , c + e , f g b,c+e,fg b,c+e,fg d , c + e , f g d,c+e,fg d,c+e,fg。所以只要b和d相等就满足上面提到的推论。
这里就能看出,top variable a a a就属于 F F F的一个形式输入 a ‾ b + a d \overline{a}b+ad ab+ad,另外几个形式输入分别是 c + e c+e c+e f g fg fg。 根据上面的等式(5),令 A 0 = b , A 1 = d A_0=b,A_1=d A0=b,A1=d。因此,可以推断出F的分解为 a ‾ b + a d , c + e , f g \overline{a}b+ad,c+e,fg ab+ad,c+e,fg

在这里插入图片描述
如果函数 F = M a j o r i t y ( a ⊕ b , c + e , f g ) F=Majority(a\oplus b,c+e,fg) F=Majority(ab,c+e,fg),选择top variable为a。则当 a = 0 a=0 a=0 F 0 = M a j o r i t y ( b , c + e , f g ) F_0=Majority(b,c+e,fg) F0=Majority(b,c+e,fg);当 a = 1 a=1 a=1 F 1 = M a j o r i t y ( b ‾ , c + e , f g ) F_1=Majority(\overline{b},c+e,fg) F1=Majority(b,c+e,fg)。根据case2 A 1 = A 0 ‾ A_1=\overline{A_0} A1=A0,令 A 0 = b , A 1 = b ‾ A_0=b,A_1=\overline{b} A0=b,A1=b可以得到 A = z ‾ A 0 + z A 1 = z ⊕ A 0 A=\overline{z}A_0+zA_1=z\oplus A_0 A=zA0+zA1=zA0。因此F的分解列表包括 z ⊕ A 0 , c + e , f g z\oplus A_0,c+e,fg zA0,c+e,fg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值