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

    文章

    494

    浏览量

    42609
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59759
  • 数据选择器
    +关注

    关注

    2

    文章

    116

    浏览量

    16433
  • FPGA芯片
    +关注

    关注

    3

    文章

    246

    浏览量

    39795
  • Verilog设计
    +关注

    关注

    0

    文章

    20

    浏览量

    6517
收藏 人收藏

    评论

    相关推荐

    数字电路设计中的一款强大工具—Verilog编程语言介绍

    Verilog是一种硬件描述语言,用于描述数字电路的结构和行为。与传统的编程语言不同,Verilog更加注重电路的行为和时序特性。
    发表于 08-01 09:00 4489次阅读
    <b class='flag-5'>数字电路设计</b>中的一款强大工具—<b class='flag-5'>Verilog</b>编程语言介绍

    招聘:数字电路设计

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

    数字电路设计Verilog HDL

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

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

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

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

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

    高速数字电路设计

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

    数字电路设计

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

    数字电路中的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 52次下载
    FPGA CPLD<b class='flag-5'>数字电路设计</b>经验分享.

    Verilog数字系统设计——复杂数字电路设计2(FIFO控制设计)

    Verilog数字系统设计十二复杂数字电路设计2文章目录Verilog数字系统设计十二前言一、什么是FIFO控制
    发表于 12-05 15:51 9次下载
    <b class='flag-5'>Verilog</b><b class='flag-5'>数字</b>系统设计——复杂<b class='flag-5'>数字电路设计</b>2(FIFO控制<b class='flag-5'>器</b>设计)

    数字电路设计的基本流程

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

    数据选择器是组合逻辑电路

    数据选择器(Data Selector)是一种常见的组合逻辑电路,用于根据输入的选择信号,从多个输入信号中选择一个输出。在数字电路设计中,数
    的头像 发表于 08-01 14:28 507次阅读

    数据选择器是时序逻辑电路

    数据选择器(Data Selector)是一种数字电路,用于从多个输入信号中选择一个或多个信号,并将所选信号输出。它是一种组合逻辑电路,而非时序逻辑
    的头像 发表于 08-01 14:39 771次阅读

    如何使用 Verilog 进行数字电路设计

    使用Verilog进行数字电路设计是一个复杂但有序的过程,它涉及从概念设计到实现、验证和优化的多个阶段。以下是一个基本的步骤指南,帮助你理解如何使用Verilog来设计数字电路: 1.
    的头像 发表于 12-17 09:47 139次阅读