<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > FPGA組成、工作原理和開(kāi)發(fā)流程

FPGA組成、工作原理和開(kāi)發(fā)流程

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

1. 概述

本文引用地址:http://dyxdggzs.com/article/201610/307821.htm

是英文Field Programmable Gate Array的縮寫(xiě),即現場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、EPLD等可編程器件的基礎上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數有限的缺點(diǎn)

2. 芯片結構

FPGA芯片主要由三部分組成,分別是IOE(input output element,輸入輸出單元)、LAB(logic array block,邏輯陣列塊,對于Xilinx稱(chēng)之為可配置邏輯塊CLB)和Interconnect(內部連接線(xiàn))。

2.1 IOE

IOE是芯片與外部電路的物理接口,主要完成不同電氣特性下輸入/輸出信號的驅動(dòng)與匹配要求,比如從基本的LVTTL/LVCMOS接口到PCI/LVDS/RSDS甚至各種各樣的差分接口,從5V兼容到3.3V/2.5V/1.8V/1.5V的電平接口,下面是ALTERA公司的Cyclone IV EP4CE115F29設備的IOE結構

1.jpg

圖1 EP4CE115F29設備的IOE結構圖

FPGA的IOE按組分類(lèi),每組都能夠獨立地支持不同的I/O標準,通過(guò)軟件的靈活配置,可匹配不同的電器標準與IO物理特性,而且可以調整驅動(dòng)電流的大小,可以改變上/下拉電阻,Cyclone IV設備有8個(gè)IO blank(組),見(jiàn)下圖:

2.jpg

圖2 Cyclone IV設備的IO組

2.2 LAB

LAB是FPGA的基本邏輯單元,其實(shí)際的數量和特性依據所采用的器件的不同而不同,EP4CE115F29設備的每個(gè)LAB的布局包括16個(gè)LE、LAB控制信號、LE carry chains、Register chains和Local interconnect,其LAB結構圖如下:

3.jpg

圖3 LAB結構圖

LE是Cyclone IV設備最小的邏輯單元,每個(gè)LE主要有LUT和寄存器組成的,

4.jpg

圖4 LE的結構圖

查找表LUT(Look-Up-Table)其本質(zhì)是一個(gè)靜態(tài)存儲器SRAM,目前FPGA多采用4輸入的LUT,每個(gè)LUT可以看作一個(gè)有4位地址線(xiàn)的16x1的RAM。當我們通過(guò)原理圖或HDL語(yǔ)言描述了一個(gè)邏輯電路后,FPGA開(kāi)發(fā)軟件會(huì )自動(dòng)計算邏輯電路的所有可能的結果,并把結果事先寫(xiě)入RAM。這樣,在FPGA工作時(shí),每輸入一個(gè)信號進(jìn)行邏輯運算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對應的內容,然后輸出。

5.jpg

圖5 LUT的實(shí)現原理圖

2.3 Interconnect

FPGA內部連接線(xiàn)很豐富,根據數據手冊的描述,主要有圖3中的Row interconnect、column interconnect、Direct link interconnect、和Local interconnect和Register chain interconnect(寄存器之間連接的連接線(xiàn))。

內部連接線(xiàn)聯(lián)通FPGA內部的所有單元,而連線(xiàn)的長(cháng)度和工藝決定著(zhù)信號再連接線(xiàn)上的驅動(dòng)能力和傳輸速度。在實(shí)際開(kāi)發(fā)中,設計者不需要直接選擇連接線(xiàn),布局布線(xiàn)器可自動(dòng)地根據輸入邏輯網(wǎng)表(這由綜合生成)的拓撲結構和約束條件選擇連接線(xiàn)來(lái)連通各個(gè)邏輯單元,所以,從本質(zhì)上來(lái)說(shuō),布線(xiàn)資源的使用方法和設計的結果有密切和直接、直接的關(guān)系。

3. FPGA

FPGA利用小型查找表(16×1RAM)來(lái)實(shí)現組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端(見(jiàn)圖4),觸發(fā)器再來(lái)驅動(dòng)其他邏輯電路或驅動(dòng)I/O,由此構成了既可實(shí)現組合邏輯功能又可實(shí)現時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線(xiàn)互相連接或連接到I/O模塊。FPGA的邏輯是通過(guò)向內部靜態(tài)存儲單元加載編程數據來(lái)實(shí)現的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現的功能,FPGA允許無(wú)限次的編程。

4. FPGA

原理圖和HDL(Hardware description language,硬件描述語(yǔ)言)是兩種最常用的數字硬件電路描述方法,其中HDL設計法具有更好的可移植性、通用性和模塊劃分與重用性的特點(diǎn),在目前的工程設計中被廣泛使用,下面對FPGA設計熟悉電路時(shí)的是基于HDL的。

6.jpg

圖6 FPGA的

1) 系統功能設計

在系統設計之前,首先要進(jìn)行的是方案論證、系統設計和FPGA芯片選擇等準備工作。系統工程師根據任務(wù)要求,如系統的指標和復雜度,對工作速度和芯片本身的各種資源、成本等方面進(jìn)行權衡,選擇合理的設計方案和合適的器件類(lèi)型。一般都采用自頂向下的設計方法,把系統分成若干個(gè)基本單元,然后再把每個(gè)基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接使用EDA元件庫為止。

2) RTL級HDL設計

RTL級(Register Transfer Level,寄存器傳輸級)指不關(guān)注寄存器和組合邏輯的細節(如使用了多少個(gè)邏輯門(mén)、邏輯門(mén)的連接拓撲結構等),通過(guò)描述數據在寄存器之間的流動(dòng)和如何處理、控制這些數據流動(dòng)的模型的HDL設計方法。RTL級比門(mén)級更抽象,同時(shí)也更簡(jiǎn)單和高效。RTL級的最大特點(diǎn)是可以直接用綜合工具將其綜合成為門(mén)級網(wǎng)表,其中RTL級設計直接決定著(zhù)系統的功能和效率。

3) RTL級仿真

也稱(chēng)為功能(行為)仿真,或是綜合前仿真,是在編譯之前對用戶(hù)所設計的電路進(jìn)行邏輯功能驗證,此時(shí)的仿真沒(méi)有延遲信息,僅對初步的功能進(jìn)行檢測。仿真前,要先利用波形編輯器和HDL等建立波形文件和測試向量(即將所關(guān)心的輸入信號組合成序列),仿真結果將會(huì )生成報告文件和輸出信號波形,從中便可以觀(guān)察各個(gè)節點(diǎn)信號的變化。如果發(fā)現錯誤,則返回設計修改邏輯設計。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等軟件。雖然功能仿真不是FPGA開(kāi)發(fā)過(guò)程中的必需步驟,但卻是系統設計中最關(guān)鍵的一步。

為了提高功能仿真的效率,需要建立測試平臺testbench,其測試激勵一般使用行為級HDL語(yǔ)言描述,其中RTL級模塊是可綜合的,它是行為級模塊的一個(gè)子集合。

4) 綜合

所謂綜合就是將較高級抽象層次的描述轉化成較低層次的描述。綜合優(yōu)化根據目標與要求優(yōu)化所生成的邏輯連接,使層次設計平面化,供FPGA布局布線(xiàn)軟件進(jìn)行實(shí)現。就目前的層次來(lái)看,綜合優(yōu)化(Synthesis)是指將設計輸入編譯成由與門(mén)、或門(mén)、非門(mén)、RAM、觸發(fā)器等基本邏輯單元組成的邏輯連接網(wǎng)表,而并非真實(shí)的門(mén)級電路。真實(shí)具體的門(mén)級電路需要利用FPGA制造商的布局布線(xiàn)功能,根據綜合后生成的標準門(mén)級結構網(wǎng)表來(lái)產(chǎn)生。為了能轉換成標準的門(mén)級結構網(wǎng)表,HDL程序的編寫(xiě)必須符合特定綜合器所要求的風(fēng)格。由于門(mén)級結構、RTL級的HDL程序的綜合是很成熟的技術(shù),所有的綜合器都可以支持到這一級別的綜合。常用的綜合工具有Synplicity公司的Synplify/Synplify Pro軟件以及各個(gè)FPGA廠(chǎng)家自己推出的綜合開(kāi)發(fā)工具。

5) 門(mén)級仿真

也稱(chēng)為綜合后仿真,綜合后仿真檢查綜合結果是否和原設計一致。在仿真時(shí),把綜合生成的標準延時(shí)文件反標注到綜合仿真模型中去,可估計門(mén)延時(shí)帶來(lái)的影響。但這一步驟不能估計線(xiàn)延時(shí),因此和布線(xiàn)后的實(shí)際情況還有一定的差距,并不十分準確。目前的綜合工具較為成熟,對于一般的設計可以省略這一步,但如果在布局布線(xiàn)后發(fā)現電路結構和設計意圖不符,則需要回溯到綜合后仿真來(lái)確認問(wèn)題之所在。在功能仿真中介紹的軟件工具一般都支持綜合后仿真。

6) 布局布線(xiàn)

實(shí)現是將綜合生成的邏輯網(wǎng)表配置到具體的FPGA芯片上,將工程的邏輯和時(shí)序與器件的可用資源匹配。布局布線(xiàn)是其中最重要的過(guò)程,布局將邏輯網(wǎng)表中的硬件原語(yǔ)和底層單元合理地配置到芯片內部的固有硬件結構上,并且往往需要在速度最優(yōu)和面積最優(yōu)之間作出選擇。布線(xiàn)根據布局的拓撲結構,利用芯片內部的各種連線(xiàn)資源,合理正確地連接各個(gè)元件。也可以簡(jiǎn)單地將布局布線(xiàn)理解為對FPGA內部查找表和寄存器資源的合理配置,布局可以被理解挑選可實(shí)現設計網(wǎng)表的最優(yōu)的資源組合,而布線(xiàn)就是將這些查找表和寄存器資源以最優(yōu)方式連接起來(lái)。

目前,FPGA的結構非常復雜,特別是在有時(shí)序約束條件時(shí),需要利用時(shí)序驅動(dòng)的引擎進(jìn)行布局布線(xiàn)。布線(xiàn)結束后,軟件工具會(huì )自動(dòng)生成報告,提供有關(guān)設計中各部分資源的使用情況。由于只有FPGA芯片生產(chǎn)商對芯片結構最為了解,所以布局布線(xiàn)必須選擇芯片開(kāi)發(fā)商提供的工具。

7) 時(shí)序仿真

是指將布局布線(xiàn)的延時(shí)信息反標注到設計網(wǎng)表中來(lái)檢測有無(wú)時(shí)序違規(即不滿(mǎn)足時(shí)序約束條件或器件固有的時(shí)序規則,如建立時(shí)間、保持時(shí)間等)現象。時(shí)序仿真包含的延遲信息最全,也最精確,能較好地反映芯片的實(shí)際工作情況。由于不同芯片的內部延時(shí)不一樣,不同的布局布線(xiàn)方案也給延時(shí)帶來(lái)不同的影響。因此在布局布線(xiàn)后,通過(guò)對系統和各個(gè)模塊進(jìn)行時(shí)序仿真,分析其時(shí)序關(guān)系,估計系統性能,以及檢查和消除競爭冒險是非常有必要的。

8) FPGA板級調試

通過(guò)編程器將布局布線(xiàn)后的配置文件下載至FPGA中,對其硬件進(jìn)行編程。配置文件一般為.pof或.sof文件格式,下載的方式包括AS(主動(dòng))、PS(被動(dòng))、JTAG(邊界掃描)等方式。

邏輯分析儀(Logic Analyzer,LA)是FPGA設計的主要調試工具,但需要引出大量的測試管腳,且LA價(jià)格昂貴。目前,主流的FPGA芯片生產(chǎn)商都提供了內嵌的在線(xiàn)邏輯分析儀(如Xilinx ISE中的ChipScope、Altera QuartusII中的SignalTapII以及SignalProb)來(lái)解決上述矛盾,它們只需要占用芯片少量的邏輯資源,具有很高的實(shí)用價(jià)值。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>