深入淺出FPGA-13-IMPACT軟件使用

IMPACT軟件使用

http://blog.csdn.net/rill_zhen/article/details/8110277

5.4.1 iMPACT綜述與基本操作
1. iMPACT簡介
iMPACT支持4種下載模式:邊界掃描,從串模式、SelectMap模式以及Desktop配置模式。從串模式是一種常用配置電路,可用USB口或並口完成配置。SelectMap模式是一種並行配置模式,速度快,但需要使用多個信號管腳。Desktop模式是一種高速配置模式,可配置FPGA、 PROM以及SystemACE,但需要專用的硬件設備。在實際中,由於邊界掃描模式標準統一、設備簡單,且可通過JTAG鏈路配置FPGA、CPLD以及PROM,使用最爲廣泛。因此本節主要基於邊界掃描模式來介紹IMPACT的使用方法。
當設計完成後,ISE調用BitGEN程序把佈局佈線後的.ncd文件轉化成.bit文件,包括了配置數據和配置指令。如果使用JTAG模式,可直接將.bit文件通過iMPACT文件配置到FPGA芯片中。如果要用其它模式配置FPGA,則需要通過iMPACT進行格式轉化,生成.mcs、.exo 以及.hex等文件格式,表M對常用的配置文件進行比較和說明。

表5-19 常用的Xilixn FPGA配置文件格式列表

對於FPGA器件,iMPACT能夠直接將.bit位流文件下載到芯片中,或者將其轉換爲PROM器件的EXO/MCS文件格式,並下載到PROM芯片中。
2. iMPACT用戶界面
有兩種方法可以啓動iMPACT軟件,一種是在ISE過程管理區中,點擊Generate Programming File前面的“+”號,再雙擊“Configure Device”,在ISE環境下運行;另一種是通過點擊“開始 程序 ISE9.1 Accessories iMPACT”,在Windows環境下單獨運行。其用戶界面如圖M所示。


圖5-35 iMPACT的用戶界面

iMPACT的用戶界面主要由File、Edit、View、Operations、Options、Output、Debug、Window、Help菜單欄和常用工具欄組成。下面對常用的菜單欄操作進行簡要介紹。

  • File菜單

        File菜單包含了常見的文件操作,其中的“Initialize Chain”用於自動完成邊界掃描JTAG鏈上的器件類型和數目;“Export Project to CDF”用於把向前項目信息保存到CDF(Chain Description File)文件中。

  • Edit菜單

        Edit菜單包含了常用的配置操作,其中的“Add Device”用於手動創建JTAG掃描鏈時添加PROM或FPGA芯片;“Assign Configuration File”用於指定配置文件;“EDIT ROM”用於修改和刪除PROM芯片;“Preference”用於設定iMPACT的通用選項。

  • View菜單

        View菜單包含了各個窗口顯示/關閉的操作。

  • Operations菜單

Operations菜單包含了配置、驗證、擦除以及各類驗證操作。其中“Program”用於對器件編程,下載相應的配置文件;“Verify”用於驗證下載是否正確;“Erase”用於擦除FPGA或PROM芯片內的內容。

  • Options菜單

        Options菜單包含編程、擦除以及回讀等選項。

  • Output菜單

        Output菜單包含了常用的電纜操作。其中“Cable Auto Connect”用於電纜自動連接;“Disconnect All Cables”用於斷開所有電纜

  • Debug菜單

        Debug菜單包含了JTAG掃描連所有的調試操作。其中“Start/Stop Debug Chain”用於啓動或停止調試;“Chain Integrity Test”用於掃描立案完整性測試;“IDCODE Test”用於IDCODE測試。

  • Window菜單

        Window菜單包含了窗口管理操作,如關閉窗口、上一下/下一個窗口等。

  • Help菜單

         Help菜單包含了iMPACT的在線幫助和版本信息。
5.4.2 使用IMPACT創建配置文件
一個設計經過綜合、實現之後,需要爲器件生成相應的編程文件。ISE中內嵌了比特流生成器,可生成FPGA以及PROM格式文件,從而實現動態配置,並驗證數據是否正確。由於Xilinx FPGA支持多種配置模式,因此在完成數據配置之前,需要選擇一個合適的模式,以避免出現編程錯誤
1. 配置參數設置窗口
        在過程窗口中,選中[Generate Programming File]並單擊右鍵打開[Process Properties]窗口,在其中可完成對各類編程參數的選擇和配置。
(1)通用參數設置窗口
        通用參數設置窗口如圖5-36所示,主要選擇配置文件的格式以及各種校驗規則。


圖5-36 通用參數(General Options)設置窗口

其中相應的選項說明如下: 

  • Run Design Rules Checker(DRC):運行設計規則校驗。建議使用該功能,在位流文件生成中進行規則校驗,這樣可對NCD文件進行評估。其默認值爲選中。
  • Creat Bit File:創建位流文件。用於設計在實現後生成可配置的比特文件。其默認值爲選中。
  • Creat Binary Configuration File:創建二進制配置文件。其默認值爲不選中。
  • Creat ASCII Configuration File:創建ASCII配置文件。其默認值爲不選中。
  • Creat IEEE 1532 Configuration File:創建符合IEEE 1532標準的配置文件,僅對Virtex系列芯片有關。其默認值爲不選中。
  • Creat BitStream Compression:使能比特文件壓縮功能,可節約PROM的存儲空間。其默認值爲不選中。
  • Enable Debugging of Serial Mode BitStream:使能比特文件的調試功能。其默認值爲不選中。
  • Enable Cyclic Redundancy Checking(CRC):使能循環冗餘校驗,在配置數據中添加4位校驗碼。其默認值爲不選中。

(2)配置參數設置窗口
        配置參數設置窗口如圖5-37所示,主要完成配置電路所用管腳內部電阻的選擇。

圖5-37 配置參數(Configuration Options)設置窗口

其相應的選項說明如下:

  • Configuration Rate:配置數據速率。其默認值爲4Mbps。
  • Configuration Clk(Configuration Pins):用於選擇配置時鐘管腳CCLK內部是否使用上拉電阻,有“Pull up”和“Float”兩種選擇。選擇上拉可以減小時鐘信號線上的干擾信號,默認值爲選擇內部上拉。
  • Configuration Pin M0:用於選擇模式控制管腳M0的內部電阻阻值,有“Pull Up”、“Float”和“Pull Down”3種選擇,分別對應着上拉、懸空和下拉,其電阻值的範圍爲50 ~ 100 ,上拉和下拉能在一定程度上減小干擾。默認值爲選擇內部上拉。
  • Configuration Pin M1:用於選擇模式控制管腳M1的內部電阻阻值。同M0的說明。
  • Configuration Pin M2:用於選擇模式控制管腳M2的內部電阻阻值。同M0的說明
  • Configuration Pin Program:用於選擇編程控制管腳PROG的內部電阻阻值,有“Pull Up”、“Float”和“Pull Down”3種選擇,分別對應着上拉、懸空和下拉,上拉和下拉能在一定程度上減小干擾,避免非法操作。默認值爲選擇內部上拉。
  • Configuration Pin Done:用於選擇DONE管腳的內部電阻阻值,有“Pull Up”、“Float”和“Pull Down”3種選擇,分別對應着上拉、懸空和下拉,其電阻值的範圍爲2 ~ 18 。由於DONE信號爲集電極開路輸出,必須有終端電阻才能正常工作,如果外部電路中沒有上拉電阻,則必須選擇“Pull Up”;同樣,在選擇“Float”時,要保證外部電路中已有上拉電阻。
  • Configuration Pin Init
  • Configuration Pin CS
  • Configuration Pin DIn
  • Configuration Pin Busy
  • Configuration Pin RdWr
  • JTAG Pin TCK:用於選擇JTAG時鐘管腳TCK的內部電阻阻值,有“Pull Up”、“Float”和“Pull Down”3種選擇,分別對應着上拉、懸空和下拉,建議選擇內部上拉。默認值爲選擇內部上拉。
  • JTAG Pin TDI:用於選擇JTAG輸入數據管腳TDI的內部電阻阻值,同TCK的說明。
  • JTAG Pin TDO:用於選擇JTAG輸出數據管腳TDO的內部電阻阻值,同TCK的說明。
  • JTAG Pin TMS:用於選擇JTAG測試模式選擇管腳TMS的內部電阻阻值,同TCK的說明。
  • Unused IO Pins:用於選擇未用管腳的內部電阻選擇,同TCK的說明。默認值爲FFFFFFFF。
  • User ID Code(8 Digital Hexadecimal):用戶碼身份輸入,其格式爲8個16進制數。
  • DCI Update Mode:用於選擇設計DCI進行阻抗調整的模式,有“As Required”、“Continuous”和“Quiet(Off)”3種選擇,分別對應着僅在需要時調整阻抗、連續調整阻抗以及達到初始後便不再調整阻抗的3種模式。默認值爲“As Required”。

(3)配置啓動參數設置窗口
配置啓動參數設置窗口如圖5-38所示,主要完成配置電路時鐘信號以及時鐘驅動方案的選擇。


圖5-38配置啓動參數(Startup Options)設置窗口

注意:圖M的配置窗口對於不同系列的FPGA芯片是略存區別的。對於早期的Virtex和Spartan-2系列,還會有“Release Set/Reset(Output Events)”等選項,用於設置多少個時鐘週期後,復位/置位內部鎖存器、觸發器。
        其相應的選項說明如下:

  • FPGA Start-Up Clock:用於選擇FPGA芯片的配置時鐘,有“CCLK”、“User Clock”和“JTAG Clock”3個可選項。當配置模式爲主模式時,則配置時鐘由FPGA芯片生成;當配置模式爲從模式時,則配置時鐘由外部提供。當配置PROM器件時,必須選擇CCLK時鐘;當選擇JTAG模式的配置時鐘,該時鐘由JTAG接口TCK信號提供。用戶自定義的配置時鐘User Clock目前很少使用。默認值爲CCLK。
  • Enable Internal Done Pipe:用於選擇是否等待插入的延遲信號CFG_DONE後,DONE管腳有效,對於高速配置方案非常有效。默認值爲不選擇。
  • Done(Output Events):用於設置多少個CFG_DONE週期後,使DONE信號有效。默認值爲4。
  • Enable Outputs(Output Events):用於設置多少個時鐘週期後,將輸入、輸出管腳從三態條件釋放到實際的輸入、輸出結構。默認值爲5。
  • Release Write Enable(Output Events):用於設置多少個時鐘週期後,釋放全局寫信號到觸發器和存儲器。如果選擇“Done”參數,表示當Done腳爲高時,釋放寫使能信號;選擇“Keep”,用於保持當前的寫使能信號。默認值爲6。
  • Release DLL(Output Events):用於設置等待多少個時鐘週期後,DLL輸出有效。默認值爲“No Wait”。
  • Match Cycle:用於設置是否等到DCI匹配後,再進入啓動週期。默認值爲“No Wait”。
  • Drive Done Pin High:用於設置是否將Done置高。默認值爲不選中。

(4)回讀方式參數設置窗口
回讀方式參數設置窗口如圖5-39所示,主要用於回讀文件格式和回讀模式的設置。

圖5-39 回讀方式參數(Raedback Options)設置窗口

其相應的選項說明如下:

  • Security:用於設置是否在回讀和重新配置數據時設置保護模式,有“Enable Readback and Reconfiguration”、“Disable Readback”和“Disable Readback and Reconfiguration”3個選項,分別對應着使能回讀和重新配置數據、禁止回讀以及禁止回讀和重新配置數據。其中,禁止回讀和重配置是處於對設計保護考慮的;回讀執行時,需要由M0/RTRIG腳產生一個上升沿來啓動,需要一個外部的邏輯電路驅動CCLK時鐘,以回讀!RDATA管腳上的每一位數據。
  • Create ReedBack Data Files:用於創建回讀文件。默認值爲不選中。
  • Allow SelectMAP Pins to Persist:用於配置完成後是否保留SelectMAP配置模式的配置管腳。使能時,可利用其完成數據的回讀,否則當配置完成後,配置管腳將被釋放,變成用戶管腳。默認值爲不保留配置管腳。
  • Creat Logic Allocation File:用於配置是否建立一個邏輯定位文件。該文件包含了鎖存器、觸發器、輸入輸出管腳的位流位置和塊存儲器的位流位置。默認值爲不選中。
  • Creat Mask File:用於配置是否選擇建立屏蔽文件,用於確定位流文件中的一些位。默認值爲不選擇。

(5)加密參數設置窗口
加密參數設置窗口如圖5-40所示,主要完成配置文件加密選項的設置。

圖5-40加密參數(Encryption Options)設置窗口

其相應的選項說明如下:

  • Encrypt Bitstream
  • Key 0(Hex String)
  • Input Encryption Key File

2.生成FPGA比特配置文件的操作
FPGA配置文件主要用於調試階段快速地通過JTAG模式配置FPGA,斷電後芯片內的邏輯立刻消失,每次上電都需要重新配置。該操作比較簡單,首先,根據在配置啓動參數中選擇配置時鐘爲JTAG CLK,否則會產生警告,配置過程容易出錯;其次,直接點擊過程區的Generate Programming File即可,如圖5-41所示。

圖5-41 創建FPGA配置文件示意圖

3.生成PROM比特配置文件的操作
只有生成PROM文件並下載PROM芯片中,才能保證FPGA上電後自動加載邏輯並正常工作。和生成FPGA配置文件相比,生成PROM配置文件較爲麻煩,下面對其進行詳細說明。
1)將設計經過前仿、綜合、實現以及後仿,確保設計無誤。單擊過程管理區中“Generate Programming File”前面的“+”號,雙擊“Generate PROM,ACE,or JTAG File”運行文件生成工具,彈出的文件界面如圖5-42所示。


圖5-42 PROM配置文件生成工具界面                                                 圖5-43 選擇PROM芯片的類型和文件格式

2)單擊“Next”按鈕,進入PROM器件選擇界面,如圖5-43所示。下面以Xilinx PROM爲例進行說明。選中Xilinx PROM,在文件格式“PROM File Format”中選擇EXO,將PROM配置文件的名字改成“sqrt_test”,確定PROM的存放位置。
3)點擊“Next”按鈕,選擇PROM器件的型號,如圖5-44所示。可以選中“Auto Select PROM”選項,由iMPACT自動選擇合適的PROM芯片,也可以手動在“Select a PROM”選項的下拉框中選擇合適的PROM芯片,然後單擊“Add”按鈕添加選中的器件。可根據需要反覆多次,添加多個PROM芯片。此外,對於 XCF08P以上的批ROM芯片,還可以使能修改和壓縮功能。 


圖5-44 選擇PROM芯片的型號                                                             圖5-45 PROM配置文件生成器綜合信息顯示窗口

4)單擊“Next”,進入PROM文件綜合信息顯示窗口,如圖5-45所示。如果確認信息無誤,單擊“Finish”,進入後續步驟;否則返回前面進行修改。
5)單擊“Finish”後彈出的配置文件加載窗口如圖5-46所示。

圖5-46 比特文件選擇界面

6)選擇相應的文件後,單擊“打開”按鈕,將其加載。此時,iMPACT會根據加載的bit文件所對應的FPGA芯片計算PROM的容量,如果 PROM容量不夠,會主動提醒用戶修改PROM型號或者添加更多的PROM芯片;如果容量富裕,則會給出PROM的容量利用率,如圖5-47所示。例如,圖中給出的設計使用了81.66%的PROM容量。此時,還可以在PROM、FPGA器件的圖標上點擊右鍵分別更新芯片型號和相應的.bit文件。

圖5-47 PROM容量顯示界面

7)在iMPACT的過程管理窗口,雙擊“Generate File”,iMPACT會自動創建PROM配置文件。或在PROM上點擊右鍵,選擇“Generate File”也可完成。當配置文件創建成功後,顯示文件大小以及所佔PROM的容量,並在iMPACT界面上顯示“PROM File Generation Succeeded”,如圖5-48所示。

圖5-48 PROM配置文件創建成功提示界面

5.4.3 使用IMPACT配置芯片

利用iMPACT配置芯片的操作流程見4.3.4節,這裏就不再重複說明。

5.4.4 FPGA配置失敗的常見問題

在配置FPGA器件時,經常會出現配置失敗的情況,簡單總結起來有下列幾種情況,並給出響應的解決方案。
1. JTAG鏈掃描失敗
解決方法:首先,檢查所有芯片的TCK、TMS管腳是否和JTAG接口的TCK、TMS連接在一起;其次,檢查配置電路的JTAG鏈路是否完整,從 JTAG接口的TDI到鏈首芯片的TDO、……、再到鏈尾芯片的TDO是否連接到JTAG接口的TDO;最後再檢查電源是否正確。
2.無法通過計算機並口配置
解決方法:首先,檢查計算機並口是否插好;其次,採用質量更好的並口配置電纜(Parallel Cable-IV)或信號質量更好的USB配置電纜,排除下載線的問題。目前,最好採用速度更快、可靠性更高的USB下載線。
3. 無法正常配置
解決方法:檢查配置時鐘信號CCLK或JTAG時鐘信號TCK是否存在干擾信號或過沖。如果存在干擾,判斷干擾源,並增加濾波電路以消除干擾。如果有過沖,說明該信號線阻抗可能由於較長不匹配,需要增加匹配電阻。一般情況下,CCLK信號的引線長度不超過10cm,還可通過增加源端匹配電阻(33~100 電阻)來改善時鐘信號質量。
此外,如果FPGA芯片的旁路電容設計不合理或數據線上有地線及彈信號,也會導致配置失敗。
4. DONE管腳狀態始終爲低
解決方法:檢測DONE管腳的負載是否太重,選擇合適的上拉電阻。
5. DONE管腳已經變高,但器件仍不能正常工作
解決方法:首先檢查設計是否無誤;其次,如果設計無誤,再檢查器件的啓動順序,參考配置流程,通過設計工具重新設置啓動順序。
6. 模式管腳選擇錯誤
解決方法:根據模式選擇管腳M[2:0]選擇配置模式,當模式改變後,要修改位流文件中的配置時鐘爲CCLK還是TCK,否則容易配置失敗
7. 器件上電後,有時候能配置成功,有時不成功
解決方法:這種情況,經常是由期間的復位未完成,就開始出現數據流。解決方法就是添加復位芯片,延長復位時間。

發佈了13 篇原創文章 · 獲贊 7 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章