《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > FPGA教學(xué)——FPGA雙向IO使用之三態(tài)門說明

FPGA教學(xué)——FPGA雙向IO使用之三態(tài)門說明

2022-10-20
來源:FPGA之家
關(guān)鍵詞: FPGA 雙向IO 三態(tài)門

  在FPGA設(shè)計中,,雙向IO(輸入輸出引腳)是一個比較麻煩的東西,,但是信號線用作總線等雙向數(shù)據(jù)傳輸時就要用到inout類型。

  以下用液晶的的數(shù)據(jù)線用作雙向IO示例:

  微信截圖_20221020160850.png

  說是雙向IO端口,,其實輸入和輸出不是同時進(jìn)行的,需要有一個控制信號out_en來控制端口什么時候為輸出,,什么時候為輸入,。

  那這里就需要引入一個三態(tài)門結(jié)構(gòu)電路。

  三態(tài)門結(jié)構(gòu)

  那么三態(tài)門的結(jié)構(gòu)是怎樣的呢,?

  三態(tài)門電路的輸出結(jié)構(gòu)和普通門電路的輸出結(jié)構(gòu)有很大的不同,,因為它在電路中增加了一個輸出控制端EN。

  微信截圖_20221020161010.png

  由上圖看出,,在單相三態(tài)門中,,當(dāng)EN=1時,對原電路無影響,,電路的輸出符合原來電路的所有邏輯關(guān)系,,即A可以輸出到B。當(dāng)EN= 0時,,電路內(nèi)部的所有輸出與外部將處于一種關(guān)斷狀態(tài),。

  因此,當(dāng)FPGA的信號線存在雙向IO時,,可以有兩個三態(tài)門來控制,,一個控制輸出,一個控制輸入,,結(jié)構(gòu)如下:

  微信截圖_20221020161027.png

  當(dāng)ENout=1,,ENin=0時,雙向三態(tài)門的電路傳輸方向是A->B,;

  當(dāng)ENout=0,,ENin=1時,雙向三態(tài)門的電路傳輸方向是B->A,;

  模型分析

  下面簡單做個簡易模型來說明雙向IO如何分別實現(xiàn)作為輸入端口和輸出端口的功能,,模塊圖如下:

  微信截圖_20221020161045.png

  模型引腳定義

  (1)輸入口A定義:當(dāng)雙向端口dinout作為輸出口時,,我們將A端口輸入數(shù)據(jù)傳到模塊中,,讓數(shù)據(jù)從dinout口出來。

 ?。?)輸出端口B定義:當(dāng)當(dāng)雙向端口dinout作為輸入口時,,我們將dinout端口輸入數(shù)據(jù)傳到模塊中,讓數(shù)據(jù)從B口出來,。

 ?。?)EN控制信號定義:當(dāng)EN=1時,開通三態(tài)門,,將dinout作為輸出口使用,,當(dāng)EN=0時,把三態(tài)門置為高阻態(tài),,這時dinout作為輸入口用,。

  代碼展示

  微信截圖_20221020161101.png

  編譯分析后查看RTL視角邏輯電路,符合原有模型設(shè)計,。

  微信截圖_20221020161134.png

  總結(jié)說明

  (1)FPGA內(nèi)部不允許傳遞雙向IO信號,,只有FPGA對外部才能定義為雙向IO端口,,即只有在頂層輸出的信號才可以被賦值為高阻態(tài)。

 ?。?)在結(jié)構(gòu)化建模的過程中,,一個模塊一個功能的建模,當(dāng)涉及到內(nèi)部模塊的端口是雙向IO端口時,,然后根據(jù)一個雙向IO對應(yīng)一個輸入,,一個輸出和一個使能控制,把模塊中雙向IO的輸出用輸出端口代替,雙向IO的輸入用輸入端口代替,,引出使能信號,,并把對應(yīng)assign中賦值的高阻態(tài)z根據(jù)實際情況給出0或1,來解決FPGA內(nèi)部雙向IO連接問題,。

 更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

微信圖片_20210517164139.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]