3 反熔絲FPGA 位流文件生成
位流文件生成算法所依托的FPGA 結(jié)構(gòu)是基于經(jīng)典反熔絲FPGA來設(shè)計(jì)的,FPGA中部為重復(fù)排列的FPGA邏輯單元, 呈4X 8 方式布置, 四周為I/0 模塊, 共24 個(gè)端口.根據(jù)反熔絲的燒寫方式, 編程器在位流文件下載完成后, 會(huì)將位流文件中需要燒通的反熔絲的位置信息傳到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 , 使得它們兩端的電壓不會(huì)超過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定了它可能會(huì)利用VCC , GND 等全局布線資源, 但是全局布線資源是不參與布線的, 所以在布線結(jié)果中, 并不會(huì)出現(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)能動(dòng)態(tài)修改位流文件, 這樣即使反熔絲的良率不能達(dá)到10 % , 電路還是可以在大部分情況下滿足使用要求。
評論