欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: FPGA+DSP的高速AD采集處理開發詳解 [打印本頁]

作者: Tronlong    時間: 2020-6-18 10:33
標題: FPGA+DSP的高速AD采集處理開發詳解
一、案例說明
此開發案例基于創龍Kintex-7+C6678評估板TL6678F-EasyEVM進行。
二、案例框圖
三、案例演示
硬件連接


參考TL6678F-EasyEVM評估板光盤用戶手冊《基于下載器的程序固化與加載》文檔中“Vivado下bit文件加載步驟”章節,將tl_fmc_ad9613_srio_tl6678f_xc7k325t.bit文件燒錄到FPGA。燒寫bit文件時,指定調試文件tl_fmc_ad9613_srio_tl6678f_xc7k325t.ltx,可以觀察到ILA調試信號,查看ADC采樣波形。
ADC兩路信號tl_fmc_ad9613_srio_bd_i/xlslice_l_Dout[11:0]
和tl_fmc_ad9613_srio_bd_i/xlslice_l_Dout[11:0]在ILA內嵌邏輯分析儀中均設置為有符號數、模擬波形顯示,如下圖所示:
ILA觸發抓取兩路ADC采樣波形,如下圖所示(兩路正弦波形):
2. DSP端
參考TL6678F-EasyEVM評估板光盤用戶手冊《CCS工程的生成與加載》文檔,在“tl-fmc-ad9613-srio/DSP/src”目錄下建立CCS工程并導入到CCS軟件中編譯生成tl-srio-fft.out文件,通過仿真器加載tl-srio-fft.out文件到DSP端。將tl-srio-fft.out下載到C6678 Core0 ~ Core7核中,在tl-srio-fft.c窗口中紅色框標注的地方創建breakpoint,使DSP程序運行后能暫停,如下圖所示:
因為Core0負責系統初始化,為確保其他核跟Core0是同步開始傳輸,所以Core0核最后運行(Core0核可查看原始波形以及振幅波形,其他核僅可查看原始波形)。運行程序,DSP程序正常暫停,可通過圖像波形形式查看數據,使用Graph工具,輸入下述配置,查看Channel A波形數據。
輸入下圖配置,查看Channel A經過FFT振幅波形。
若出現波形顯示不正常或沒有波形產生,請參考以下操作:
1.請確保已正常加載GEL文件。
2.請確保Breakpoint設置成功,DSP程序能夠暫停。
3.請硬件斷電重啟后重新燒寫FPGA和DSP程序。
頻率計算:
FFT變換點數N=512,AD采樣率Fs為250MSPS。某點n所表示的頻率為:Fn=n*(Fs/N) (n >=0)。當n=0時,Fn為0,因為第一點表示的是直流分量,所以頻率為0,幅值也為0,因為該正弦波沒有直流分量。
從上面的FFT振幅波形圖中可以看出,Channel A在第6個點處有信號,所以對應的頻率為Fn = 6 * (Fs/N) = 6 * 250MHz / 512 = 2.9296875 MHz。對應原始信號3MHz。
此處存在誤差,目前采樣點為512個,一個點表示Fs/N= 488.281KHZ,所以如果需要提高精度,用戶可以提高采樣點。
通過查看串口輸入數據,也可查看處理結果。其中peak point代表振幅圖峰值點橫坐標;amplitude代表振幅圖幅值;input frequency根據振幅圖計算的輸入頻率。
四、關鍵代碼說明
例程管腳約束文件位于TL6678F-EasyEVM評估板光盤Vivado工程“src\constraints”目錄下。
2.​​​​​​​​​​​​​​​​​​​​​​​​​​​ FPGA端的代碼
頂層文件tl_fmc_ad9613_srio.v的主要功能:
​​​​​​​
​​​​​​​
​​​​​​​
可以查看生成的RTL原理圖:

​​​​​​​ 3. DSP端代碼
(1)main函數初始化srio子系統,hwi中斷注冊。
(2)srio_db_isr響應srio doorbell中斷,以郵箱方式通知Core0 ~ Core7核同時進行FFT運算。
(3)tl_srio_fft任務等待郵箱信號,Core0 ~ Core7核同時進行FFT運算。
(4)tl_fft_amplitude任務等待信號量置位,Core0核進行FFT振幅運算,通過串口打印數據處理結果。
五、Block Design說明
Block Design如下:

1. Select IO IP核配置說明
參考TL6678F-EasyEVM評估板光盤tl-fmc-ad9613例程的IP核與模塊介紹章節。
2. SRIO IP配置說明
SRIO鏈路寬度設置為4個lane,通信頻率為5Gbps(即每個lane均為5Gbps),參考時鐘為125MHz;設置8bit位寬的ID,且ID=0xFF。
Port I/O Style選擇為Initiator/Target模式,其中Condensed I/O接收和發送均使用一個AXI4-Stream通道,Initiator/Target接收和發送采用不同的AXI4-Stream通道。
I/O Format:I/O端口配置使用HELLO格式包。
其他參數保持保持默認值即可。
更詳細說明請查閱IP核手冊:《pg007_srio_gen2.pdf》。
3. data_to_srio RTL模塊功能


​​​​​​​
雙擊block degin中的模塊,可配置:
Doorb Triger Threshold:門鈴觸發閾值,本例設置為16384Bytes = 16KB,即通過SRIO發送16KB的數據后就發送一個DOORBELL信息。
SrioDoorb info1發送完Doorb Triger Threshold個字節的數據之后發送的門鈴信息。
Srio Doorb info2發送完2倍的Doorb Triger Threshold個數據之后發送的門鈴信息。
Srio Target AddrSRIO Target的內存地址。(本例設置的為DSP的MSMC地址0x0C3F0000)
Srio Target IdSRIO Target的ID。
Srio Local IdSRIO Iitiator的ID。
代碼解釋:
​​​​​​​​​​​​​​

配置FIFO大小為36 Byte,讀寫數據的位寬為64bit(FIFO深度為512)。ALMOST_EMPTY_OFFSET和ALMOST_FULL_OFFSET配置為0x20,即32;即當FIFO寫入數據個數大于32個,ALMOST_FULL輸出高電平。
本例FIFO設置位寬為64bit,所以64bit * 32 / 8 = 256 Byte,即當FIFO寫入數據大于256 Byte,ALMOST_FULL會輸出高電平。
因為SRIO的package最大有效數據為256 Byte,為了確保SRIO能傳輸完整的數據包,所以設置FIFO的門限值為256Byte.

FIFO原語詳細說明請查閱:《ug473_7Series_Memory_Resources.pdf》。
​​​​​​​
其中wr_cnt為一個1bit,計數只有0和1兩個值。


HELLO包頭拼接:
​​​​​​​
​​​​​​​
本例設置的TOTAL_DATA_SIZE為32KByte,即每發送16KByte的數據包之后發送一個門鈴信息。





作者: nmgbtzyf    時間: 2020-10-22 21:26
樓主牛逼!  難怪這帖子這么長時間也沒人回復。
我這個新人什么都不懂。  還以為又找到一個不錯的資料。還嘗試的想看看原理圖。
結果去τ 寶一看看。哈。算了吧,這根本就不是給我們玩兒的。
作者: nmgbtzyf    時間: 2020-10-22 21:28
樓主牛逼!  難怪這帖子這么長時間沒有人回復。
我這個新手什么也不懂。  還以為又找到一個不錯的資料。
還嘗試著去找找原理圖呢。
結果去τ 寶一看。  Ha,這根本就不是給我們玩的東東!
作者: 莫燁    時間: 2020-10-24 15:08
厲害,看不懂
作者: 禾濁    時間: 2020-12-17 15:27
樓主厲害,現在還看不懂,待我學段時間再來看!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1