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

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

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

多路選擇器設(shè)計

冬至子 ? 來源:小小研究生 ? 作者:xxyjs2020 ? 2023-05-22 15:10 ? 次閱讀

組合邏輯電路的輸出信號只與當(dāng)前時刻的輸入信號有關(guān),與其他時刻的輸入狀態(tài)無關(guān),無存儲電路或反饋電路。多路選擇器是在多路數(shù)據(jù)傳送過程中,根據(jù)需要選擇一條電路。如果還沒看懂功能,結(jié)合真值表就好理解了。

圖片

圖片

A1A0是選擇線,D0-D3是數(shù)據(jù)線,A1A0構(gòu)成00-11共4種選擇,對應(yīng)著D的下標(biāo),被選中的數(shù)據(jù)線作為輸出。8選1,16選1同理。在本例中,選擇最簡單的2選1電路。

設(shè)計規(guī)劃

這個示例中,采用兩個按鍵作為信號輸入,一個按鍵作為信號選擇,LED作為數(shù)據(jù)輸出。需要實現(xiàn)的功能是,當(dāng)按下按鍵sel時(sel=0),LED燈狀態(tài)取決于按鍵in2,當(dāng)不按下sel時(sel=1),LED燈狀態(tài)取決于按鍵in1。h繪制波形圖如圖所示。

圖片

編寫代碼

module mux2_1(
input wire in1,
input wire in2,
input wire sel,
output wire out);
assign out=(sel==1'b1)?in1:in2;
endmodule

這里的組合邏輯電路可以采用always中if-else實現(xiàn)方法,always中case實現(xiàn)方法,assign中條件運算符(三元運算符)實現(xiàn)方法。涉及到always的語句還沒進行總結(jié),這里采用最簡單的assign語句,用到了很熟悉的三元運算符。編寫好.v文件后編譯通過。

點擊RTL viewer可以查看設(shè)計的硬件電路結(jié)構(gòu),和我們設(shè)計所表達(dá)的意思相同。

圖片

編寫testbench

`timescale 1ns/1ns
module tb_mux2_1();
//在testbench中待測試RTL模塊的輸入永遠(yuǎn)是reg型變量
reg in1;
reg in2;
reg sel;
//在testbench中待測試RTL模塊的輸出永遠(yuǎn)是wire型變量
wire out;
initial 
  begin
    in1 <=1'b0;
    in2 <=1'b0;
    sel  <=1'b0;
  end


//每隔10ns產(chǎn)生輸入隨機數(shù)0或1
always #10 in1 <= {$random} % 2;
always #10 in2 <= {$random} % 2;
always #10 sel <= {$random} % 2;


//------------------------mux2_1_inst------------------------
mux2_1 mux2_1_inst
(
.in1(in1), //input in1
.in2(in2), //input in2
.sel(sel), //inputsel
.out(out) //output out
);
endmodule

和上一節(jié)中結(jié)構(gòu)類似,tb_mux2_1模塊中,首先定義初始的輸入信號in_1,in_2,sel為低電平(一般時序電路使用非阻塞賦值<=),延遲10個時間單位(ns)產(chǎn)生隨機數(shù)0或1賦值給輸入,就完成了輸入信號的波形設(shè)計。根據(jù)實例化的講解,第2-6行和第22-28行完成的功能是將上一個mux2_1.v文件中mux2_1模塊與tb_mux2_1模塊相連。這樣隨機生成的輸入信號就被加到mux2_1模塊上,并得到輸出mux2_1_out,通過驗證mux2_1_out與我們期望的輸出是否一致,就知道我們的設(shè)計是否正確。

對比波形

圖片

波形顯示當(dāng)sel為高電平時,out與in1一致,sel為低電平時,out與in2一致。

分配管腳

圖片

圖片

全編譯后上板驗證

按下S2(sel=0)時,按下S1(in2=0)LED就亮(out=in2=0),只按下S0(in1=0)LED就亮(out=in1=0)。

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

    關(guān)注

    22

    文章

    1588

    瀏覽量

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

    關(guān)注

    1

    文章

    384

    瀏覽量

    59534
  • 組合邏輯電路
    +關(guān)注

    關(guān)注

    6

    文章

    70

    瀏覽量

    14579
  • 多路選擇器
    +關(guān)注

    關(guān)注

    1

    文章

    22

    瀏覽量

    6488
收藏 人收藏

    評論

    相關(guān)推薦

    一文解析多路選擇器的工作原理及電路實現(xiàn)

    本文開始介紹了多路選擇器的概念和在FPGA中多路選擇器結(jié)構(gòu),其次介紹了多路選擇器工作原理與應(yīng)用,
    的頭像 發(fā)表于 04-27 08:46 ?5.9w次閱讀
    一文解析<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的工作原理及電路實現(xiàn)

    教你學(xué)Vivado—以2選1多路選擇器為例

    在EGO1開發(fā)板上實現(xiàn)2選1多路選擇器。
    的頭像 發(fā)表于 10-02 15:58 ?2348次閱讀
    教你學(xué)Vivado—以2選1<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>為例

    請問有stm32控制4選1多路選擇器的程序嗎

    求大神提供stm32控制4選1多路選擇器的程序參考,單片機9,10引腳控制多路選擇器
    發(fā)表于 01-16 06:35

    4選1多路選擇器是什么?

    Verilog數(shù)字系統(tǒng)設(shè)計三簡單組合邏輯實驗2文章目錄Verilog數(shù)字系統(tǒng)設(shè)計三前言一、4選1多路選擇器是什么?二、編程1.要求:2.always塊實現(xiàn):3.assign語句實現(xiàn):5.仿真波形總結(jié)
    發(fā)表于 02-09 06:00

    基于FPGA的多路選擇器設(shè)計(附代碼)

    實戰(zhàn)應(yīng)用,這種快樂試試你就會懂的。話不多說,上貨。 多路選擇器設(shè)計 多路選擇器是數(shù)據(jù)選擇器的別稱。在
    發(fā)表于 03-01 17:10

    譯碼多路選擇器的使用( EDA 仿真) 實驗

    譯碼多路選擇器的使用( EDA 仿真) 實驗 一、實驗?zāi)康?. 掌握Multisim電子電路仿真軟件的使用,并能進行
    發(fā)表于 02-06 14:11 ?6095次閱讀
    譯碼<b class='flag-5'>器</b>及<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的使用( EDA 仿真) 實驗

    八選一多路選擇器Verilog代碼及仿真結(jié)果MUX_8

    八選一多路選擇器 Verilog代碼 附仿真結(jié)果(modelsim仿真)
    發(fā)表于 03-28 15:27 ?32次下載

    多路選擇器有哪些_多路選擇器分類介紹

    本文開始介紹了多路選擇器的分類與多路選擇器的4選1原理圖,其次介紹了多路選擇器的典型芯片,最后介
    的頭像 發(fā)表于 04-27 09:13 ?3.4w次閱讀
    <b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>有哪些_<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>分類介紹

    4選1多路選擇器電路圖(四款多路選擇器電路)

    本文主要介紹了四款4選1多路選擇器電路圖。多路選擇器是數(shù)據(jù)選擇器的別稱。在多路數(shù)據(jù)傳送過程中,能
    發(fā)表于 04-27 09:37 ?13.8w次閱讀
    4選1<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路圖(四款<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路)

    設(shè)計一個1位的二選一多路選擇器及其VHDL描述

    本文首先介紹了二選一多路選擇器真值表,其次介紹了1位二選一多路選擇器設(shè)計及其VHDL描述,最后介紹了它的邏輯表達(dá)式實現(xiàn)。
    的頭像 發(fā)表于 04-27 09:52 ?3w次閱讀
    設(shè)計一個1位的二選一<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>及其VHDL描述

    eda四選一多路選擇器的設(shè)計

    本文開始對多路選擇器進行了詳細(xì)介紹,其中包括了多路選擇器功能、典型芯片及應(yīng)用,另外還詳細(xì)介紹了eda四選一多路
    發(fā)表于 04-27 10:13 ?3.3w次閱讀
    eda四選一<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的設(shè)計

    8選1多路選擇器電路圖(五款8選1多路選擇器電路)

    多路選擇器又稱數(shù)據(jù)選擇器。8選1數(shù)據(jù)選擇器(型號有74151、74LS151、74251、74LS152),下面就以74LS151為例子,介紹幾款電路圖。
    發(fā)表于 04-28 17:25 ?12.6w次閱讀
    8選1<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路圖(五款8選1<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路)

    Verilog HDL之多路選擇器設(shè)計

    在數(shù)字信號的傳輸過程中,有時需要從多路輸入數(shù)據(jù)中選出某一路數(shù)據(jù),完成此功能的邏輯器件稱為數(shù)據(jù)選擇器,即所謂多路開關(guān),簡稱MUX(Multiplexer)。2選1多路
    發(fā)表于 07-20 08:56 ?4293次閱讀
    Verilog HDL之<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>設(shè)計

    寫出一個包含觸發(fā)多路選擇器的子模塊

    我們用3個包含觸發(fā)多路選擇器的子模塊來實現(xiàn)圖中電路。題目要求我們寫出包含一個觸發(fā)和一個多路選擇器
    的頭像 發(fā)表于 11-17 09:37 ?960次閱讀

    基于FPGA的多路選擇器設(shè)計

    組合邏輯電路的輸出信號只與當(dāng)前時刻的輸入信號有關(guān),與其他時刻的輸入狀態(tài)無關(guān),無存儲電路或反饋電路。多路選擇器是在多路數(shù)據(jù)傳送過程中,根據(jù)需要選擇一條電路。如果還沒看懂功能,結(jié)合真值表就
    的頭像 發(fā)表于 05-12 12:47 ?1290次閱讀
    基于FPGA的<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>設(shè)計