1. 程式人生 > >vivado----fpga硬體除錯 (六)----資料匯出

vivado----fpga硬體除錯 (六)----資料匯出

總結一:

眾所周知,ADC除錯不單單是ADC晶片功能的除錯,還涉及到後期對ADC晶片的效能評估和驗證,這些工作都需要在MATLAB中完成。在ISE開發環境下,一般是這樣處理:

1.ChipScope中將需要的資料匯出為.prn或者.txt檔案

2.在MATLAB中使用函式xlLoadChipScopeData()將檔案匯入快取。(需要相應的MATLAB和ISE設定)

上述兩步就可以在FPGA除錯過程中輕鬆實現對ADC資料的計算處理。

然而,令人沮喪的是,在Vivado的debug工具中,並沒有發現類似ChipScope中資料匯出功能。在一番查詢之下,在Vivado使用的相關文件中確定了要實現該功能的

Tcl命令。由於MATLAB中沒有找到類似xlLoadChipScopeData()的函式可以直接將Vivado中匯出的資料匯入快取,作為一個FPGA工程師,不得不面臨這個不大不小的問題。在處理這個問題的過程中,也看到網上的很多朋友也在探討這個問題,但並沒有給出一個確切的解決途徑,希望下面的方法能幫助到遇到同樣問題的同學。

參考步驟:
1.線上除錯過程中,在tcl console 命令列視窗中輸入:
write_hw_ila_data[upload_hw_ila_data]

2.將上面匯出的資料直接在MATLAB中解壓:
unzip(‘file_name’,'tmp')

3.將上面解壓出來的資料夾中的.csv檔案讀入MATLAB 。

上面的處理方法僅供有需要的同學參考,也許繁瑣了些,但在暫時沒有官方支援函式工具的條件下,也算是一個行之有效的辦法了。

總結二:

Vivadodebug後的波形通過圖形化介面並不能儲存抓取到波形,儲存按鈕只是儲存波形配置,如果需要儲存波形需要通過TCL命令來實現:

write_hw_ila_data0730_ila_1 [upload_hw_ila_data hw_ila_1]
write_hw_ila_data 0730_ila_2 [upload_hw_ila_data hw_ila_2]

0730_ila_1為儲存的檔名,需要帶路徑,hw_ila_1為你的ILA的名字,

如果要讀取已儲存的波形,可以用下面的命令:

read_hw_ila_data 0730_ila_1.ila
       display_hw_ila_data
       read_hw_ila_data 0730_ila_2.ila
       display_hw_ila_data


總結三:


這一段時間遇到、聽到、看到使用vivado的困惑。這些困惑,會讓初次接觸者,產生畏難的情緒。現共享出來,以共勉。

1.  vivado安裝在32位計算機上,很遇到不少莫名其妙的現象。   通過交流以及自己開發遇到的情況,經常會發現VIVADO在使用期間出現很多莫名其妙的現象。通過比較對比,發現64的win7作業系統就沒有這些莫名其妙的錯誤提示等等。

2.  很多人習慣使用Chipsope Pro來除錯。Vivado跑出的bit能否支援呢?  答案是肯定的。請參考UG908 (v2013.4) 的 Using Legacy Debug Cores in Vivado Designs章節。 另外,有人還發現chipscope pro 和vivado debug在除錯中各有各的長處,能否同時使用這兩種方法呢?答案同樣是肯定的。請參考UG908 (v2013.4) Using Vivado Logic Analyzer and ChipScope Pro Analyzer Simultaneously。

3.  很多做訊號處理演算法的工程師,經常使用chipscope抓數,然後儲存為文字格式後,供MATLAB讀取來分析資料.現在很多人發現vivado似乎沒有該功能了。有兩種方法:1使用上面提到的方法,使得vivado跑出的bit能供chipscope使用不就解決了嘛。2.第二種方法,直接在vivado中儲存資料。只不過這種方法在vivado的IDE中沒有在選單對應的命令,目前該方法只支援TCL指令碼的方式.請參考UG908 (v2013.4) Saving and Restoring Captured Data from the ILA。

Saving Captured ILA Data to a FileCurrently, the only way to upload captured data from an ILA core and save it to a file is to

 use the following Tcl command:        write_hw_ila_data my_hw_ila_data_file.zip [upload_hw_ila_data hw_ila_1]

This Tcl command sequence uploads the captured data from the ILA core and writes it to an archive file called:                   

                                                         my_hw_ila_data_file.zip. The archive file contains the waveform Core。

4.  說到這裡不得不說一個事情,現在有第三方的公司提供軟體,不需要這麼多步驟,直接可以將資料獲取出來,進行各種分析。這就是xilinx的VIVADO肯定有在軟體上有介面,可以提供這些抓出來的資料。只不過這些介面目前還沒有給大家公示出來。