在FPGA設(shè)計(jì)中,雙向IO(輸入輸出引腳)是一個(gè)比較麻煩的東西,但是信號(hào)線用作總線等雙向數(shù)據(jù)傳輸時(shí)就要用到inout類型。
以下用液晶的的數(shù)據(jù)線用作雙向IO示例:

說(shuō)是雙向IO端口,其實(shí)輸入和輸出不是同時(shí)進(jìn)行的,需要有一個(gè)控制信號(hào)out_en來(lái)控制端口什么時(shí)候?yàn)檩敵?,什么時(shí)候?yàn)檩斎搿?/p>
那這里就需要引入一個(gè)三態(tài)門(mén)結(jié)構(gòu)電路。
三態(tài)門(mén)結(jié)構(gòu)
那么三態(tài)門(mén)的結(jié)構(gòu)是怎樣的呢?
三態(tài)門(mén)電路的輸出結(jié)構(gòu)和普通門(mén)電路的輸出結(jié)構(gòu)有很大的不同,因?yàn)樗陔娐分性黾恿艘粋€(gè)輸出控制端EN。

由上圖看出,在單相三態(tài)門(mén)中,當(dāng)EN=1時(shí),對(duì)原電路無(wú)影響,電路的輸出符合原來(lái)電路的所有邏輯關(guān)系,即A可以輸出到B。當(dāng)EN= 0時(shí),電路內(nèi)部的所有輸出與外部將處于一種關(guān)斷狀態(tài)。
因此,當(dāng)FPGA的信號(hào)線存在雙向IO時(shí),可以有兩個(gè)三態(tài)門(mén)來(lái)控制,一個(gè)控制輸出,一個(gè)控制輸入,結(jié)構(gòu)如下:

當(dāng)ENout=1,ENin=0時(shí),雙向三態(tài)門(mén)的電路傳輸方向是A->B;
當(dāng)ENout=0,ENin=1時(shí),雙向三態(tài)門(mén)的電路傳輸方向是B->A;
模型分析
下面簡(jiǎn)單做個(gè)簡(jiǎn)易模型來(lái)說(shuō)明雙向IO如何分別實(shí)現(xiàn)作為輸入端口和輸出端口的功能,模塊圖如下:

模型引腳定義
(1)輸入口A定義:當(dāng)雙向端口dinout作為輸出口時(shí),我們將A端口輸入數(shù)據(jù)傳到模塊中,讓數(shù)據(jù)從dinout口出來(lái)。
(2)輸出端口B定義:當(dāng)當(dāng)雙向端口dinout作為輸入口時(shí),我們將dinout端口輸入數(shù)據(jù)傳到模塊中,讓數(shù)據(jù)從B口出來(lái)。
(3)EN控制信號(hào)定義:當(dāng)EN=1時(shí),開(kāi)通三態(tài)門(mén),將dinout作為輸出口使用,當(dāng)EN=0時(shí),把三態(tài)門(mén)置為高阻態(tài),這時(shí)dinout作為輸入口用。
代碼展示

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

總結(jié)說(shuō)明
(1)FPGA內(nèi)部不允許傳遞雙向IO信號(hào),只有FPGA對(duì)外部才能定義為雙向IO端口,即只有在頂層輸出的信號(hào)才可以被賦值為高阻態(tài)。
(2)在結(jié)構(gòu)化建模的過(guò)程中,一個(gè)模塊一個(gè)功能的建模,當(dāng)涉及到內(nèi)部模塊的端口是雙向IO端口時(shí),然后根據(jù)一個(gè)雙向IO對(duì)應(yīng)一個(gè)輸入,一個(gè)輸出和一個(gè)使能控制,把模塊中雙向IO的輸出用輸出端口代替,雙向IO的輸入用輸入端口代替,引出使能信號(hào),并把對(duì)應(yīng)assign中賦值的高阻態(tài)z根據(jù)實(shí)際情況給出0或1,來(lái)解決FPGA內(nèi)部雙向IO連接問(wèn)題。
審核編輯 :李倩
-
FPGA
+關(guān)注
關(guān)注
1655文章
22288瀏覽量
630339 -
電路
+關(guān)注
關(guān)注
173文章
6063瀏覽量
177480 -
信號(hào)線
+關(guān)注
關(guān)注
2文章
185瀏覽量
22160
原文標(biāo)題:FPGA雙向IO使用之三態(tài)門(mén)說(shuō)明
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
八進(jìn)制三態(tài)同相緩沖器/線路驅(qū)動(dòng)器/線路接收器MC74HC244A和MC74HCT244A詳解
MC74VHCT125A三態(tài)總線緩沖器技術(shù)深度解析與應(yīng)用指南
SN74LV8T540 具有三態(tài)輸出的 8 位固定方向電平轉(zhuǎn)換器技術(shù)手冊(cè)
SN74AHC126四路三態(tài)總線緩沖門(mén)技術(shù)解析與應(yīng)用指南
SN74AHCT1G126 單總線緩沖門(mén)技術(shù)解析與應(yīng)用指南
Texas Instruments SN74AC3G99/SN74AC3G99-Q1多功能門(mén)特性/應(yīng)用/框圖
中微愛(ài)芯推出可配置多功能邏輯門(mén)電路AiP74LVC1G99
高速CMOS四總線緩沖器MC74VHC125DG帶三態(tài)控制輸入 EDA模型與數(shù)據(jù)手冊(cè)分享
復(fù)位時(shí) FX3 引腳狀態(tài)是怎樣的?
關(guān)于晶振的三態(tài)
AiP74LVC125帶三態(tài)控制的4路緩沖器/線驅(qū)動(dòng)器產(chǎn)品說(shuō)明書(shū)
高速光耦在通信行業(yè)的應(yīng)用(五) | 5Mbps通信光耦的特性

FPGA三態(tài)門(mén)的結(jié)構(gòu)是怎樣的呢?
評(píng)論