0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Verilog的經(jīng)典數(shù)字電路設(shè)計(jì)(3)選擇器

冬至子 ? 來源:新芯設(shè)計(jì) ? 作者:新芯設(shè)計(jì) ? 2023-10-09 16:21 ? 次閱讀

引言

數(shù)字信號的傳輸過程中,有時需要從一組輸入數(shù)據(jù)中選出某一個來,比如輸入有 “A、B、C、D” 四個數(shù)據(jù),那么我們想要哪個字母輸出,就可以設(shè)置哪個字母輸出,這里的設(shè)置,即所謂的 “選擇開關(guān)” ;又或者,你可以理解為多個通道輸入到單個通道的輸出;于是,數(shù)據(jù)選擇器(Data Selector)或多路開關(guān)(Multiplexer)的邏輯電路便應(yīng)運(yùn)而生。

一、2 選 1 數(shù)據(jù)選擇器的 Verilog 代碼實(shí)現(xiàn)和 RTL 電路實(shí)現(xiàn)

module Multiplexer(
    input wire a, // 輸入數(shù)據(jù)信號
    input wire b, // 輸入數(shù)據(jù)信號
    input wire sel, // 輸入控制信號
    output result // 輸出數(shù)據(jù)信號_已選擇
    );

 assign result = sel ? a : b;

endmodule

這是 2 選 1 數(shù)據(jù)選擇器的設(shè)計(jì)代碼,非常簡單明了,主要是輸入數(shù)據(jù) a 和 b,然后通過 sel 信號來選擇輸出是 a 還是 b。倘若 sel 拉高,即為 “1” 的時候,那么就輸出 “a”,反之,倘若 sel 拉低,即為 “0” 的時候,那么就輸出 “b”。

這是一個數(shù)據(jù)選擇器設(shè)計(jì),該設(shè)計(jì)是一個直接用組合邏輯語句或者也可以說是連續(xù)賦值語句 assign 的方式描述的電路,其 RTL 電路圖如下所示:

圖片

2 選 1 數(shù)據(jù)選擇器的 RTL 電路圖

二、4 選 1 數(shù)據(jù)選擇器的 Verilog 代碼實(shí)現(xiàn)和 RTL 電路實(shí)現(xiàn)

module Multiplexer(
    input wire a, // 輸入數(shù)據(jù)信號
    input wire b, // 輸入數(shù)據(jù)信號
    input wire c, // 輸入數(shù)據(jù)信號
    input wire d, // 輸入數(shù)據(jù)信號
    input wire [1:0] sel, // 輸入控制信號
    output reg result // 輸出數(shù)據(jù)信號_已選擇
    );

   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 數(shù)據(jù)選擇器,基于查找表 LUT(Look Up Table)(查找表在 FPGA 中非常重要,軟件思維可以理解為 “索引”,它是 FPGA 芯片架構(gòu)的重要組成部分,合理利用查找表,能夠使你的 FPGA 硬件工程達(dá)到一定程度的優(yōu)化設(shè)計(jì))的方式實(shí)現(xiàn)的一個電路,其 RTL 電路圖如下所示:

圖片

4 選 1 數(shù)據(jù)選擇器的 RTL 電路圖

總結(jié)

數(shù)據(jù)選擇器在實(shí)際生活中應(yīng)用廣泛。比如,在實(shí)際中對選手進(jìn)行挑選,比如在歌手舞臺對 “小洪” 編號為 “a”,對 “小華” 編號為 “b”,然后 “sel” 選擇信號就交給 “裁判”,倘若 “小洪” 唱歌功底勝出,那么輸出 “a”,反之輸出 “b”,是不是很形象呢?!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 邏輯電路
    +關(guān)注

    關(guān)注

    13

    文章

    490

    瀏覽量

    42452
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59517
  • 數(shù)據(jù)選擇器

    關(guān)注

    2

    文章

    116

    瀏覽量

    16404
  • FPGA芯片
    +關(guān)注

    關(guān)注

    3

    文章

    246

    瀏覽量

    39668
  • Verilog設(shè)計(jì)
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    6501
收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)字電路設(shè)計(jì)中的一款強(qiáng)大工具—Verilog編程語言介紹

    Verilog是一種硬件描述語言,用于描述數(shù)字電路的結(jié)構(gòu)和行為。與傳統(tǒng)的編程語言不同,Verilog更加注重電路的行為和時序特性。
    發(fā)表于 08-01 09:00 ?3756次閱讀
    <b class='flag-5'>數(shù)字電路設(shè)計(jì)</b>中的一款強(qiáng)大工具—<b class='flag-5'>Verilog</b>編程語言介紹

    招聘:數(shù)字電路設(shè)計(jì)

    數(shù)字集成電路設(shè)計(jì)ASIC設(shè)計(jì)/驗(yàn)證經(jīng)驗(yàn);2.熟悉邏輯/時序電路的原理和設(shè)計(jì);3.精通verilog語言;熟練使用Cadence,Modelsim,NC-
    發(fā)表于 02-27 10:52

    數(shù)字電路設(shè)計(jì)Verilog HDL

    數(shù)字電路設(shè)計(jì)Verilog HDL
    發(fā)表于 07-16 16:21

    數(shù)字電路設(shè)計(jì)的基本方法有哪些

    化簡→畫邏輯電路圖。時序電路設(shè)計(jì):列原始狀態(tài)轉(zhuǎn)移圖和表→狀態(tài)優(yōu)化→狀態(tài)分配→觸發(fā)選型→求解方程式→畫邏輯電路圖。在實(shí)際應(yīng)用中,數(shù)字電路設(shè)計(jì)
    發(fā)表于 02-27 11:55

    基于LabVIEW的數(shù)字電路設(shè)計(jì)和仿真

    基于LabVIEW的數(shù)字電路設(shè)計(jì)和仿真 數(shù)字電路設(shè)計(jì)和仿真是電子工程領(lǐng)域的基本技術(shù)。介紹了基于LabV IEW的數(shù)字電路設(shè)計(jì)和仿真的原理和方法,比較了其與專業(yè)EDA軟
    發(fā)表于 03-30 16:09 ?124次下載

    高速數(shù)字電路設(shè)計(jì)

    高速數(shù)字電路設(shè)計(jì) 關(guān)于高速數(shù)字電路的電氣特性,設(shè)計(jì)重點(diǎn)大略可分為三項(xiàng) : Ø 正時 (Timing) :由于數(shù)字電路大多依據(jù)時脈信號來做信號間的同
    發(fā)表于 10-16 17:22 ?2991次閱讀

    數(shù)字電路設(shè)計(jì)

    數(shù)字電路設(shè)計(jì) 關(guān)于高速數(shù)字電路的電氣特性,設(shè)計(jì)重點(diǎn)大略可分為三項(xiàng): 正時(Timing) :由于數(shù)字電路
    發(fā)表于 08-26 19:08 ?2769次閱讀

    數(shù)字電路中的FPGA和verilog教程

    數(shù)字電路中的FPGA和verilog教程,好東西,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-18 17:44 ?42次下載

    數(shù)字電路設(shè)計(jì)方案中DSP與FPGA的比較與選擇

    數(shù)字電路設(shè)計(jì)方案中DSP與FPGA的比較與選擇
    發(fā)表于 01-18 20:39 ?15次下載

    FPGA CPLD數(shù)字電路設(shè)計(jì)經(jīng)驗(yàn)分享.

    FPGA CPLD數(shù)字電路設(shè)計(jì)經(jīng)驗(yàn)分享.(電源技術(shù)發(fā)展怎么樣)-FPGA CPLD數(shù)字電路設(shè)計(jì)經(jīng)驗(yàn)分享? ? ? ? ? ? ? ? ? ??
    發(fā)表于 09-18 10:58 ?52次下載
    FPGA CPLD<b class='flag-5'>數(shù)字電路設(shè)計(jì)</b>經(jīng)驗(yàn)分享.

    Verilog數(shù)字系統(tǒng)設(shè)計(jì)——復(fù)雜數(shù)字電路設(shè)計(jì)2(FIFO控制設(shè)計(jì))

    Verilog數(shù)字系統(tǒng)設(shè)計(jì)十二復(fù)雜數(shù)字電路設(shè)計(jì)2文章目錄Verilog數(shù)字系統(tǒng)設(shè)計(jì)十二前言一、什么是FIFO控制
    發(fā)表于 12-05 15:51 ?9次下載
    <b class='flag-5'>Verilog</b><b class='flag-5'>數(shù)字</b>系統(tǒng)設(shè)計(jì)——復(fù)雜<b class='flag-5'>數(shù)字電路設(shè)計(jì)</b>2(FIFO控制<b class='flag-5'>器</b>設(shè)計(jì))

    數(shù)字電路設(shè)計(jì)的基本流程

    數(shù)字電路設(shè)計(jì)數(shù)字電路最為關(guān)鍵及重要的一步,今天我們將從各個流程為大家介紹完整的數(shù)字電路設(shè)計(jì)!
    的頭像 發(fā)表于 07-10 17:14 ?7313次閱讀

    高速數(shù)字電路設(shè)計(jì).zip

    高速數(shù)字電路設(shè)計(jì)
    發(fā)表于 12-30 09:22 ?19次下載

    數(shù)據(jù)選擇器是組合邏輯電路

    數(shù)據(jù)選擇器(Data Selector)是一種常見的組合邏輯電路,用于根據(jù)輸入的選擇信號,從多個輸入信號中選擇一個輸出。在數(shù)字電路設(shè)計(jì)中,數(shù)
    的頭像 發(fā)表于 08-01 14:28 ?201次閱讀

    數(shù)據(jù)選擇器是時序邏輯電路

    數(shù)據(jù)選擇器(Data Selector)是一種數(shù)字電路,用于從多個輸入信號中選擇一個或多個信號,并將所選信號輸出。它是一種組合邏輯電路,而非時序邏輯
    的頭像 發(fā)表于 08-01 14:39 ?236次閱讀