本篇博客的主要内容是解释mux、decoder、selector的概念以及它们之间的关系,平时学习过程中的一些总结,方便自己翻阅,也希望对大家有用。

mux & decoder & selector

  • 1. decoder(解码器)
    • 1.1 什么是decoder ?
    • 1.2 decoder电路的实现方式
    • 1.3 decoder with enable
  • 2. Multiplexer(mux)
    • 2.1 什么是mux ?
    • 2.2 如何实现n-1 mux ?
    • 2.3. 如何实现bus mux ?
    • 2.4 对于使用mux tree的优化方法
    • 2.5 参考资料

1. decoder(解码器)

1.1 什么是decoder ?

decoder是一种具有n个输入2^n个输出的电路,在这里以2-4 decoder为例,电路图如下,具有两个输入,2^2个输出:

电路的真值表如下,通过真值表我们可以对于输出的每一项进行化简,化简后的结果分别入图中所示。

通过结果可以发现,对于n个输入的电路而言,decoder输出的每一项就是2^n个最小项之一。

1.2 decoder电路的实现方式

同样以2-4 decoder为例,通过输出没输出一个最小项的表达式构建出2-4 decoder电路的门级电路图如下所示,每一个输出分别对应每一个最小项。

同理,通过同样的方式可以构造出其他decoder电路的电路图,在这里以3-8线decoder为例,

1.3 decoder with enable

一个标准的decoder通常来说会有一个额外的输入,称作enable端口,在这里依然以2-4线decoder为例,电路图如下,


只有当enable端口为高电平时,电路才会输出1,否则全部输出0,实现的方式也很简单,将enable信号端口输入到每一个AND gate的输入即可。

2. Multiplexer(mux)

2.1 什么是mux ?

mux是一种具有多个输入,但是只具有一个输出的器件,在这里以2-1mux为例,电路结构以及电路表达式如下,S被称为选择端,D被称为数据端。

更加广泛通用的定义如下:

2.2 如何实现n-1 mux ?

  • 举例

以上是最简单的2-1 mux,如何和decoder selector联系起来不明显,接下来以4-1 mux 为例进行解释,

其中c0c1是一个2-bit的二进制数,根据不同的值决定输入i0~i3哪一个会被输出到ouput d端,共有2^2种可能,那么选择端可以通过一个2位输入的decoder来实现,此时的电路图会变成以下结构,

decoder只会有一个最小项生效,所以决定了d端同时i0~i3中只有一个结果会输出,除了decoder结构以外的电路被称作selector,这也是mux常用的实现方式,即使用decoder&selector结构。

  • 实现方式

通过以上的例子,可以知道了mux的实现方式之一是decoder&selector,这里会更加具体的介绍n-1 mux的两种实现方式,

  1. decoder based implementation,通过decoder和selector实现,电路结构如下,

  1. mux-tree based implementation

基于mux tree的电路结构如下,例如,对于一个8-1的mux,可以通过两个4-1的mux实现,而4-1mux可以通过两个2-1mux实现,以此类推,做出的结构会形成一个tree,称作mux tree。


哪种实现方式可以取得更好的效果取决于优化算法和engine。

2.3. 如何实现bus mux ?

前面已经讲述了如何去实现n-1mux,接下来会通过两张图片对比让我们一起更好的了解如何实现bus mux,话不多说见下图,

2.4 对于使用mux tree的优化方法

  1. area&delay oriented optimization method for mux based n-1mux
    Efficient Multiplexer Synthesis Techniques

  2. 优化FPGA中的MUX
    Multiplexer Restructuring for FPGA Implementation Cost Reduction

2.5 参考资料

  1. decoder & mux
  2. mux intro

mux decoder selector详解相关推荐

  1. Scrapy之Selector详解

    目录 一.简介 二.xpath 三.获取值 四.css选择 五.xpath扩展 一.简介 前面介绍了scrapy命令和Scrapy处理流程与重要组件 这里介绍一下Scrapy的Selector,Scr ...

  2. Java NIO Selector 详解

    Selector 允许一个单一的线程来操作多个 Channel,如果我们的应用程序中使用了多个 Channel,那么使用 Selector 很方便的实现这样的目的,但是因为在一个线程中使用了多个 Ch ...

  3. NIO详解(九):Selector详解

    1. 概述 Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件.这样,一个单独的线程可以管理多个channel,从而管理多个网络连 ...

  4. 高并发核心Selector详解

    Selector设计 笔者下载得是openjdk8的源码, 画出类图 比较清晰得看到,openjdk中Selector的实现是SelectorImpl,然后SelectorImpl又将职责委托给了具体 ...

  5. jms message组成和jsm selector详解(二)

    JMS Message组成 进入正题,Message主要由三部分组成,分别是Header,Properties和Body, 解释如下 Header: 消息头,所有类型的这部分格式都是一样的. Prop ...

  6. Java NIO SocketChannel+Buffer+Selector 详解(含多人聊天室实例)

    一.Java NIO 的核心组件 Java NIO的核心组件包括:Channel(通道),Buffer(缓冲区),Selector(选择器),其中Channel和Buffer比较好理解  简单来说 N ...

  7. Netty导学之NIO,Channel、Buffer、Selector详解

    介绍 NIO可翻译为Non-Blocking IO非阻塞IO,也可以称其为New IO 因为其是JDK1.4新出现的. java中的流要么是输入流,要么是输出流,不可能都是,它面向流编程.而在NIO中 ...

  8. Java NIO Selector详解(含多人聊天室实例)

    一.Java NIO 的核心组件 Java NIO的核心组件包括:Channel(通道),Buffer(缓冲区),Selector(选择器),其中Channel和Buffer比较好理解 简单来说 NI ...

  9. 5.Selector详解

  10. Java网络编程(6)NIO - Channel详解

    前言 NIO的三个核心组件:Buffer.Channel.Selector Java网络编程(4)NIO的理解与NIO的三个组件完成了大概的了解 Java网络编程(5)NIO - Buffer详解详细 ...

最新文章

  1. Linux下getopt_long函数的使用
  2. error: RPC failed; curl 18 transfer closed with outstanding read
  3. 阿里云低代码行业智能开放平台开拓行业AI应用新方法
  4. Exchange 2016部署实施案例篇-01.架构设计篇(上)
  5. idea提高调试超时_如何提高您的调试技能
  6. django 创建mysql失败_创建表时出现Django MySQL错误
  7. 随手记_英语_学术写作_研究概述/范围/方法/结果/结论介绍句型
  8. Android内存优化之——static使用篇
  9. 2、Kmeans算法处理出租车数据
  10. 通过 HttpClient 下载 文件
  11. LeNet论文阅读笔记
  12. 科技开发规划VBS屌丝暗色调
  13. 三维尺寸链计算和公差分析软件-DTAS-功能
  14. 宏转录组研究成果荣登10分JHM
  15. 英语新闻听力之专有名词
  16. html链接怎么恢复,Word文档中目录的超链接取消后怎么样恢复?
  17. prometheus服务配置Altermanager监控告警
  18. 云手机互联网点评系列-华为云手机云服务cloud+初评
  19. 激烈竞争环境下,数字资产交易所们该如何突破?
  20. Visformer: The Vision-friendly Transformer实现transformer和基于卷积的模型中的设计特性

热门文章

  1. idear怎么设置自动导包
  2. 印象笔记中可以使用html语言吗,印象笔记使用方法
  3. linux安装redis 完整步骤 主从结构 和 cluster 集群搭建
  4. 67 2020:我的总结和给圈友的话【2020-12-31 0003】
  5. FreeMind 思维导图的使用
  6. PiscisOS开发笔记_1_PiscisOS的诞生和系统特性简介
  7. 图像处理之计算二值连通区域的质心
  8. blender使用stereoscopy渲染输出VR图片和视频
  9. unity获取android内存大小,使用SystemInfo类获取Unity3D运行设备的各类信息(CPU类型,显卡类型等)...
  10. 基于FPGA的DDS混频及原理