郭 濱
(中國電子科技集團公司第四十七研究所,沈陽110032)
FPGA中的多標準IO端口設計
郭 濱
(中國電子科技集團公司第四十七研究所,沈陽110032)
現場可編程門陣(FPGA,Field Programmable Gate Array)是可編程邏輯器件的一種,已廣泛運用于通信領域、消費類電子和車用電子。I/O端口模塊是FPGA中最主要的幾個大模塊之一,它的主要作用是提供封裝引腳到CLB之間的接口,將外部信號引入FPGA內部進行邏輯功能的實現并把結果輸出給外部電路,并且根據需要可以進行配置來支持多種不同的接口標準。FPGA允許使用者通過不同編程來配置實現各種邏輯功能,在I/O端口中它可以通過選擇配置方式來兼容不同信號標準的I/O緩沖器電路。
現場可編程門陣列;輸入/輸出;I/O標準
FPGA(Field Programmable Gate Array)即現場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎上進一步發展的產物,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。FPGA能完成任何數字器件功能,上至高性能CPU,下至簡單ASIC電路,都可以用FPGA來實現。利用FPGA,工程師可以通過傳統的原理圖輸入法,或是硬件描述語言自由設計一個數字系統。通過軟件仿真,我們可以事先驗證設計的正確性。在PCB完成以后,還可以利用FPGA在線修改能力,隨時修改設計而不必改動硬件電路。使用FPGA來開發數字電路,可以大大縮短設計時間,減少PCB面積,提高系統的可靠性。FPGA的這些優點使得FPGA技術在90年代以后得到飛速發展,同時也大大推動了EDA軟件和硬件描述語言(HDL)的進步。
FPGA包括3個大模塊和若干小模塊。3個大模塊指:①可配置邏輯模塊CLB(Configurable Logic Block);②輸出輸入模塊lOB(Input Output Block);③內部連線(Interconnect)。
這3部分占據了整塊芯片90%以上的面積。此外,FPGA還包括一些周邊電路,如配置電路模塊、邊界掃描/回讀模塊、DLL時鐘控制模塊、上電復位模塊、電壓補償模塊等,它們大多分布在芯片邊界,共同完成FPGA功能。
每個IO端口可以被配置成輸入、輸出、三態輸出的雙向端口。每個IO端口可以使用相同的電源電壓,配置成獨立端口。如圖1,是一個IO電路。輸出使能信號(OE),可以使信號從內核電路經過輸出緩沖器輸出給外部端口。輸出緩沖器包含ESD保護電路。每個IO還包含一個可編程的斜率控制器,上拉下拉電阻控制器,支持熱插拔,支持5V耐受,鉗位二極管控制電路。圖中AF0,AF1,AF2, AF3,AF4是可編程的反熔絲點選擇器。根據圖1,IO端口由輸入緩沖器和輸出緩沖器組成。輸入緩沖器的作用就是由IOB PAD上接收到外部信號,并把這個信號的IO標準轉換為可供FPGA內部邏輯模塊(主要是CLB)使用的電平信號,使轉換后的信號電壓波峰值為片內核心電壓。輸出緩沖器就是把FPGA內部邏輯實現后輸出的結果轉換為符合各IO標準的輸出,其中輸出電壓,擺率,電流關系等都要和對應的標準符合。

圖1 I/O模塊
對圖1中IO電路進行仿真,內核電壓vcca=1.8V,IO電壓vcci=3.3V,首先把使能信號配置成輸入IO,給IO一個高電平為3.3V、低電平為0V的方波,經過內核從Y輸出,輸出一個高電平為1.8V,低電平為0V的方波,如圖2所示。再把使能信號配置成輸出IO,從內核輸入一個高電平為1.8V,低電平為0V的方波,經過IO,從PAD輸出一個高電平為3.3V,低電平為0V的方波,如圖3所示。這就實現了IO的電平轉換。

圖2 輸入IO

圖3 輸出IO
FPGA中I/O接口的主要作用是提供封裝引腳到CLB之間的接口,將外部信號引入FPGA內部進行邏輯功能的實現并把結果輸出給外部電路,并且根據需要可以進行配置來支持多種不同的接口標準。例如Virtex.E型號FPGA中高靈活性的Select I/O技術一共支持了多種高性能接口標準。如表1所示。

表1 Virtex.E型號FPGA支持的IO標準
因為I/O電路主要作用是為數字邏輯電路(CLB)提供輸出驅動能力與輸入驅動能力的一個接口電路,如果沒有該電路,那么數字電路的輸出將只有一個電壓標準(芯片工作電壓),而且也不能滿足外部驅動能力的要求。因此所謂不同的接口標準,實際上體現在I/O上就是不同接口標準對輸出電壓與輸出電流大小的要求不同,I/O接口電路顯然不能簡單的用一個Buffer緩沖器來代替。根據表1可以得知Virtcx.E的I/O需要支持多種不同的接口標準,而Virtex.E僅僅是Virtcx系列比較早期的型號,越為先進的型號,它們支持的I/O標準數量越多。為了適應越來越繁多、層出不窮的I/O標準,FPGA的多標準IO接口模塊設計必須遵循一個核心思想:不去考慮各種不同接口協議的具體編碼規則,而是著重于不同接口協議的電氣特性參數有哪些不同。不同I/O標準的電壓、電流要求不同。
從總體結構出發,將FPGA中的I/O電路分為三大部分,即用于儲存配置信息和實現I/O可編程的陣列、I/O布線矩陣資源以及I/O電路多標準兼容功能實現模塊。其中多標準I/O兼容模塊分為觸發器模塊、輸入緩沖器模塊和輸出緩沖器模塊。針對各種單端I/O輸入/輸出標準,自上而下設計了它們的電路。此電路具備很好的靈活性,可通過編程使電路能夠兼容多種標準的單端標準和偽差分標準。同時,此電路也具備很好的可擴展性。最后提出了I/O接口電路的測試方案,以驗證設計的可實現性。
[1] R Jacob Baker,Harry W Li,David E Boyce.CMOS:circuit Design,Layout,and Simulation[M].北京:機械工業出版社,2003.
[2] [美]尤耶繆拉(Uyemura,J.P.)著.超大規模集成電路與系統導論[M].周潤德,譯.北京:電子工業出版社,2004.
[3] 朱明程,熊元姣.ACTEL數字系統現場集成技術[M].北京:清華大學出版社,2004.
Design on Multi-Standard I/O Ports in FPGA
Guo Bin
(The 47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China)
FPGA(Field Programmable Gate Array),as an type of programmable logic devices,has been applied in the fields of communication,consumption electronics and automobile electronics.I/O Blocks is one of themost importantmodules in FPGA,which provides the interface between the package pins and CLBs,receives exterior signals for implement the logic functions in FPGA and exports the result to exterior circuit.The signals can be configured to support different I/O standards according to the requirements.In I/O Blocks,I/O output/input buffer circuit is compatiblewith different I/O standards by configuration.
FPGA;Input/Output;I/O standard
10.3969/j.issn.1002-2279.2015.01.003
TN4
A
1002-2279(2015)01-0007-03
郭濱(1982-),女,河北省吳橋縣人,學士,主研方向:IC設計。
2014-03-21