摘要: 反熔絲FPGA 制造困難且多用在特殊用途領(lǐng)域, 因此有關(guān)其位流文件的研究很少.本文首先介紹了反熔絲FPGA 及FPGA CAD 軟件流程, 接著描述了反熔絲FPGA 具體結(jié)構(gòu)并通過一個(gè)具體例子說明了如何配置反熔絲FPGA , 然后討論了反熔絲FPGA的編程方法, 由此引出了位流文件的格式和反熔絲單元編程信息格式, 最后提出了反熔絲FPGA 位流文件生成算法并在實(shí)驗(yàn)平臺實(shí)現(xiàn)了該算法。
1 引言
FPGA (現(xiàn)場可編程門陣列)是與CPU 和DSP并列的目前半導(dǎo)體市場上最重要的三類核心數(shù)字器件之一反熔絲FPGA 由于其可靠性高抗輻射等優(yōu)點(diǎn), 成為空間領(lǐng)域使用的主流FPGA。
典型FPGA 的CAD 流程包括邏輯綜合, 工藝映射與打包, 布局, 布線, 時(shí)序分析和位流生成幾個(gè)步驟.邏輯綜合負(fù)責(zé)將硬件描述語言或者原理圖形式描述的電路轉(zhuǎn)化為基本門網(wǎng)表, 并進(jìn)行工藝無關(guān)的邏輯優(yōu)化.工藝映射將于工藝無關(guān)的門級網(wǎng)表轉(zhuǎn)換成目標(biāo)FPGA 的邏輯單元構(gòu)成的網(wǎng)表布局工具確定了實(shí)現(xiàn)電路功能需要的各邏輯單元在FPGA中的具體位置.布線工具根據(jù)布局的結(jié)果, 利用適當(dāng)?shù)牟季€資源, 連接各邏輯單元的輸人輸出引腳。FPGA位流文件(bit一stream )是指對可編程邏輯器件進(jìn)行配置的二進(jìn)制數(shù)據(jù)集, 這個(gè)數(shù)據(jù)集決定了FPGA的具體功能.位流文件具體描述了需要配置的反熔絲的信息, 編程器通過這些信息即可編程FPGA生成目標(biāo)電路.由于沒有具體的資料可供參考,且當(dāng)前FPGA 架構(gòu)存在多樣性的特點(diǎn), 位流文件設(shè)計(jì)的通用性不強(qiáng),故而只能從位流文件的基本原理與反熔絲FPGA 的結(jié)構(gòu)出發(fā)川, 按照軟件工程的方法針對反熔絲FPGA進(jìn)行位流生成算法設(shè)計(jì)。
2 反熔絲FPGA 結(jié)構(gòu)及配置方法
配置FPGA大致可分為對邏輯單元配置!布線開關(guān)配置以及輸人輸出單元配置這三部分, 對于細(xì)顆粒反熔絲FPGA 來說, 由于邏輯單元是定制的,即無需配置的, 其實(shí)現(xiàn)不同邏輯的能力不是依靠邏輯單元本身, 而是通過選擇其各個(gè)輸人引腳與布線資源之間進(jìn)行不同的連接來實(shí)現(xiàn)。
圖1 所示為一個(gè)典型的細(xì)顆粒FPGA邏輯單元, 由于選擇器可實(shí)現(xiàn)任意邏輯的性質(zhì), 對多個(gè)選擇器進(jìn)行適當(dāng)組合, 構(gòu)成一個(gè)邏輯單元.圖2 所示該邏輯單元可以通過與布線資源的布通排列組合來實(shí)現(xiàn)數(shù)目巨大的邏輯門。
?
下面介紹一個(gè)具體的配置邏輯單元的例子, 如果需要實(shí)現(xiàn)式(1) 邏輯
同理對于I/( )端口, 可以通過對每個(gè)端口的輸人、輸出引腳和布線資源的連接進(jìn)行配置即可決定
其是輸人端口還是輸出端口. 由此可見, 對細(xì)顆粒反熔絲FPGA 進(jìn)行配置,實(shí)際上就是對布線資源進(jìn)行配置.因此生成位流配置文件也大為簡化, 只需要對FPGA 內(nèi)部需要配置的反熔絲信息進(jìn)行整合, 即可得到所需要的位流文件。
3 反熔絲FPGA 位流文件生成
位流文件生成算法所依托的FPGA 結(jié)構(gòu)是基于經(jīng)典反熔絲FPGA來設(shè)計(jì)的,FPGA中部為重復(fù)排列的FPGA邏輯單元, 呈4X 8 方式布置, 四周為I/0 模塊, 共24 個(gè)端口.根據(jù)反熔絲的燒寫方式, 編程器在位流文件下載完成后, 會將位流文件中需要燒通的反熔絲的位置信息傳到FPGA內(nèi)部寄存器中, 通過FPGA內(nèi)部的外圍尋址電路選擇要燒通的反熔絲.而在芯片內(nèi)部, 要將一個(gè)反熔絲燒通,必須建立相應(yīng)的高壓電路連接, 如圖4 所示.使反熔絲一端接Vpp , 一端接GND , 而這又是通過打開適當(dāng)?shù)臋M向和縱向的傳輸管來實(shí)現(xiàn)的.在不需要編程的反熔絲的所在的軌道端點(diǎn)都加Vpp/2 , 使得它們兩端的電壓不會超過VP/2 , 從而保護(hù)不要編程的反熔絲, 防止其被意外燒通.使用圖5 的編程方式的優(yōu)勢是一個(gè)坐標(biāo)的橫向或縱向的傳輸管控制線都只需要一根, 而這一根橫向或縱向的線恰恰就是反熔絲在整個(gè)反熔絲陣列中的橫坐標(biāo)和縱坐標(biāo).因此, 可以結(jié)合CAD 流程中產(chǎn)生的工藝映射網(wǎng)表文件, 布局結(jié)果文件, 布線結(jié)果文件, 以及FPGA 的具體電路設(shè)計(jì), 精確的確定反熔絲的橫縱坐標(biāo), 得到橫縱坐標(biāo)后, 再由編程電路進(jìn)行尋址編程川。
在確定下反熔絲的坐標(biāo)位置后, 還需注意到兩種反熔絲的編程方式.第一種為處于橫縱連線交叉處的反熔絲, 負(fù)責(zé)橫向布線資源與縱向布線資源之間的連接. 由于兩種反熔絲的具體編程過程不同,故位流生成算法在生成反熔絲信息時(shí), 除了坐標(biāo), 還需要提供反熔絲類型信息.綜上所述, 設(shè)計(jì)的反熔絲FPGA 位流文件生成算法的輸出文件將采取圖6 的文件格式。
其中,具體的反熔絲信息格式如圖7一幀反熔絲信息長度為兩個(gè)字節(jié).其中14 位為位置信息, X ,Y 坐標(biāo)各7 位, 表示反熔絲類型的TyPe 為兩位,'00'代表交叉類型, '11'代表單向類型。
為了生成位流文件, 需要收集CAD 流程前幾個(gè)階段的結(jié)果, 生成FPGA 內(nèi)部需要配置的反熔絲集合的相關(guān)信息.因此設(shè)計(jì)的反熔絲FPGA 位流生成算法以工藝映射后的網(wǎng)表和布局布線的結(jié)果文件作為算法輸人.另一方面, 以能夠被編程器識別的,包含全部反熔絲編程信息的編程文件作為輸出。
對于反熔絲FPGA邏輯單元來說, 其實(shí)現(xiàn)邏輯的方式?jīng)Q定了它可能會利用VCC , GND 等全局布線資源, 但是全局布線資源是不參與布線的, 所以在布線結(jié)果中, 并不會出現(xiàn)VCC , GND 與邏輯單元引腳的連接信息.為了解決這一問題, 算法還需利用到工藝映射生成的網(wǎng)表文件來得到邏輯單元引腳與VCC 和GND 之間的連接信息, 再根據(jù)邏輯單元的布局位置信息, 來對所需要使用的布線開關(guān)進(jìn)行精確的定位。要根據(jù)布線結(jié)果計(jì)算反熔絲信息, 處于不同位置的反熔絲橫縱坐標(biāo)計(jì)算方法往往不同.例如,如果要計(jì)算一個(gè)輸出1/ 0 端口的輸人和一個(gè)普通邏輯單元的輸入, 在得到其目標(biāo)邏輯單元的地址后,由于相對于左下角的坐標(biāo)原點(diǎn), 其所要經(jīng)過的橫向和縱向的連線數(shù)目(即坐標(biāo))計(jì)算方法顯然不同, 故而必須對FPGA 硬件電路做出適當(dāng)?shù)膭澐? 而這個(gè)劃分, 也就成為了位流生成算法的核心。
經(jīng)過分析, 在圖8 中, 可以將整個(gè)芯片劃分為A , B ,C , D , E 五個(gè)區(qū)域, 在這五個(gè)區(qū)域內(nèi)的所有模塊共享同一種坐標(biāo)計(jì)算方法.現(xiàn)在, 在對布線結(jié)果進(jìn)行處理時(shí), 首先需要判斷其在芯片中的所屬區(qū)域, 然
后再對應(yīng)的調(diào)用坐標(biāo)計(jì)算函數(shù)即可.圖9 是細(xì)顆粒反熔絲FPGA 位流生成算法的偽代碼. 圖10 是最
終生成的反熔絲FPGA 位流文件的圖形化顯示, 便于需要時(shí)查看。
?
4 結(jié)束語
在介紹了FPGA CAD 軟件流程后, 通過具體例子描述了反熔絲FPGA具體結(jié)構(gòu)并展示了如何配置反熔絲FPGA , 然后討論了反熔絲FPGA 的編程方式.最后引出了位流文件的格式和反熔絲單元編程信息格式, 提出并實(shí)現(xiàn)了反熔絲FPGA 位流文件生成算法, 以圖形化形式對位流文件信息進(jìn)行了顯示.為了完成實(shí)用的反熔絲FPGA CAD系統(tǒng), 對于位流文件的研究還有很多工作要做.第一, 位流文件還需要根據(jù)具體的反熔絲FPGA 的編程電路的具體實(shí)現(xiàn)而進(jìn)行修改, 以適應(yīng)具體的電路要求.位流文件必須與FPGA 內(nèi)部的解碼編程電路相配套, 共同對反熔絲進(jìn)行尋址和燒錄.第二, 位流文件的生成還應(yīng)該考慮增強(qiáng)對反熔絲進(jìn)行容錯(cuò)的能力, 即當(dāng)某個(gè)反熔絲由于工藝等原因失效不能編程后, 配置軟件應(yīng)能動態(tài)修改位流文件, 這樣即使反熔絲的良率不能達(dá)到10 % , 電路還是可以在大部分情況下滿足使用要求。
評論