在数字 ic 设计中,有时候需要从一组输入数据中挑出某一个数据出来,比如,输入有 ** “** a、b、c、d” 四个数据,我们需要在特定的条件和特定的时刻输出特定的数据,如何输出特定的数据就是 ** “选择开关” ** ;又或者,可以理解成多个通道输入映射到 单个通道输出 ;于是, 数据选择器(data selector) 或 多路开关(multiplexer) 的数字逻辑电路就应运而生。
基于 2 选 1 的数据选择器的 verilog 代码和 rtl 电路
module multiplexer( // mux input wire a , // 输入数据信号 input wire b , // 输入数据信号 input wire sel , // 输入控制信号 output result // 输出数据信号_已选择 );assign result = sel ? a : b;endmodule
基于 4 选 1 的数据选择器的 verilog 代码和 rtl 电路
module multiplexer( // mux input wire a , // 输入数据信号 input wire b , // 输入数据信号 input wire c , // 输入数据信号 input wire d , // 输入数据信号 input wire [1:0] sel , // 输入控制信号 output reg result // 输出数据信号_已选择 ); always @(sel, a, b, c, d) begin case (sel) 2'b00: result <= a; 2'b01: result <= b; 2'b10: result <= c; 2'b11: result <= d; endcase endendmodule
代码详解
基于 2 选 1 的数据选择器的设计代码,非常简单明了,主要是输入数据 a 和 b,然后通过 sel 信号来决定输出是 a 还是 b。倘若 sel 拉高 (1) ,那么就输出 ** “a”** ,反之,倘若 sel 拉低 (0) ,那么就输出 ** “b”** 。
基于 4 选 1 的数据选择器的设计是基于 查找表 lut(look up table) (查找表在 fpga 中非常重要,软件思维可以理解为 “索引”,它是 fpga 芯片架构的重要组成部分,合理利用查找表,能够使你的 fpga 硬件工程达到一定程度的优化设计)的方式实现的一个电路。
数据选择器在实际生活中应用广泛。比如,在实际中对选手进行挑选,比如在歌手舞台对 “啊三” 编号为 “a”,对 “啊四” 编号为 “b”。然后 “sel” 这个选择信号就交给 “裁判”,倘若 “啊三” 唱歌功底胜出,那么就输出 “a”,反之那么就输出 “b”,非常的形象!!!
所以还是那句话,数字电路模块没有哪一个模块是平白无故添加出来的,每一个数字电路的小模块在实际生活中都有着非常重要的应用。所有的复杂的模块,都是由这些小模块构成的。 计算机再强大、ai 再智能,都离不开最基本的电路设计单元。
因此,学好数字电路的基础知识之后,才能翱翔于数字电路的世界中,如果基础知识都学不好的话,那么更复杂的就更不用说了。
仅需使用两个模拟器件的灵活的PLC/DCS模拟输出模块
“5G+天翼云+AI”的融合发展将为新基建夯实底座
2020年全国大学生电子设计竞赛:单相在线式不间断电源
交换机的几种端口具体是什么作用
C-V2X在未来车载通信的应用场景
数据选择器的数字逻辑电路设计
怎样升级ios15系统 ios15系统升级体验
LG将在国内召回9434台OLED智能电视,原因是电容器引发过热问题
2018年是数字货币爆发的一年,你抓好机会了没
Cassio混合电动飞机已完成首飞续航能力最高可达3个半小时
笔记本检测不到电池怎么办,笔记本电池如何维护
自主定位导航技术对机器人到底有多重要
了解地震信号检测网络的基础知识
空压机的作用及用途
区块链平台Waves将区块链技术推向“下一阶段的进化”
研华和鸿呈电子如何展开绿色低碳实践
蜂窝移动通信采用了哪些技术 蜂窝通信和非蜂窝通信的区别
1-3型压电复合材料的发展历程
一、AS5047P-ATSM 14位旋转位置传感器方案
IGBT及驱动电路的过压保护