一、概述
FPGA是可編程邏輯器件的一種,本質(zhì)上是一種高密度可編程邏輯器件。
FPGA的靈活性高、開發(fā)周期短、并行性高、具備可重構(gòu)特性,是一種廣泛應(yīng)用的半定制電路。
FPGA的原理
采用基于SRAM工藝的查位表結(jié)構(gòu)(LUT),LUT用于實(shí)現(xiàn)實(shí)際邏輯電路的功能,LUT本質(zhì)上是一個(gè)RAM,事先將相應(yīng)的結(jié)果存放于一個(gè)存儲單元,輸入信號進(jìn)行邏輯計(jì)算就等于輸入一個(gè)地址進(jìn)行查表,將地址對應(yīng)內(nèi)容輸入。
FPGA綜合工具完成Verilog語言描述、邏輯網(wǎng)表到LUT實(shí)現(xiàn)的過程。即用戶通過原理圖或者HDL語言描述一個(gè)邏輯電路后,F(xiàn)PGA開發(fā)軟件會自動計(jì)算邏輯電路的所有可能結(jié)果,并把真值表(結(jié)果)事先寫入LUT的RAM中,EDA工具生成的燒進(jìn)FPGA的bitstream文件。
FPGA的結(jié)構(gòu)
FPGA內(nèi)部有多中部件,如DSP、Memory(BLOCK RAM/BLOCK ROM)、布線資源、可編程輸入單元等,但最基本單元式CLB邏輯塊,CLB的組成有查找表LUT,寄存器Flip-flop,多路選擇器Mux。
CLB
LUT是FPGA用于實(shí)現(xiàn)組合邏輯電路的器件,具體作用是存儲組合邏輯電路計(jì)算的所有結(jié)果通過LUT代替組合邏輯,而LUT中的值只和輸入有關(guān),因此FPGA中組合邏輯的功能由輸入決定,不再和復(fù)雜度有關(guān);LUT實(shí)現(xiàn)的組合邏輯的延遲是固定的
Mux
多路選擇,配合LUT實(shí)現(xiàn)根據(jù)輸入選擇結(jié)果
FPGA中全局時(shí)鐘資源
大型設(shè)計(jì)一般推薦使用同步時(shí)序電路。同步時(shí)序電路基于時(shí)鐘觸發(fā)沿設(shè)計(jì),對時(shí)鐘的周期、占空比、延時(shí)和抖動提出了更高的要求。為了滿足同步時(shí)序設(shè)計(jì)的要求,一般在FPGA設(shè)計(jì)中采用全局時(shí)鐘資源驅(qū)動設(shè)計(jì)的主時(shí)鐘,以達(dá)到最低的時(shí)鐘抖動和延遲。與全局時(shí)鐘資源相關(guān)的原語常用的與全局時(shí)鐘資源相關(guān)的Xilinx器件原語包括:IBUFG、IBUFGDS、BUFG、BUFGP、BUFGCE、BUFGMUX、BUFGDLL和DCM
IBUFG:輸入全局緩沖,是與專用全局時(shí)鐘輸入管腳相連接的首級全局緩沖。所有從全局時(shí)鐘管腳輸入的信號必須經(jīng)過IBUF元,否則在布局布線時(shí)會報(bào)錯(cuò)。 IBUFG支持AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI、LVDS、LVPECL、LVTTL、PCI、PCIX和 SSTL等多種格式的IO標(biāo)準(zhǔn)。
IBUFGDS:IBUFG的差分形式,當(dāng)信號從一對差分全局時(shí)鐘管腳輸入時(shí),必須使用IBUFGDS作為全局時(shí)鐘輸入緩沖。
BUFG:全局緩沖,它的輸入是IBUFG的輸出,BUFG的輸出到達(dá)FPGA內(nèi)部的IOB、CLB、選擇性塊RAM的時(shí)鐘延遲和抖動最小。
BUFGCE:帶有時(shí)鐘使能端的全局緩沖。它有一個(gè)輸入I、一個(gè)使能端CE和一個(gè)輸出端O。只有當(dāng)BUFGCE的使能端CE有效(高電平)時(shí),BUFGCE才有輸出。
BUFGMUX:全局時(shí)鐘選擇緩沖,它有I0和I1兩個(gè)輸入,一個(gè)控制端S,一個(gè)輸出端O。當(dāng)S為低電平時(shí)輸出時(shí)鐘為I0,反之為I1。需要指出的是BUFGMUX的應(yīng)用十分靈活,I0和I1兩個(gè)輸入時(shí)鐘甚至可以為異步關(guān)系
BUFGP:相當(dāng)于IBUG加上BUFG。
BUFGDLL:全局緩沖延遲鎖相環(huán),相當(dāng)于BUFG與DLL的結(jié)合。BUFGDLL在早期設(shè)計(jì)中經(jīng)常使用,用以完成全局時(shí)鐘的同步和驅(qū)動等功能。隨著數(shù)字時(shí)鐘管理單元(DCM)的日益完善,目前BUFGDLL的應(yīng)用已經(jīng)逐漸被DCM所取代。
DCM:數(shù)字時(shí)鐘管理單元,主要完成時(shí)鐘的同步、移相、分頻、倍頻和去抖動等。DCM與全局時(shí)鐘有著密不可分的聯(lián)系,為了達(dá)到最小的延遲和抖動,幾乎所有的DCM應(yīng)用都要使用全局緩沖資源。DCM可以用Xilinx ISE軟件中的Architecture Wizard直接生成。
FPGA工作流程
邏輯設(shè)計(jì)驗(yàn)證 =》 綜合 =》 實(shí)現(xiàn) =》 編程與調(diào)試
綜合
將高層次FPGA設(shè)計(jì)轉(zhuǎn)化為邏輯鏈接網(wǎng)表的過程。
綜合過程將會檢查代碼語法并分析設(shè)計(jì)層次結(jié)構(gòu),并針對用戶選定的器件進(jìn)行優(yōu)化,綜合結(jié)束產(chǎn)生硬件資源估算,但不一定準(zhǔn)確
實(shí)現(xiàn)
通過翻譯、映射、布局布線等過程將邏輯設(shè)計(jì)進(jìn)一步轉(zhuǎn)譯為可以下載燒錄到FPGA器件的特定物理文件格式的過程。
翻譯過程是將所有的輸入網(wǎng)表和約束條件組合成一個(gè)邏輯設(shè)計(jì)文件,這些信息被保存為NGD文件
映射是將帶有邏輯原酸的整個(gè)電路劃分為子塊,一遍可以被裝入到FPGA邏輯塊中。該過程將NGD文件定義的邏輯適用于FPGA,并生成一個(gè)NCD文件。
布局布線是確定FPGA中邏輯單元的位置,確定單元間的連線。
二、Xilinx FPGA開發(fā)
Vivado使用
FPGA開發(fā)——vivado使用文章來源:http://www.zghlxwxcb.cn/news/detail-798727.html
FPGA開發(fā)項(xiàng)目list
本科比賽項(xiàng)目
Triumphcore FPGA調(diào)測試記錄文章來源地址http://www.zghlxwxcb.cn/news/detail-798727.html
到了這里,關(guān)于FPGA開發(fā)設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!