0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Verilog的经典数字电路设计(3)选择器

冬至子 来源:新芯设计 作者:新芯设计 2023-10-09 16:21 次阅读

引言

数字信号的传输过程中,有时需要从一组输入数据中选出某一个来,比如输入有 “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;
      endcase

endmodule

这是一个 4 选 1 数据选择器,基于查找表 LUT(Look Up Table)(查找表在 FPGA 中非常重要,软件思维可以理解为 “索引”,它是 FPGA 芯片架构的重要组成部分,合理利用查找表,能够使你的 FPGA 硬件工程达到一定程度的优化设计)的方式实现的一个电路,其 RTL 电路图如下所示:

图片

4 选 1 数据选择器的 RTL 电路图

总结

数据选择器在实际生活中应用广泛。比如,在实际中对选手进行挑选,比如在歌手舞台对 “小洪” 编号为 “a”,对 “小华” 编号为 “b”,然后 “sel” 选择信号就交给 “裁判”,倘若 “小洪” 唱歌功底胜出,那么输出 “a”,反之输出 “b”,是不是很形象呢?!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 逻辑电路
    +关注

    关注

    13

    文章

    469

    浏览量

    42213
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59068
  • 数据选择器
    +关注

    关注

    2

    文章

    114

    浏览量

    16332
  • FPGA芯片
    +关注

    关注

    3

    文章

    241

    浏览量

    39554
  • Verilog设计
    +关注

    关注

    0

    文章

    20

    浏览量

    6474
收藏 人收藏

    评论

    相关推荐

    华为《高速数字电路设计教材》

    华为《高速数字电路设计教材》这本书是专门为电路设计工程师写的。主要描述模拟电路原理在高速数字电路设计中的分析应用
    发表于 09-01 23:09

    华为《高速数字电路设计教材》

    华为《高速数字电路设计教材》这本书是专门为电路设计工程师写的。主要描述模拟电路原理在高速数字电路设计中的分析应用
    发表于 09-01 23:20

    招聘:数字电路设计

    数字集成电路设计ASIC设计/验证经验;2.熟悉逻辑/时序电路的原理和设计;3.精通verilog语言;熟练使用Cadence,Modelsim,NC-
    发表于 02-27 10:52

    数字电路设计Verilog HDL

    数字电路设计Verilog HDL
    发表于 07-16 16:21

    数字电路-数字时钟电路设计

    数字电路-数字时钟电路设计 希望大家喜欢。
    发表于 12-06 09:46

    数字电路设计的基本方法有哪些

    化简→画逻辑电路图。时序电路设计:列原始状态转移图和表→状态优化→状态分配→触发选型→求解方程式→画逻辑电路图。在实际应用中,数字电路设计
    发表于 02-27 11:55

    数字电路经典

    数字电路经典教学
    发表于 06-15 21:55

    基于FPGA的多路选择器设计(附代码)

    设计源码,读者可以自行讨论设计。 第二种方法,根据verilog的设计规则,可以直接描述逻辑功能,而不用描述门电路。这种设计规则有利于将设计做的比较大。 位宽为8的四选一多路选择器命名为“mux4_1
    发表于 03-01 17:10

    基于LabVIEW的数字电路设计和仿真

    基于LabVIEW的数字电路设计和仿真 数字电路设计和仿真是电子工程领域的基本技术。介绍了基于LabV IEW的数字电路设计和仿真的原理和方法,比较了其与专业EDA软
    发表于 03-30 16:09 123次下载

    高速数字电路设计

    高速数字电路设计 关于高速数字电路的电气特性,设计重点大略可分为三项 : Ø 正时 (Timing) :由于数字电路大多依据时脉信号来做信号间的同
    发表于 10-16 17:22 2749次阅读

    数字电路设计

    数字电路设计 关于高速数字电路的电气特性,设计重点大略可分为三项: 正时(Timing) :由于数字电路
    发表于 08-26 19:08 2675次阅读

    数字电路中的FPGA和verilog教程

    数字电路中的FPGA和verilog教程,好东西,喜欢的朋友可以下载来学习。
    发表于 01-18 17:44 42次下载

    数字电路设计方案中DSP与FPGA的比较与选择

    数字电路设计方案中DSP与FPGA的比较与选择
    发表于 01-18 20:39 15次下载

    FPGA CPLD数字电路设计经验分享.

    FPGA CPLD数字电路设计经验分享.(电源技术发展怎么样)-FPGA CPLD数字电路设计经验分享                    
    发表于 09-18 10:58 51次下载
    FPGA CPLD<b class='flag-5'>数字电路设计</b>经验分享.

    数字电路设计的基本流程

    数字电路设计数字电路最为关键及重要的一步,今天我们将从各个流程为大家介绍完整的数字电路设计!
    的头像 发表于 07-10 17:14 6393次阅读