?

基于FPGA的三態總線設計

2014-10-21 11:36韓躍強
商品與質量·消費視點 2014年11期
關鍵詞:總線端口雙向

韓躍強

摘要:本文對MCU與FPGA組成系統的結構進行了分析,并以ALTERAFPGA的結構為基礎,進行了總線互連的設計。

關鍵詞:可編程邏輯器件三態總線FPGA

引言

近年來,隨著可編程邏輯器件的迅速發展,越來越多的系統設計開始采用這種半定制的ASIC(專用集成電路)。PLD(可編程邏輯器件)及整套EDA(電子設計自動化)工具的使用,為開發人員提供了自上而下設計系統的途徑。這種系統可以簡化系統設計、優化系統結構與電氣特性、便于系統的調試與維護、縮短設計周期以及降低成本。尤其是在數字系統的研制階段或中小批量生產中,上述優點更為明顯。

1、FPGA可重構系統結構分析

在高速系統中實現人機界面以及參數設置等非高速操作,往往使用具有良好接口功能的通用MCU(微控制器)來實現。因此,這種由MCU和FPGA(FieldProgrammableGateArray)構成的系統使用更為廣泛。按照MCU與FPGA之間的相互關系以及在系統中所起的作用,主要可以分為兩類:MCU控制FPGA工作的系統和MCU協同FPGA工作的系統。

1.1MCU控制FPGA工作的系統

這類系統采用MCU作為系統的主要控制器件,在FPGA中實現控制器的外設電路功能。實質上,這是傳統MCU控制系統的繼承發展,它把各個分立的外部設備與接口,根據系統需要,在FPGA中定制實現。比如在FPGA中實現SRAM(靜態隨機存儲器)、鍵盤與顯示接口以及總線的擴展等應用。

由于主要控制任務在MCU上實現,系統邏輯實現的重點在編制MCU程序上,而FPGA則更多的使用IP(IntellectualProperty)核實現基本功能模塊。因此,在整個系統設計過程中,軟件開發所占比重較大。

1.2MCU協同FPGA工作的系統

這類系統通常以可編程邏輯器件為核心,在其內部實現面向應用的邏輯功能,而MCU則占據次要地位。應該說,這類系統充分利用了可編程邏輯器件和MCU的特點,實現了優勢互補。它主要應用在面向應用、并行處理以及高速等環境中。例如,使用高密度的FPGA進行高速的多路A/D采樣,經內部處理模塊處理后,并行輸出結果,整個過程的時序控制在FPGA內部實現;而MCU只負責對FPGA各功能模塊的參數裝載,發送啟動命令以及監控FPGA工作狀態等任務。這類系統的開發重點主要在FPGA邏輯功能的硬件實現上,而MCU的控制軟件就比較簡單了。

在實際應用中,系統的特點并不像以上兩種類型這么明顯,普遍存在的是兼具以上特點的系統,只是所占比重不同而已。

2、MCU結合可編程邏輯器件系統的互連接口

MCU與可編程邏輯器件互連,有直接連接和總線連接兩種方式。直接連接只需把MCU與FPGA的I/O引腳相連即可。而總線連接可分為單向總線和雙向總線兩種類型。對于單向總線,實質上是一組以直接方式互連的I/O。而實現雙向總線,就需要使用可編程邏輯器件的雙向口構造三態總線了。

三態總線的實現,需要使用三態緩沖器,實現高、低電平和高阻三個狀態。在FPGA上可有內部和外部兩種三態總線的實現方式。

內部三態總線是在器件內部的各邏輯部分之間互連的總線。由于不同廠商采用不同的技術,因此內部三態主要有兩種方法實現。一種是使用三態門實現真實的三態總線,這需要器件內部具有三態邏輯支持。比如XILINX公司的FPGA產品,在其內部CLB(可編程邏輯塊)中,有三態緩沖器。另一種是把三態邏輯轉化為MUX(多路選擇器)實現,這樣內部邏輯不需要三態門的支持。這種器件以ALTERA公司的FPGA為代表。雖然這一方法是模擬三態邏輯,但是具有降低成本和消除信號競爭的特點。

外部三態總線是器件在端口上實現的,用來與其它芯片互連,這對于大量的系統設計是必須的。因此,所有的可編程邏輯器件都在I/O端口上實現了真實的三態緩沖。同時,由于大量雙向總線的存在,所以三態總線往往與雙向端口聯系在一起,形成雙向的三態總線。

在含FPGA的MCU系統中,FPGA通過外部三態總線與MCU的總線端口互連。而且,一片FPGA通常實現多個功能模塊,所以內部三態總線是外部系統總線在FPGA器件內部的延伸。因此,外部和內部的三態總線共同構成了連接MCU與FPGA的系統總線。本文以ALTERA公司的CYCLONE系列器件為例,來闡述雙向三態總線的設計方法。

ALTERA公司的ACEX1K系列器件是2003年推出的面向低成本、高容量以及低功耗等網絡通信及控制應用的中密度可編程器件。它依然采用了ALTERA傳統的LUT(查找表)結合EAB(嵌入式陣列塊)結構,因此內部沒有三態緩沖器,而是采用MUX模擬三態邏輯。這一轉換過程,由QuartusII軟件在編譯時自動完成。

在器件的I/O端口,每個IOE(輸入輸出元件)都包含一個I/O緩沖,以及一個既可做輸入又可做輸出的寄存器。由圖1可見,在I/O引腳上實現了三態緩沖結構。當引腳作雙向口使用時,IOE中的寄存器作為輸出數據寄存器連接到三態門的輸入端。輸入數據和輸出允許寄存器分別使用相鄰LE(邏輯單元,是LAB的組成元素)中的寄存器,即雙向三態的實現既使用了IOE,有使用了內部邏輯資源。

3、基于ALTERA可編程邏輯器件實現三態總線的方法

3.1內部三態總線的實現

內部三態總線是外部三態總線在FPGA器件內部的延伸,用來連接可編程邏輯器件片內的各功能模塊。

ALTERACYCLONE器件使用MUX代替內部三態總線。使用ALTERA公司的集成編譯環境QuartusII,在圖形輸入和AHDL語言輸入方式下,可以自動進行這種轉換。例如,下面是采用圖形方式輸入的內部三態邏輯(如圖2),(a)、(b)兩種情況為三態門驅動輸出引腳和三態門驅動內部邏輯。

QuartusII將自動進行MUX轉換(如圖3),分別對應有無輸出引腳。并且一個三態門只能驅動一個引腳,這是由器件的硬件結構決定的??梢娙龖B門只能在I/O引腳上實現。

3.2外部三態總線的實現

3.2.1與其它芯片相連的外部三態總線

MCU與FPGA采用總線方式互連,在MCU端有現成的總線接口,而在FPGA端,需要自行設計總線端口,即外部總線的實現就是總線端口的設計。此外,總線通常連接多個設備,因此需要實現雙向三態總線。在ALTERA的FPGA中實現雙向三態端口,QuartusII既支持語言方式輸入,又支持圖形方式輸入,分別討論如下。

(1)雙向三態總線的VHDL語言描述。

下面一段VHDL代碼描述了一個雙向三態總線的端口。

這段程序可以作為FPGA器件的對外端口邏輯模塊。ext_data作為器件對外部的雙向口,它的輸出實現了三態,而它的輸入,只要按正確時序讀取外部信號,是不需要實現三態的。輸入口in_data和輸出口out_data是對FPGA內部的接口,這是由于內部邏輯不必實現雙向,所以是輸入和輸出分開的。這一點在后面的圖形表示中將更加直觀。

(2)雙向三態總線的圖形描述。

依然以上述模塊為例,采用QuartusII的圖形方式輸入,利用參數化模塊庫(LPM)實現(如圖4)。這種方法尤為清晰簡便。

圖中out_data為模塊輸出,實際對應FPGA的輸入功能,所以與其相連的三態門保持常通狀態以實現內部連接。這也是由于三態門不能直接驅動內部邏輯決定的。

3.2.2用外部雙向三態總線實現內部邏輯塊的互連

雖然ALTERA器件不支持內部三態,但是通過上面的圖形描述,啟發我們通過引腳上的三態門實現器件內部邏輯塊之間的雙向三態總線互連,當然,也可以使用MUX技術實現。

圖5為需要實現的內部邏輯互連,但是這種情況在ALTERA的FPGA上無法實現,需要轉換成MUX。而通過使用兩組雙向引腳,利用I/O口上的三態門轉化為外部總線,就可以實現了(如圖6)。需要注意的是,圖6中引腳間的互連需在PCB(PrintedCircuitBoard)板上實現,這里所用的BIDIRC端口只是對連接進行了表示,在FPGA器件內部不能實現。

這種使用I/O端口實現的內部總線可以連接內部各個模塊實現雙向三態連接,但是是以占用I/O端口資源為代價的,所以如無特別要求,對內部三態總線應采用MUX邏輯實現。而對于如與MCU連接的外部雙向三態端口,可直接使用圖4所示方法實現,FPGA對外的輸出實現三態控制,而輸入不需三態控制,由內部邏輯保證輸入正確性。

4、結束語

MCU與FPGA相結合的系統,由于其可重構、靈活的優點,十分適合工控系統的應用。而總線式系統結構是這一系統的主要特點之一,是實現系統邏輯功能的基礎結構。

參考文獻:

[1]AlteraCorp.ACEXCYCLONEProgrammableLogicDeviceFamilyDataSheet.Ver.1.1,2003.

[2]曾凡泰,陳美金.VHDL程序設計.北京:人民郵電出版社,2000.

[3]蔣璇.數字系統設計與PLD應用技術.北京:電子工業出版社,2001.

猜你喜歡
總線端口雙向
混凝土泵車用雙向液壓鎖故障探討
關于CAN總線的地鐵屏蔽門控制思路論述
一種端口故障的解決方案
樸素高效的雙向快充
為程序或設備在路由器上打開端口
例說乘法公式的雙向應用
廣電網絡雙向網改造方案
Q&A熱線
PCI9030及其PCI總線接口電路設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合