引言在数字信号的传输过程中,有时需要从一组输入数据中选出某一个来,比如输入有 “a、b、c、d” 四个数据,那么我们想要哪个字母输出,就可以设置哪个字母输出,这里的设置,即所谓的 “选择开关” ;又或者,你可以理解为多个通道输入到单个通道的输出;于是,数据选择器(data selector)或多路开关(multiplexer)的逻辑电路便应运而生。
一、2 选 1 数据选择器的 verilog 代码实现和 rtl 电路实现module multiplexer( input wire a, // 输入数据信号 input wire b, // 输入数据信号 input wire sel, // 输入控制信号 output result // 输出数据信号_已选择 ); assign result = sel ? a : b;endmodule这是 2 选 1 数据选择器的设计代码,非常简单明了,主要是输入数据 a 和 b,然后通过 sel 信号来选择输出是 a 还是 b。倘若 sel 拉高,即为 “1” 的时候,那么就输出 “a”,反之,倘若 sel 拉低,即为 “0” 的时候,那么就输出 “b”。
这是一个数据选择器设计,该设计是一个直接用组合逻辑语句或者也可以说是连续赋值语句 assign 的方式描述的电路,其 rtl 电路图如下所示:
2 选 1 数据选择器的 rtl 电路图
二、4 选 1 数据选择器的 verilog 代码实现和 rtl 电路实现module multiplexer( 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) case (sel) 2'b00: result <= a; 2'b01: result <= b; 2'b10: result <= c; 2'b11: result <= d; endcaseendmodule这是一个 4 选 1 数据选择器,基于查找表 lut(look up table)(查找表在 fpga 中非常重要,软件思维可以理解为 “索引”,它是 fpga 芯片架构的重要组成部分,合理利用查找表,能够使你的 fpga 硬件工程达到一定程度的优化设计)的方式实现的一个电路,其 rtl 电路图如下所示:
4 选 1 数据选择器的 rtl 电路图
总结数据选择器在实际生活中应用广泛。比如,在实际中对选手进行挑选,比如在歌手舞台对 “小洪” 编号为 “a”,对 “小华” 编号为 “b”,然后 “sel” 选择信号就交给 “裁判”,倘若 “小洪” 唱歌功底胜出,那么输出 “a”,反之输出 “b”,是不是很形象呢?!
高速电路pcb怎样的参考平面才是理想的
苹果向韩国OLED厂商抛出大单:寻找2亿OLED屏幕
iPhone全用OLED屏,日本LCD厂商受挫
农业成为人工智能应用新增长领域 助力加快智慧农业建设的步伐
共襄行业盛举,电感变压器行业评选邀您参与
基于Verilog的经典数字电路设计(3)选择器
分享上百各种不同电路图
Imagination有史以来最快的GPU IP发布,能挽回市场份额的损失吗
RFID在煤矿井下安全管理中的应用
流速仪传感器的安装以及布线
在线多参数分析仪的操作说明
可编程硬件发展路线分析:eFPGA还是FPGA SoC
搭载 树莓派5 Raspberry Pi 5 全新的HMI发布!
带独立GPS单元和GeoSetter的地理标记
星河亮点再次登上了全球5G终端一致性测试认证的最高峰
成都将建全国首条8.6代AMOLED显示器件生产线,总投资630亿元
为什么很多人更喜欢买iPhone11?
使用BLE 4.2的系统设计使设备更加保护隐私和节能
新型系统可以自动“学习”如何在数千台服务器上调度数据处理操作
iPhone手机的售价仍然在扶摇直上 但利润率却大不如从前了