徐陽
(寧省盤錦市職業(yè)技術學院,遼寧 盤錦 124010)
FPGA是一類高集成度的可編程邏輯器件,起源于美國的Xilinx公司,在這二十年的發(fā)展過程中,F(xiàn)PGA的硬件體系結構和軟件開發(fā)工具都在不斷的完善,日趨成熟。FPGA結合了微電子技術、電路技術、EDA技術,使設計者可以集中精力進行所需邏輯功能的設計,縮短設計周期,提高設計質量。
設計輸入就是指設計人員將所設計的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并輸入計算機的過程。
這里芯片數(shù)據(jù)庫的設計目標是做成支持把硬件部分設計的結構轉換成軟件部分可識別的格式,提供軟件設計其它步驟所需要的數(shù)據(jù),從而進行軟件部分的處理。與一般意義上的數(shù)據(jù)庫不同,芯片數(shù)據(jù)庫還要考慮如何表示FPGA芯片的內部結構。
邏輯綜合,是將較高抽象層次的描述自動轉換到較低層次描述的一種方法。這里是指將RTL級的描述轉換為門級網(wǎng)表的過程。邏輯綜合要求的輸入除RTL描述的程序模塊或者原理圖文件或波形文件外,還需要另外兩個輸入文件,一個是綜合工具支持的工藝庫,這些工藝庫包含一些標準的單元,在綜合時,綜合工具會將RTL級代碼描述的設計用工藝庫中的標準單元轉化為邏輯電路;另一種輸入是約束條件,用于決定綜合過程中的邏輯優(yōu)化方法,約束條件一般包含時序、面積、速度、功耗、負載要求和優(yōu)化方法等,甚至還包含綜合時需要注意的設計規(guī)則。
根據(jù)綜合生成的網(wǎng)表,將用戶設計嵌入FPGA芯片。這里的嵌入,實際是在前文所提的芯片數(shù)據(jù)庫上進行的。工藝映射的結果是得到原子(ATOM)網(wǎng)表,即包含多個查找表的等效電路的描述。
將查找表裝入邏輯塊,得到邏輯塊網(wǎng)表,通常一個邏輯塊內包含有幾個查找表和寄存器。布局算法決定電路中不同的邏輯塊在FPGA芯片中的分布,優(yōu)化的結果應該是,相互關聯(lián)的邏輯塊放在一起,這樣可以盡可能的減少和縮短連線,在布局中也應考慮連線分布密度的平衡和獲得最快的電路速度。布局之后將得到布線所需的所有通路信息。
一旦確定了邏輯塊的布局,接下來就應該確定邏輯塊之間的選擇連線和開關。將目標芯片的布線結構等效為一個有向圖,在這樣一個布線資源圖中,每一條線和每個邏輯塊的引腳都是一個節(jié)點,潛在的連接是邊,相應的問題就轉化為尋找布線資源圖的最短路徑。
目的是產生目標位流文件bit-stream,匯編模塊將適配過程的器件邏輯單元和引腳分配信息轉換為器件的編程圖像,并將這些圖像以目標器件的編程對象文件或SRAM對象文件的形式保存為編程文件,以便編程器使用該文件對器件進行編程配置。在匯編過程中,也可以進行時序分析。
器件編程也可以稱為配置,就是將編程數(shù)據(jù)下載到相應的FPGA器件中去,進行真正的芯片測試。
FPGA支持軟件設計流程中的匯編模塊的目的是產生目標位流文件bit-stream。匯編模塊將適配過程的器件邏輯單元和引腳分配信息轉換為器件的編程圖像,并將這些圖像以目標器件的編程對象文件或者SRAM對象文件的形式保存為編程文件,以便編程器使用該文件對器件進行編程配置。對FPGA的相關配置文件加以簡單介紹。
a.sof文件:如果選擇模式為JTAG或者PS方式,使用Altera的下載電纜對FPGA進行配置時,將用到sof文件。該文件是QuartusⅡ自動產生的。在使用sof文件配置時,QuartusⅡ下載工具將控制整個配置的順序,并向配置數(shù)據(jù)流內自動插入合適的頭信息。其他的配置文件類型都是從相應的sof文件產生出來的。
b.pof文件:是用來對各種Altera配置芯片進行編程的文件。要注意的是,需要在QuartusⅡ中設置編程器件類型,才可以生成該類型的pof文件。對于一些小的FPGA,多個FPGA的sof文件可以放到一個pof文件內,燒制到一個配置器件中;而對一些較大的FPGA,如果一個配置器件不夠,可以使用多個配置器件。
c.rbf文件:是二進制的配置文件,只包含配置數(shù)據(jù)的內容。通常被用在外部的智能配置設備上,如微處理器。例如,一種典型的用法是將rbf文件通過其它工具轉換成十六進制的數(shù)組文件,編譯到微處理器的執(zhí)行代碼中,由微處理器將數(shù)據(jù)加載到FPGA中。當然,也可以由處理器在配置過程中完成實時的轉換工作。d.ttf文件:與rbf文件內容一樣的ASCII碼格式文件,在每個配置數(shù)據(jù)字節(jié)之間用逗號隔開。
e.rpd文件:用外部編程設備對AS串行配置芯片進行在系統(tǒng)編程的文件。這個文件是由pof文件轉換而來的,選擇不同的AS配置芯片,轉換得到的rpd文件大小都不一樣。
f.jam文件:是一種以Jam器件編程語言描述的ASCII碼文件。它包含了對JTAG鏈中一個或多個FPGA進行編程、驗證和空白校驗的數(shù)據(jù)信息。用戶可以在QuartusⅡ的編程器或微處理器中使用jam文件,并可以用jam文件對所有QuartusⅡ支持的器件進行配置。甚至JTAG鏈上還可以包含非Altera的器件。e.hex文件:由Intel公司提出的配置文件格式。它是一個ASCII碼文本文件,以Intel的十六進制格式保存物理程序存儲器中的目標代碼的映像,可以用在外部的配置設備上。hex文件中,每一行包含一個hex記錄,這些記錄由對應機器語言碼和/或常量數(shù)據(jù)的十六進制編碼數(shù)字組成。
這個過程的目的是將編程文件下載到FPGA芯片,進行真正的芯片測試。與CPLD不同,F(xiàn)PGA是基于門陣列方式為用戶提供可編程資源的,其內部邏輯結構的形成是由配置數(shù)據(jù)決定的。這些配置數(shù)據(jù)通過外部控制電路或微處理器加載到FPGA內部的SRAM中,由于SRAM的易失性,每次上電時,都必須對FPGA進行重新配置,在不掉電的情況下,這些邏輯結構將會始終被保持,從而完成用戶編程所要實現(xiàn)的功能。器件編程需要滿足一定的條件,如編程電壓,編程時序和編程算法等。一次性編程的FPGA需要專用的編程器完成器件的編程工作,基于SRAM的FPGA可以由EPROM或其他存儲體進行配置。在系統(tǒng)的可編程器件則不需要專門的編程器,只要1根下載編程電纜就可以了。在系統(tǒng)編程是指對器件、電路板或整個電子系統(tǒng)的邏輯功能可隨時進行修改或重構的能力。
FPGA的配置方式分為主動式和被動式,數(shù)據(jù)寬度有8位并行方式和串行方式兩種。在主動模式下,由FPGA器件引導配置操作過程,F(xiàn)PGA在上電后,自動將配置數(shù)據(jù)從相應的外存儲器讀入到SRAM中,實現(xiàn)內部結構映射。這種配置方式通常用于SRAM類型的可編程邏輯器件芯片。目前大多數(shù)FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會丟失,一定需要外加一片專用配置芯片,在上電的時候,由這個專用配置芯片把數(shù)據(jù)加載到SRAM中,然后FPGA就可以正常工作,由于配置時間很短,不會影響系統(tǒng)正常工作。也有少數(shù)FPGA采用反熔絲或Flash工藝,對這種FPGA就不需要外加專用的配置芯片而在被動模式下,F(xiàn)PGA則作為從屬器件,通常由控制器或計算機控制配置的整個過程,實現(xiàn)配置數(shù)據(jù)的下載。這種配置方式常用于E2PROM類型的可編程邏輯器件芯片的編程,編程數(shù)據(jù)長期不會消失。FPGA的配置引腳可分為兩類:專用配置引腳和非專用配置引腳。專用配置引腳只有在配置時起作用,而非專用配置引腳在配置完成后則可以作為普通的I/O口使用。專用的配置引腳有:配置模式腳 M2、M1、M0;配置時鐘CCLK;配置邏輯異步復位PROG,啟動控制DONE 及邊界掃描 TDI、TDO、TMS、TCK。非專用配置引腳有Din、D0~D7、CS、WRITE、BUSY、INIT。在不同的配置模式下,配置時鐘CCLK可由FPGA內部產生,也可以由外部控制電路提供。FPGA共有四種配置模式:從串模式,主串模式,從并模式以及邊界掃描模式。具體的配置模式由模式選擇引腳M0、M1、M2決定。
[1]段桂江,保質設計的集成化過程與方法模型研究,中國機械工程,2005.
[2]王美清,集成化設計質量管理平臺,航空制造技術,2004.