你的位置:首頁 > 互連技術 > 正文

                                        解析多路選擇器的工作原理及電路實現

                                        發布時間:2018-04-27 責任編輯:lina

                                        【導讀】多路選擇器是數據選擇器的別稱。在多路數據傳送過程中,能夠根據需要將其中任意一路選出來的電路,叫做數據選擇器,也稱多路選擇器或多路開關。

                                        什么是多路選擇器
                                          
                                        多路選擇器是數據選擇器的別稱。在多路數據傳送過程中,能夠根據需要將其中任意一路選出來的電路,叫做數據選擇器,也稱多路選擇器或多路開關。
                                          
                                        FPGA中多路選擇器結構
                                          
                                        典型的FPGA器件主要包含3類基本資源:可編程邏輯塊(configurablelogicblock,CLB)、布線資源和可編程輸入/輸出模塊??删幊踢壿媺K四周被預制的布線資源通道包圍,可編程輸入/輸出模塊分布在FPGA四周,除了上述3種資源以外,通常在FPGA中還包含塊RAM、乘法器等可選資源。
                                          
                                        在FPGA各種資源中,可編程邏輯塊是實現用戶功能的基本單元,每個可編程邏輯塊包含1個互連開關矩陣和4個SLICEs,其中每個SLICE包括2個查找表(Look-Up-Table,LUT)、2個觸發器和一些多路選擇器?;ミB開關矩陣主要由不同長度導線和多個布線開關組成,典型的布線開關結構如圖1所示。
                                         
                                         
                                        由圖1可見:每個布線開關由多路選擇器、緩沖器和一些可編程的SRAM單元構成。其中多路選擇器是連接各布線軌道和可編程邏輯塊的橋梁,其結構對FPGA的性能和功耗都有較大的影響。根據多路選擇器所驅動的導線長度不同,FPGA中多路選擇器的規模從4選1到30選1不等。圖2所示為16選1的多路選擇器晶體管級電路結構。
                                         
                                          
                                        多路選擇器的左邊是 16 條輸入線,用于連接布線軌道或可編程邏輯塊等資源,S1~S6 代表 6 個可編程SRAM 單元,通過配置 SRAM 單元的內容可以從 16條輸入線中選出 1 條作為有效輸入端,例如,當 S1~S6存儲單元的存儲值為“000100”時,輸入線 I3被選擇中,信號所經過的有效路徑如圖 2 中虛線所示。多路選擇器的主體部分是傳輸晶體管,由于 NMOS 晶體管載流子的遷移效率高,電路速度快,因此,多路選擇器中的傳輸晶體管均采用 NMOS 晶體管實現。
                                          
                                        多路選擇器工作原理
                                          
                                        常用的多路選擇器有4選1、8選1、16選1等多種類型。下面以4選1數據選擇器為例介紹數據選擇器的工作原理。根據前面介紹的數據選擇器的功能,可以列出4選1數據選擇器的邏輯功能表,如表5-7-1所示。其中D0~D3為數據輸入端,A0、A1為數據選擇端。
                                         
                                          
                                        由邏輯功能表可以寫出輸出與輸入之間的表達式為
                                         
                                          
                                        由邏輯表達式畫出4選1數據選擇器邏輯電路2所示。
                                         
                                          
                                        74LS153是一種集成的雙4選1數據選擇器邏輯器件。圖3所示為74LS153的邏輯電路圖和框圖。
                                         
                                          
                                        由圖3(a)可知,74LS153的邏輯電路中包含兩個4選1數據選擇器,它們的數據輸入端分別為D10、D11、D12、D13和D20、D21、D22、D23,數據輸出端分別為Y1和Y2。它們有公共的地址選擇輸入端A0、A1。除此之外,還各自有有一個使能控制端
                                         

                                         
                                        由圖3(a)可以寫出輸入與輸出之間的邏輯函數式為
                                         
                                          
                                        由式(2)可以看出,只有當使能控制端

                                         
                                        時,數據選擇器才能正常工作,否則數據輸出端鎖定在低電平。故使能控制端為低電平有效。
                                          
                                        74LS153的邏輯功能表如表2所示。
                                          
                                        表2 74LS153的邏輯功能表
                                         
                                        多路選擇器的應用
                                         
                                        (1)多路選擇器的擴展應用
                                          
                                        可以用多片少數據輸入的數據選擇器設計多數據輸入的多路選擇器。
                                          
                                        例1:用74LS153設計一個8選1的數據選擇器。
                                          
                                        解:74LS153是一個雙4選1多路選擇器。有兩個公用的地址選擇輸入端,8個數據輸入端。8選1數據選擇器需要3個地址輸入端(23=8),因此需要用使能控制端來補充地址輸入端的不足。用雙4選1數據選擇器芯片74LS153設計的8選1數據選擇器的電路如圖4所示。
                                         
                                          
                                        當A2=0時,上邊的4選1數據選擇器工作,根據地址輸入端A0、A1的狀態,輸出端Y1選擇輸出D0~D3,此時Y2=0,故Y=Y1;當A2=1時,下邊的4選1數據選擇器工作,根據地址輸入端A0、A1的狀態,輸出端Y2選擇輸出D4~D7,此時Y1=0,故Y=Y2。邏輯函數式為
                                         
                                          
                                        也可以添加使能控制端對所接成的8選1數據選擇器的工作狀態進行控制。添加使能控制端的8選1數據選擇器的電路如圖5所示。
                                         
                                          
                                        由圖5可知,當=0時,8選1數據選擇器正常工作;當=1時,8選1數據選擇器的輸出被鎖定在低電平。
                                          
                                        (2)用多路選擇器設計組合邏輯電路
                                          
                                        由表2可知,具有兩位地址輸入A0、A1的4選1數據選擇器,當使能控制端=0時,輸出與輸入之間的邏輯關系式為
                                         
                                          
                                        若將A0、A1作為兩個輸入變量,同時令D0~D3為第三個變量的適當狀態(包括原變量、反變量、0和1),就可以用4選1數據選擇器實現任何形式的三變量組合邏輯函數。
                                          
                                        同理,用由n位地址輸入端的多路選擇器可以實現任何形式的變量數不大于n+1的組合邏輯函數。
                                          
                                        例2:用4選1數據選擇器實現以下組合邏輯函數:
                                         
                                          
                                        解:將式(4)化成與式(5)相對應的形式:
                                         
                                          
                                        將式(6)與式(4)比較可知,只要令數據選擇器的數據輸入端為
                                         
                                          
                                        則多路選擇器的輸出就是所要表達的組合邏輯函數。
                                          
                                        多路選擇器的設計實現
                                          
                                        設計一個二位4路選擇器,由于選擇器使用條件觸發的方法對應真值表進行匹配輸出與輸入,因此可以聯想到在C程序設計中的條件語句“If”和“Case”兩種,那么這兩種設計從硬件的角度出發有什么不同呢?
                                          
                                        代碼如下:
                                         
                                          
                                        為了區別兩種設計的不同,可以查看ISE提供的綜合報告,操作如下:
                                         
                                          
                                        綜合報告對比:
                                         
                                          
                                        使用Case條件語句 使用IF條件語句
                                          
                                        由綜合報告查看可知,if語句運用的元器件多于case語句運用的元器件,同時,if語句中每一個分支之間具有優先級(串行),得到類似級聯的結構;而case語句所有分支處于同一優先級(并行),綜合可以得到一個多路選擇器。因此,對于設計多路選擇器而言,if語句所造成的延時往往比case語句的大,所以對于多路選擇器而言,運用case語句的效果會更好。
                                          
                                        Case語句下可能出現鎖存器。注釋case條件下的case語句塊的某一行可以得到不完整的case語句下的2位四路選擇器。由不完整case語句下的2位四路選擇器可知:由于case語句所有分支處于同一優先級,所以當條件不完整時,對于處理結果,它不取決于語句的先后順序,只取決于待處理信號,而處理結果為與待處理信號相差1’b1的信號的處理結果,在這一條件下相當于與待處理信號相差1’b1的信號的處理結果得到了鎖存,鎖存器因此產生。
                                          
                                        對與鎖存器而言,鎖存器在待處理信號存在Glitch的情況下,可能會對Glitch產生鎖存,從而導致鎖存出現嚴重錯誤,是目標信號處理結果與預期目的產生極大的偏差,因此鎖存器存在不穩定因素,所以在使用鎖存器時,要牢記優先消除待處理信號的Glitch。
                                          
                                        測試文件:
                                          
                                        initial begin  
                                        // Initialize Inputs  
                                        d0 = 0; 
                                        d1 = 1;
                                        d2 = 2;
                                        d3 = 3;
                                        select = 0;
                                        #100;
                                        select = 1;
                                        #100;
                                        select = 2;
                                        #100;
                                        select = 3;
                                        #100;
                                        // Add stimulus here
                                        end
                                          
                                        仿真結果:
                                         


                                        推薦閱讀:
                                        通過管理MCU軟件的方法來解決電池問題
                                        智能追蹤技術:眼動追蹤技術帶你走向更真實的虛擬世界
                                        還在為采用線性電壓調整器還是DC/DC轉換器而煩惱嗎?
                                        提高輕負載時效率,降低IC消耗電流的幾種方法
                                        福祿克70年匠心:傳承經典 保持創新,助力智能制造新未來
                                        要采購開關么,點這里了解一下價格!
                                        特別推薦
                                        技術文章更多>>
                                        技術白皮書下載更多>>
                                        熱門搜索
                                        ?

                                        關閉

                                        ?

                                        關閉

                                        国产精品亚洲АV无码播放|久久青青|老熟妇仑乱视频一区二区|国产精品经典三级一区|亚洲 校园 春色 另类 激情