3 反熔絲FPGA 位流文件生成
位流文件生成算法所依托的FPGA 結構是基于經典反熔絲FPGA來設計的,FPGA中部為重復排列的FPGA邏輯單元, 呈4X 8 方式布置, 四周為I/0 模塊, 共24 個端口.根據反熔絲的燒寫方式, 編程器在位流文件下載完成后, 會將位流文件中需要燒通的反熔絲的位置信息傳到FPGA內部寄存器中, 通過FPGA內部的外圍尋址電路選擇要燒通的反熔絲.而在芯片內部, 要將一個反熔絲燒通,必須建立相應的高壓電路連接, 如圖4 所示.使反熔絲一端接Vpp , 一端接GND , 而這又是通過打開適當的橫向和縱向的傳輸管來實現的.在不需要編程的反熔絲的所在的軌道端點都加Vpp/2 , 使得它們兩端的電壓不會超過VP/2 , 從而保護不要編程的反熔絲, 防止其被意外燒通.使用圖5 的編程方式的優勢是一個坐標的橫向或縱向的傳輸管控制線都只需要一根, 而這一根橫向或縱向的線恰恰就是反熔絲在整個反熔絲陣列中的橫坐標和縱坐標.因此, 可以結合CAD 流程中產生的工藝映射網表文件, 布局結果文件, 布線結果文件, 以及FPGA 的具體電路設計, 精確的確定反熔絲的橫縱坐標, 得到橫縱坐標后, 再由編程電路進行尋址編程川。
在確定下反熔絲的坐標位置后, 還需注意到兩種反熔絲的編程方式.第一種為處于橫縱連線交叉處的反熔絲, 負責橫向布線資源與縱向布線資源之間的連接. 由于兩種反熔絲的具體編程過程不同,故位流生成算法在生成反熔絲信息時, 除了坐標, 還需要提供反熔絲類型信息.綜上所述, 設計的反熔絲FPGA 位流文件生成算法的輸出文件將采取圖6 的文件格式。
其中,具體的反熔絲信息格式如圖7一幀反熔絲信息長度為兩個字節.其中14 位為位置信息, X ,Y 坐標各7 位, 表示反熔絲類型的TyPe 為兩位,'00'代表交叉類型, '11'代表單向類型。
為了生成位流文件, 需要收集CAD 流程前幾個階段的結果, 生成FPGA 內部需要配置的反熔絲集合的相關信息.因此設計的反熔絲FPGA 位流生成算法以工藝映射后的網表和布局布線的結果文件作為算法輸人.另一方面, 以能夠被編程器識別的,包含全部反熔絲編程信息的編程文件作為輸出。
對于反熔絲FPGA邏輯單元來說, 其實現邏輯的方式決定了它可能會利用VCC , GND 等全局布線資源, 但是全局布線資源是不參與布線的, 所以在布線結果中, 并不會出現VCC , GND 與邏輯單元引腳的連接信息.為了解決這一問題, 算法還需利用到工藝映射生成的網表文件來得到邏輯單元引腳與VCC 和GND 之間的連接信息, 再根據邏輯單元的布局位置信息, 來對所需要使用的布線開關進行精確的定位。要根據布線結果計算反熔絲信息, 處于不同位置的反熔絲橫縱坐標計算方法往往不同.例如,如果要計算一個輸出1/ 0 端口的輸人和一個普通邏輯單元的輸入, 在得到其目標邏輯單元的地址后,由于相對于左下角的坐標原點, 其所要經過的橫向和縱向的連線數目(即坐標)計算方法顯然不同, 故而必須對FPGA 硬件電路做出適當的劃分, 而這個劃分, 也就成為了位流生成算法的核心。
經過分析, 在圖8 中, 可以將整個芯片劃分為A , B ,C , D , E 五個區域, 在這五個區域內的所有模塊共享同一種坐標計算方法.現在, 在對布線結果進行處理時, 首先需要判斷其在芯片中的所屬區域, 然
后再對應的調用坐標計算函數即可.圖9 是細顆粒反熔絲FPGA 位流生成算法的偽代碼. 圖10 是最
終生成的反熔絲FPGA 位流文件的圖形化顯示, 便于需要時查看。
?
4 結束語
在介紹了FPGA CAD 軟件流程后, 通過具體例子描述了反熔絲FPGA具體結構并展示了如何配置反熔絲FPGA , 然后討論了反熔絲FPGA 的編程方式.最后引出了位流文件的格式和反熔絲單元編程信息格式, 提出并實現了反熔絲FPGA 位流文件生成算法, 以圖形化形式對位流文件信息進行了顯示.為了完成實用的反熔絲FPGA CAD系統, 對于位流文件的研究還有很多工作要做.第一, 位流文件還需要根據具體的反熔絲FPGA 的編程電路的具體實現而進行修改, 以適應具體的電路要求.位流文件必須與FPGA 內部的解碼編程電路相配套, 共同對反熔絲進行尋址和燒錄.第二, 位流文件的生成還應該考慮增強對反熔絲進行容錯的能力, 即當某個反熔絲由于工藝等原因失效不能編程后, 配置軟件應能動態修改位流文件, 這樣即使反熔絲的良率不能達到10 % , 電路還是可以在大部分情況下滿足使用要求。
評論
查看更多