| 用二叉判决图BDD来表示布尔函数是Akers[6]在1978年提出的。1986年,Randal E. Bryant对BDD进行改进[7],对BDD中的变量顺序作了一些限制,从而使BDD成为一种正则的布尔函数表示方法。 BDD是基于先农多项式(Shannon expansion)展开得到的,对f(x1,…, xn)来说,先农多项式为: BDD用图来表示,是一个带根的有向无环图。图6.2给出函数f(x)=x1x3+x2x3 的真值表和BDD表示。从图中可看出,在未经化简的情况下,BDD为完全二叉树。每一个非叶子节点v被标上变量var(v),并有弧指向两个孩子:lo(v)(用虚线表示)代表该变量取值为0,hi(v)(用实线表示)代表该变量取值为1。叶子节点被标为0或1。对于给定的一组变量值,从根节点到叶子节点的一条路径是确定的,函数的值也就是该叶子节点的值。由于给定了变量序和分解顺序,该BDD中叶子节点的值(从左到右)与真值表中的值(从上到下)一一对应。
BDD是布尔函数的一种表示方法,从图中我们可以看到,它的每条指向叶子节点的路径都是一个真值表项。因此,BDD只是确定了电路的功能,而未确定电路的结构。
|