Logic Synthesis And Verification Algorithms Gary D. Hachtel & Fabio Somenzi 第十一章

本文深入探讨了布尔网络的多层次最小化问题,重点关注了布尔网络的成本、Don't Cares在多层次网络中的作用,特别是Satisfiability Don't Cares和Observability Don't Cares。通过计算和理解这些Don't Cares,可以有效优化布尔网络。布尔网络的最小化涉及到对输入和输出的处理,以及如何利用Don't Cares进行网络简化。此外,还讨论了Prime和Irredundant网络的概念,这些在网络等价性和优化中起关键作用。
摘要由CSDN通过智能技术生成

Chapter 11 Multi-Level Minimization

11.2 Boolean Networks

Boolean Networks正式的定义

看上去很复杂,但实际上boolean network通常是一个有向无环图,每个节点i对应一个bool函数f_i和一个logic variable y_i。这样所有节点就形成了向量fy。某些节点是bool网络的primary inputs,用vector I表示,实际上是一些logic variables的下标集合。某些节点是bool网络的primary outputs,用vector O表示,同样是一些logic variables的下标集合。d^X是关联在输出节点上的logic functions,表示don't care项。

接下来是一堆bool网络相关的定义,很多,了解一下就行。后面应该结合具体例子理解这些概念。有一点需要注意,通常情况下是基于节点定义logic variables y = (y_1, y_2, ..., y_n),节点i对应了y_i。但是有的情况下会基于边定义logic variable,比如节点i和j之间有边且j是i的successor,相应的logic variable为y_{ij}。假设节点i有k个fanouts y_1,y_2,...,y_k,如果在理想的bool网络,应该有y_i = y_{i1} = y_{i2} = ... = y_{ik}。但是在实际电路中,线路可能会有故障,可能造成上述各个varialbe的值不相等。因此有的时候会根据边而非节点定义logic variables。

接下来说了一大堆don't care相关的概念。其实只要记住一点就行,一个非限定的bool 函数可以分为三个部分,分别用三个表达式表示,一个是onset,对应真值表中那些真值为1的行,一个是offset,对应真值表中那些真值为0的行,一个是dont care set,对应真值表中那些真值为“-”的行。

 这个函数看上去很吓人,但是描述的事情很简单。对于一个节点j,如果是primary inputs,则该函数为y_j。其实primary inputs也是有相应的f_j的,不过是外部定义的,在本网络里通常用y_j而不是f_j表示输入节点。当节点j的fanins都是输入节点的时候,函数的值为f_j。如果节点j为其他情形,则对节点j的fanin开始递归调用函数\gamma。这个函数本质上就是把输入值从primary inputs逐层传递到后继节点。换句话说,节点j的bool函数f_j的support是节点j的fanins,不是bool网络的primiary inputs。函数\gamma就是通过一系列的自变量替换,将f_j的support调整成网络的primary inputs。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值