FPGA的原理和設計

今天,數字電子系統的設計方法及設計手段都發生了根本性變化,正由分立數字電路向可編程邏輯器件(PLD,ProgrammableLogic Device)及專用集成電路(ASIC,Application Specific IntegratedCircuit)轉變。FPGA與CPLD(Programmable LogicDevice,複雜可編程邏輯器件)都屬於PLD的範疇,它們在現代數字系統設計中正佔據越來越重要的地位。

FPGA的原理和設計

FPGA是由用戶編程來實現所需邏輯功能的數字集成電路,它不僅具有設計靈活、性能高、速度快等優勢,而且上市週期短、成本低廉。FPGA設計與ASIC前端設計十分類似,在領域中FPGA應用日益普及,已成爲集成電路中最具活力和前途的產業。同時,隨着設計技術和製造工藝的完善,器件性能、集成度、工作頻率等指標不斷提升,FPGA已越來越多地成爲系統級芯片設計的首選。

FPGA由PAL(可編程陣列邏輯)、GAL(通用陣列邏輯)發展而來,其基本設計思想是藉助於EDA開發工具,用原理圖、狀態機、布爾表達式、硬件描述語言等方法進行系統功能及算法描述,設計實現並生成編程文件,最後通過編程器或下載用目標器件來實現。

FPGA器件採用邏輯單元陣列(LCA,Logic CellArray)結構、SDRAM工藝,其中LCA由三類可編程單元組成。

(1)可配置邏輯塊(CLB,Configurable LogicBlock):被稱爲核心陣列,是實現自定義邏輯功能的基本單元,散佈於整個芯片;

(2)輸入/輸出模塊(IOB,Input/OutputBlock):排列於芯片四周,爲內部邏輯與器件封裝引腳之間提供可編程接口;

(3)可編程互連資源(PI,Programmable Interconnect):包括不同長度的連線線段及連接,其功能是將各個可編程邏輯塊或I/O塊連接起來以構成特定電路。

全球生產FPGA的廠家很多,但影響力最大的是Xilinx公司和Altera公司,世界上第一片FPGA是在20世紀80年代中期Xilinx公司率先推出的。不同廠家生產的FPGA在可編程邏輯塊的`規模、內部互連線結構及所採用的可編程元件上存在較大差異,實際使用時應注意區分

FPGA設計包括描述層次及描述領域兩方面內容。通常設計描述分爲6個抽象層次,從高到低依次爲:系統層、算法層、寄存器傳輸層、邏輯層、電路層和版圖層。對每一層又分別有三種不同領域的描述:行爲域描述、結構域描述和物理域描述。

系統層是系統最高層次的抽象描述,針對於電子系統整體性能。算法層又稱爲行爲層,它是在系統級性能分析和結構劃分後對每個模塊的功能描述。算法層所描述的功能、行爲最終要用數字電路來實現。而數字電路本質上可視爲由寄存器和組合邏輯電路組成,其中寄存器負責信號存儲,組合邏輯電路負責信號傳輸。寄存器傳輸層描述正是從信號存儲、傳輸的角度去描述整個系統。寄存器和組合邏輯本質上是由邏輯門構成,邏輯層正是從邏輯門組合及連接角度去描述整個系統。

FPGA各個描述層次及綜合技術關係如圖1所示。傳統的綜合工具是將寄存器傳輸級(RTL)的描述轉化爲門級描述。隨着以行爲設計爲主要標誌的新一代系統設計理論的不斷成熟,能夠將系統行爲級描述轉化爲RTL描述的高層次綜合技術不斷涌現。

作爲現代集成電路設計的重點與熱點,FPGA設計一般採用自頂向下、由粗到細、逐步求精的方法。設計最頂層是指系統的整體要求,最下層是指具體的邏輯電路實現。自頂向下是將數字系統的整體逐步分解爲各個子系統和模塊,若子系統規模較大則進一步分解爲更小的子系統和模塊,層層分解,直至整個系統中各子模塊關係合理、便於設計實現爲止。