集系統(tǒng)級(jí)FPGA芯片XCV50E的結(jié)構(gòu)與開發(fā)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:FPGA 可配置邏輯塊 設(shè)計(jì)流程 配置
XCV50E是XILINX公司VirtexE系列系統(tǒng)級(jí)FPGA芯片中的一員。其主要資源有71693個(gè)系統(tǒng)門、65536位塊內(nèi)存和176個(gè)用戶I/O口(其中包括83對(duì)差分I/O口)。主要特性有:1.8V超低核心電壓、支持20種高速總線標(biāo)準(zhǔn)、八個(gè)全數(shù)字延遲鎖定環(huán)、0.18微米6層金屬工藝、支持IEEE 1149.1邊界掃描。VirtexE系列FPGA芯片具有卓越的整體性能和高速特性,是實(shí)現(xiàn)高速系統(tǒng)級(jí)設(shè)計(jì)的優(yōu)選芯片。下面以XCV50E為例,介紹VirtexE系列FPGA的結(jié)構(gòu)特性和開發(fā)流程。
1 XCV50E芯片的結(jié)構(gòu)
XCV50E芯片主要由四部分組成,其結(jié)構(gòu)圖如圖1所示,芯片中央是由16×24個(gè)可編程邏輯塊(CLB)構(gòu)成的CLB陣列,用以實(shí)現(xiàn)芯片的主要邏輯功能。芯片中16個(gè)4kB的塊內(nèi)存(Block RAM
或BRAM)組成4個(gè)塊內(nèi)存槽,位于CLK陣列的兩端及接近芯片中心的位置。塊內(nèi)存可用作高速RAM或FIFO。環(huán)繞CLB陣列的是叫做VersaRing的布線資源,它連接內(nèi)部的邏輯信號(hào)到輸入輸出單元。輸入輸出單元位于芯片周邊,用以實(shí)現(xiàn)不同標(biāo)準(zhǔn)信號(hào)(如LVDS、CMOS、GTL)間的和轉(zhuǎn)換。
1.1 可配置邏輯塊
可配置邏輯塊是FPGA的核心部分,主要用來實(shí)現(xiàn)各種邏輯功能。其內(nèi)部結(jié)構(gòu)見圖2所示。每個(gè)可配置邏輯塊包括左右兩個(gè)功能片。每個(gè)功能片包括兩個(gè)邏輯單元。每個(gè)邏輯單元由一個(gè)四輸入查找表(LUT)、一個(gè)進(jìn)位邏輯和一個(gè)寄存器組成。查找表可作為函數(shù)產(chǎn)生器來使用,也可用作高速16位移位寄存器或16×1的隨機(jī)存取內(nèi)存(RAM)。為擴(kuò)展芯片的邏輯功能,在每個(gè)功能片中還設(shè)有一個(gè)F5復(fù)選器,在每個(gè)邏輯塊中設(shè)有一個(gè)F6復(fù)選器,可分別用以實(shí)現(xiàn)9輸入的函數(shù)和19輸入的函數(shù)。
1.2 通用布線資源
芯片內(nèi)部與可配置邏輯塊陣列相匹配的是通用布線矩陣陣列(GRM)。GRM是開關(guān)矩陣,它用足夠的連線將對(duì)應(yīng)的可配置邏輯連接到相鄰可配置邏輯塊和部分遠(yuǎn)端的可配置邏輯塊。芯片內(nèi)有許多雙向長線分別橫貫和縱貫整個(gè)芯片,利用它們可以快速高效地分配信號(hào)。通過通用布線資源,各個(gè)可配置邏輯塊和塊內(nèi)存構(gòu)成了一個(gè)高速動(dòng)作的統(tǒng)一整體。
圖2
1.3 VersaRing布線資源
VersaRing環(huán)繞著芯片中央的CLB陣列,它將陣列信號(hào)與芯片I/O管腳相連。VersaRing以毫微秒級(jí)的速度將任一內(nèi)部邏輯信號(hào)連接到芯片的任一I/O管腳。正是由于XCV50E這種信號(hào)分配的任意性,使得XCV50E的設(shè)計(jì)工作可以與電路板制版并行進(jìn)行,從而大大縮短了開發(fā)周期。
1.4 延遲鎖存環(huán)(DLL)
芯片內(nèi)有八個(gè)延遲鎖定環(huán),借助它們可以實(shí)現(xiàn)高速零時(shí)延的時(shí)鐘信號(hào),延遲鎖定環(huán)的輸入時(shí)鐘范圍是25MHz~350MHz,輸出時(shí)鐘的傳輸時(shí)延為零,邊沿抖動(dòng)小于60ps。鎖定環(huán)可對(duì)時(shí)鐘進(jìn)行二倍頻或2~16倍分頻,并可進(jìn)行90o、180o、270o的移相操作。使用延遲鎖定環(huán)可有效解決高速應(yīng)用中信號(hào)的時(shí)滯和抖動(dòng)問題。
2 XCV50E的開發(fā)
筆者使用Xilin Foundation F4.1來開發(fā)
XCV50E芯片。Xilin Foundation F4.1是Xilinx公司主要的FPGA芯片開發(fā)平臺(tái)之一?;谠撈脚_(tái)可實(shí)現(xiàn)XCV50E芯片從設(shè)備構(gòu)想到此特流下載的全部過程。圖3所示是基于該平臺(tái)開發(fā)XCV50E的設(shè)計(jì)流程。該平臺(tái)的由設(shè)計(jì)入口工具、設(shè)計(jì)實(shí)現(xiàn)工具、設(shè)計(jì)驗(yàn)證工具三大部分構(gòu)成。設(shè)計(jì)入口工具接收各種圖形或文字的設(shè)計(jì)輸入,并最終生成網(wǎng)絡(luò)表文件。設(shè)計(jì)實(shí)現(xiàn)工具將網(wǎng)絡(luò)表轉(zhuǎn)化為配置比特流,并下載到器件。設(shè)計(jì)驗(yàn)證工具用來對(duì)設(shè)計(jì)中的邏輯關(guān)系及輸出結(jié)果進(jìn)行仿真和時(shí)序阻制分析。
對(duì)于系統(tǒng)級(jí)設(shè)計(jì),一般可以使用基于原理圖的層次化設(shè)計(jì),過程如下:先以系統(tǒng)結(jié)構(gòu)原理圖作為頂層圖,自上而下的構(gòu)造基于模塊的結(jié)構(gòu)子圖,同時(shí)自下而上的將結(jié)構(gòu)子圖的結(jié)構(gòu)子圖,同時(shí)自下而上的將結(jié)構(gòu)子圖具體體(用VHDL評(píng)議或元件互連關(guān)系表示出來),并對(duì)每個(gè)模塊和子圖進(jìn)行功能性仿零點(diǎn),以保證每層邏輯關(guān)系都是正確進(jìn)行功能性仿真,以保證每層邏輯關(guān)系都是正確的。頂層原理圖具體化并完成功能仿真后,再添加必要的輸入輸出元件,即可合成系統(tǒng)網(wǎng)絡(luò)表。之后,對(duì)系統(tǒng)網(wǎng)絡(luò)表進(jìn)行翻譯、映射、放置和布線,并利用流程引擎產(chǎn)生的時(shí)序信息進(jìn)行時(shí)序仿真和時(shí)序分析。然后采用修改入口設(shè)計(jì)、設(shè)置各種屬性和限制、調(diào)整其片布局等方法完善設(shè)計(jì),直到達(dá)到設(shè)計(jì)要求,最后將優(yōu)化后的配置比特流下載到FPGA芯片中。
3 XCV50E的應(yīng)用配置
XCV50E芯片是基于靜態(tài)RAM(SRAM)的FPGA,其配置信息必須固化到另外的可編程ROM(PROM)芯片中。系統(tǒng)加電后,XCV50E芯片首先從PROM中讀取配置信息并加載到配置內(nèi)存中。VirtexE系列芯片中支持四種配置模式,分別為主串行模式、從串行模式、并行模式和邊界掃描模式。
圖4是XCV50E在主串行模式的配置電路圖。圖中配置模式選擇位M2、M1、M0均連接到地;PROGRAM為FPGA配置控制信號(hào);FPGA的配置數(shù)據(jù)輸入管腳DIN連接到PROM芯片XC18V01的數(shù)據(jù)輸出腳DATA;初始化指示信號(hào)INIT用作XC08V01的復(fù)位信號(hào);配置完成信號(hào)DONE用作PROM的片選信號(hào)。配置過程如下:當(dāng)系統(tǒng)加電并且PROGRAM首腳升高后,配置過程開始,XCV50E首先進(jìn)行內(nèi)部的初始經(jīng),初始化完成后,VCV50E釋放INIT管腳,并從下一個(gè)配置時(shí)鐘的上升沿開始從PROM中讀入配置數(shù)據(jù)流;全部數(shù)據(jù)讀完后,F(xiàn)PGA發(fā)出配置結(jié)束信號(hào)DONE來關(guān)閉PROM,配置過程結(jié)束。下一個(gè)時(shí)鐘起,XCV50E運(yùn)行啟動(dòng)進(jìn)程,之后就可以按設(shè)定的程序工作了。圖5給出了XCV50E的配置流程圖。