Logic network
是结构模型 model of structure
从RTL描述中提取的最初的多级结构开始,一步一步改善它,并保留行为。
一共有五个操作:
Elimination
从网络中移除一个节点
Decomposition
将一个节点分为两个节点
Substitution
通过使用额外的输入简化一个局部方程,这个输入不在之前网络中。
Extraction
发现两个表达式的一个公共子表达式,并将提取出来的子表达式作为一个新方程
Simplification
简化局部方程
简化后结果
Algebraic division 代数除法
例如:
Algebraic division for substitution
R = A − Q · B
= {ka, kb, e} − {k} · {a, b}
= {ka, kb, e} − {ka, kb}
= {e}
Q = {k} R = {e}
Algebraic division for extraction
发现公共子表达式。
kernel:一个类表示所有除数的一个子集
cube-free:多立方体的代数表达式,其中没有任何立方体和所有其他的立方体共存
co-Kernel:假如f/g,g就是co-kernel,结果就是f的kernel
为了避免重复,优化后算法:
Algebraic division for decomposition
decompose
例一:
先找到方程 f : ace+bce+de+g
求出方程的kernel set:K = {(a + b),(ac + bc + d),(ace + bce + de + g)}
找到除数和被除数 f/fw: A = {ace, bce, de, g} B = {ac, bc, d}
结果为:
例二:
先找到方程的kernel set:
再找到除数和被除数:A : {ac, bc, d} and B : {a, b}.
最后结果为:
Boolean functions
是行为模型 model of behaviour
CDC 和 ODC analysis
包括Externel don’t care(由外界环境产生)和Internel don’t care(由电路本身产生)
CDC (Controllability don’t care)
SDC (satisfiability don’t care)
SDCx = fx ⊕ x
第一步:算上外部环境的CDCin为{x’1x‘4}
第二步:drop x2和x3
第三步:找新的输入节点 {x1, x4, a},上一步继承的CDCout = x1’x4‘,结合新节点{b, a, x4}得到新的
C = {x1, x4, a, b}
第四步:继续Drop x1
更新cut列表:C = {x1, x4, a, b} − {x1} = {x4, a, b}
第五步:下节点 {b, c},与cut列表合并{x4, a, b, c}.
最后Cut掉x4和a
继续更新cut列表:C = {x4, a, b, c} − {x4, a} = {b, c}
第六步:合并新节点 {d, e} 到新的cut列表C = {b, c, d}
d因为是void,所以不用consensus。
继续寻找新节点并合并找到新的cut列表:C = {b, c, d, e}
这时可以cut掉b和c:
最后找到整个逻辑电路的CDCout。
ODC (Observability don’t care)
举例:
在这里ODCe=ODCout
先计算节点b和c的ODC
最后计算x1的ODC
其他输入节点也可以进行同样的操作。
Boolean methods for :
simplification
简化:一个用尺寸更小的等效局部函数表示的方法
substitution
举例:fq = a + cd fh = a + bcd + e
计算SDC
replacement
计算两个方程之间的不同
举例:
计算difference:δ = f ⊕ g
计算don’t care:DCf = CDCf + ODCf 前提是δ ⊆ DCf
所以,当f和g的不同δ包含在DC set中,可以替代。