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

FPGA前瞻篇-组合逻辑电路设计-多路复用器

多路选择器(MUX)简介

基本概念

多路选择器(MUX,Multiplexer)是一种多输入、单输出的组合逻辑电路。

它通过选择控制信号,在多个输入信号中选择一个连接到输出端。

可以理解为一个多路数字开关

🛠 功能描述

一个 N 路输入的 MUX,有 N 个输入通道,1 个公共输出端。

控制信号(通常是 log₂(N) 位)决定了当前选通的是哪一路输入。

多路选择器可以实现信号切换、数据路由等功能,是数字系统中非常常用的模块。

在 FPGA 中的应用

多路选择器是 FPGA 内部的基础资源单元之一,广泛用于内部信号的选择与切换。

通过级联多个小型 MUX,可以轻松构建更大规模的多路选择器。

本节的实验任务是使用开发板来设计一个简单的 2 1 多路选择器,主要功能是通过选通控制信号 sel 确定输入信号 in1 in2 哪一个信号作为输出。当选通控制信号 sel 1 时,输出为 A 端信号;当选通控制信号 sel 0 时,信号输出为 B 端信号。

有两个输入信号:in1in2

有一个控制信号:sel(select,选择的意思)

有一个输出信号:out

“当sel=1时,输出in1;当sel=0时,输出in2。”

assign out = sel ? in1 : in2;
always @(*) beginif (sel)out = in1;elseout = in2;
end

做一个32选1多路选择器

32个输出口,默认都是断开的,只有一个口连接到 VCC。

5个控制引脚,作为通道选择,因为 25=322^5 = 3225=32,正好能选 32 个通道。

再加 1个输入引脚(比如直接接 VCC 电源)。

控制思路是:

当选择信号是 00001(也就是十进制的 1)时,第1口输出VCC,其余口输出0。

当选择信号是 00010(也就是十进制的2)时,第2口输出VCC,其余为0。

以此类推。

名称数量说明
选择输入(select)5控制要打通哪一个口
电源输入(VCC)1提供需要送出的信号
输出口(out0~out31)32连接到外部使用,每次只有一个输出有效
module mux32_out(input wire [4:0] sel,    // 5位选择信号input wire vcc_in,       // VCC输入output wire [31:0] out   // 32路输出
);// 全部输出初始化为0,只有选中的那一路为vcc_in
assign out = (vcc_in) ? (32'b1 << sel) : 32'b0;endmodule
module mux32_out_auto(input wire clk,        // 系统时钟(比如50MHz)input wire rst_n,      // 系统复位,低有效input wire vcc_in,     // VCC输入(固定高电平)output wire [31:0] out // 32路输出
);reg [4:0] sel;             // 选择信号// --- 选择器逻辑 ---
assign out = (vcc_in) ? (32'b1 << sel) : 32'b0;// --- 选择器自动增加逻辑 ---
always @(posedge clk or negedge rst_n) beginif (!rst_n)sel <= 5'd0;             // 复位时回到0elsesel <= (sel == 5'd31) ? 5'd0 : sel + 1'b1;  // 达到31时回0,否则加1
endendmodule
http://www.xdnf.cn/news/158365.html

相关文章:

  • 比象AI创作系统,多模态大模型:问答分析+AI绘画+管理后台系统
  • 一、UI自动化测试01--认识和元素定位方法
  • NHANES指标推荐:DI-GM
  • 用python借用飞书机器人群发布定期内容
  • ShenNiusModularity项目源码学习(23:ShenNius.Admin.Mvc项目分析-8)
  • 第十六届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学 A 组
  • 【数据结构刷题】顺序表与ArrayList
  • Linux下编译并打包MNN项目迁移至其他设备
  • Qt动态库信号崩溃问题解决方案
  • Leetcode刷题 由浅入深之哈希法——202. 快乐数
  • 机器学习(10)——神经网络
  • 《Python Web部署应知应会》Flask网站隐藏或改变浏览器URL:从Nginx反向代理到URL重写技术
  • 【人工智能之大模型】详述大模型中​AWQ(Activation-aware Weight Quantization)量化的关键步骤?
  • Three.js + React 实战系列-3D 个人主页:构建 Hero 场景组件(项目核心)✨
  • Github 2025-04-26 Rust开源项目日报Top10
  • 学习笔记——《Java面向对象程序设计》-内部类、匿名类、异常类
  • 解决Ubuntu下使用CLion构建Qt项目时找不到已安装的模块的问题
  • AI编程案例拆解|基于机器学习XX评分系统-后端篇
  • 【数据可视化-35】全球太空探索数据集(2000-2025)可视化分析
  • 通过门店销售明细表用PySpark得到每月每个门店的销冠和按月的同比环比数据
  • 数据预处理之特征选择 (Feature Selection)
  • java函数式接口与方法引用
  • Nacos简介—3.Nacos的配置简介
  • SQL盲注问题深度解析与防范策略
  • 逆向|dy|a_bogus|1.0.1.19-fix.01
  • IDE使用技巧与插件推荐
  • LLM(大语言模型)技术的最新进展可总结
  • ShaderToy学习笔记 02.圆
  • HTTP, AMQP, MQTT之间的区别和联系是什么?华为云如何适配?
  • iperf网络性能测试