当前位置: 首页 > news >正文

逻辑优化基础-bi-decomposition

简介

bi-decomposition是逻辑综合中用于简化布尔函数的一种技术。其思想是将函数分成两个较小的函数,每个函数仅取决于所选变量的一个值。这些较小的函数可以使用简单的逻辑门(如AND、OR和NOT门)来实现,然后组合以获得原始函数的输出。这可能会导致原始布尔函数的更简单和更有效的实现。

bi-decomposition的过程涉及选择一个变量进行分割,根据该变量的值创建两个函数,然后使用以下恒等式将原始函数表示为这些较小函数的组合:

F = F1B + F0B'

其中F是原始函数,F1是选定变量为1时的函数,F0是选定变量为0时的函数,B是选定的变量。这个恒等式是代数的分配律的布尔版本,它允许我们将原始函数F表示为两个较小函数的和,每个函数仅取决于所选变量的一个值。

一旦我们使用较小函数表达了原始函数,我们就可以使用简单的逻辑门来实现这些较小函数,然后将它们组合以获得原始函数的输出。这可能会导致原始布尔函数的更简单和更有效的实现,因为较小的函数可能使用更少的逻辑门更容易实现。

bi-decomposition是逻辑综合中简化和优化布尔函数的一种强大技术。当原始函数复杂且难以使用直接方法实现时,一般可以尝试使用bi-decomposition。

示例

假设考虑这样一个布尔函数:

F(A, B, C, D) = A'B + AB'C + BCD

应用bi-decomposition到该函数的第一步是选择一个变量进行分割。让我们选择变量B进行分割,这意味着我们基于B的值创建两个函数:一个函数其中B为1(我们称其为F1),另一个函数其中B为0(我们称其为F0)。这些函数可以写成:

F1(B=1) = A'C + CD
F0(B=0) = A'

接下来,我们需要找到一种用F1和F0的方式来表达原始函数F的方法。我们可以使用以下恒等式:

F = F1B + F0B'

在这种情况下,我们可以写成:

F = (A'C + CD)B + A'B'

这就是相对于变量B的F的 bi-decomposition。同理我们也可以得到基于变量 C的 bi-decomposition 表达式:

F(A, B, C, D) = A'B + AB'C + BCDF1(C=1) = A'B + AB' + BD
F0(C=0) = A'BF = F1C + F0C' = (A'B + AB' + BD)C + A'BC'

实际上,如果我们再调用一个rewrite算法,还可以变换为以下形式:

F = F1C + F0C' = (A^B + BD)C + A'BC'

以上是对于 bi-decomposition的基础介绍,欢迎指正错误。

http://www.lryc.cn/news/33327.html

相关文章:

  • Modbus转profinet网关连接1200PLC在博图组态与驱动器通讯程序案例
  • Android ART虚拟机 启动和初始化
  • 宇视科技一二三面
  • 优思学院|盘点,精益生产25个工具!【必需收藏】
  • Linux中将多块新硬盘合并成一个,挂载到/mysqldata目录下
  • Git的SSH密钥配置
  • C++回顾(九)——多继承
  • 交流约瑟夫森效应
  • 大数据项目实战之数据仓库:用户行为采集平台——第3章 用户行为日志
  • centos6下为Rstudio安装多版本R
  • TCL 拥抱云原生,实现 IT 成本治理优化
  • 什么是API接口
  • 基于单片机的波形发生器设计
  • phpmyadmin SQL注入 (CVE-2020-5504)
  • 华为机试题:HJ107 求解立方根(python)
  • 论文公式符号规范
  • 哈工大面向服务的软件系统 期末开卷提纲
  • Adding Conditional Control to Text-to-Image Diffusion Models
  • C++从头再来:知识点速通
  • LearnDash Groups学习群组:您需要了解的一切
  • 软件开发过程中遇到一个傻嘚业主能让你抓狂
  • 信创系统借力小程序应用生态的可能性
  • ISFP型人格的优势和劣势分析(mbti性格测试)
  • 电影《断网》观后感
  • 查看python第三方库的依赖pkgs
  • CF756div3 vp
  • Linux命令·less
  • 修改redis改key值不改过期时间
  • Spark的DataFrame使用
  • 【Flutter】入门Dart语言:操作符的基本用法