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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

冬至子 ? 來源:新芯設計 ? 作者:新芯設計 ? 2023-10-09 16:21 ? 次閱讀

引言

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

一、2 選 1 數(shù)據(jù)選擇器的 Verilog 代碼實現(xiàn)和 RTL 電路實現(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ù) a 和 b,然后通過 sel 信號來選擇輸出是 a 還是 b。倘若 sel 拉高,即為 “1” 的時候,那么就輸出 “a”,反之,倘若 sel 拉低,即為 “0” 的時候,那么就輸出 “b”。

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

圖片

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

二、4 選 1 數(shù)據(jù)選擇器的 Verilog 代碼實現(xiàn)和 RTL 電路實現(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 硬件工程達到一定程度的優(yōu)化設計)的方式實現(xiàn)的一個電路,其 RTL 電路圖如下所示:

圖片

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

總結(jié)

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

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

    關(guān)注

    13

    文章

    494

    瀏覽量

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

    關(guān)注

    1

    文章

    385

    瀏覽量

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

    關(guān)注

    2

    文章

    116

    瀏覽量

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

    關(guān)注

    3

    文章

    246

    瀏覽量

    39800
  • Verilog設計
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    6524
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

    數(shù)字電路設計

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    如何使用 Verilog 進行數(shù)字電路設計

    使用Verilog進行數(shù)字電路設計是一個復雜但有序的過程,它涉及從概念設計到實現(xiàn)、驗證和優(yōu)化的多個階段。以下是一個基本的步驟指南,幫助你理解如何使用Verilog來設計數(shù)字電路: 1.
    的頭像 發(fā)表于 12-17 09:47 ?225次閱讀