0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

加載激勵(lì)塊或源代碼塊的方法

lhl545545 ? 來源:FPGA開發(fā)圈 ? 作者:FPGA開發(fā)圈 ? 2020-06-09 15:38 ? 次閱讀

本篇博文旨在演示其構(gòu)建方式及其用于實(shí)踐 IP 的機(jī)制。我覺得這部分內(nèi)容值得講一講,因?yàn)橹灰軌虺浞掷斫鉁y(cè)試激勵(lì)文件,就可以將其作為有效的模板來用于將 RF Data Converter IP 構(gòu)建到自己的仿真設(shè)置中。

我并不會(huì)細(xì)講這里的所有內(nèi)容,只是為了演示一下仿真的機(jī)制。當(dāng)然,您也可以自行深入分析測(cè)試激勵(lì)文件 RTL。

您可能已經(jīng)知道,IP 設(shè)計(jì)示例隨附有完整的測(cè)試激勵(lì)文件。此測(cè)試激勵(lì)文件可在仿真中提供激勵(lì)生成和采集,用于 ADCDAC 實(shí)踐。仿真具有內(nèi)置自檢功能,因此它可用于檢驗(yàn)?zāi)?IP 設(shè)置。

讓我們來簡(jiǎn)單了解下設(shè)計(jì)測(cè)試激勵(lì)文件示例。

加載激勵(lì)塊或源代碼塊的方法

從 IP 設(shè)計(jì)示例層面上來看,不僅有 IP,還有激勵(lì)塊和采集塊(均為大型塊 RAM 數(shù)組)。

此外還有 1 個(gè) SmartConnect 塊用于連接到 IP 的 AXI4-Lite 端口

因此,測(cè)試激勵(lì)文件需提供的是:

時(shí)鐘生成,用于設(shè)計(jì)中的所有時(shí)鐘。ADC 和 DAC Tile 的輸入、AXI 流傳輸接口和 1 個(gè) AXI4-Lite 接口。

加載激勵(lì)塊或源代碼塊的方法。

將“實(shí)數(shù)”信號(hào)應(yīng)用于模擬輸入的方法,以及將實(shí)數(shù)信號(hào)從 DAC 轉(zhuǎn)換為數(shù)字總線以便檢查的方法。

最重要的是,需要 1 個(gè)定序器 (sequencer) 用于管理仿真。

檢驗(yàn)采集塊或接收端 (sink) 塊的方法。

讓我們來看看測(cè)試激勵(lì)文件。測(cè)試激勵(lì)文件的所有源文件都包含在設(shè)計(jì)工程示例中的導(dǎo)入 (imports) 目錄中。

頂層測(cè)試激勵(lì)文件包含在 demo_tb.sv SystemVerilog 文件中。我們不會(huì)逐行詳細(xì)分析其中所有內(nèi)容。在此級(jí)別只需連接各主要塊即可。讓我們來看下仿真功能的最重要的部分。

時(shí)鐘生成

有一個(gè)非常簡(jiǎn)單的模塊可用于在仿真中創(chuàng)建所有必要的時(shí)鐘信號(hào)。其中的輸入帶有_phase后綴,支持用戶為時(shí)鐘設(shè)置高低時(shí)間。它用于為每個(gè) Tile 和 AXI Stream 時(shí)鐘創(chuàng)建所期望的頻率。

加載激勵(lì)塊或源代碼塊的方法

加載激勵(lì)塊或源代碼塊的方法

我們可在仿真中對(duì)此進(jìn)行檢查,確保它按我們期望的方式運(yùn)行。

在此情況下可以看到,DAC 采樣時(shí)鐘以 6.4GSPS 運(yùn)行,而 AXI stream 傳輸時(shí)鐘的運(yùn)行速率為該速率除以 16。

加載激勵(lì)塊或源代碼塊的方法

激勵(lì)生成

在仿真中,ADC 和 DAC 將分別單獨(dú)處理。在此情況下并不執(zhí)行環(huán)回。

DAC 與 ADC 來源相同。

ADC 包含demo_tb_rfadc_data_source.sv,其中包含demo_tb_rfadc_tile_source.sv。在代碼中,我們提供的是正弦查找表 (LUT)。在此情況下,將循環(huán)此 LUT 并生成正弦波輸出。

加載激勵(lì)塊或源代碼塊的方法

此正弦波將輸出到測(cè)試激勵(lì)文件的頂層。我們可將其轉(zhuǎn)換為實(shí)數(shù),以便將其強(qiáng)制添加到demo_tb中的 Tile 的 UNISIM 模型層的模擬信號(hào)輸入中。

加載激勵(lì)塊或源代碼塊的方法

對(duì)于 DAC,只需將此數(shù)據(jù)寫入設(shè)計(jì)示例中的 DAC 源塊上的 AXI 接口即可。在demo_tb層級(jí)上,我們可將 DAC 模擬信號(hào)從實(shí)數(shù)轉(zhuǎn)換為位數(shù),并將其應(yīng)用于 DAC 接收端輸入。

加載激勵(lì)塊或源代碼塊的方法

測(cè)試激勵(lì)文件定序器

鑒于時(shí)鐘正在運(yùn)行仿真,并且先前已經(jīng)講解過數(shù)據(jù)源相關(guān)內(nèi)容,因此我們可以繼續(xù)講解測(cè)試激勵(lì)文件的主要部分。

在demo_tb_axi4l_nano_seq.sv文件中可以了解到仿真的設(shè)置和控制方式。此文件使用部分 SystemVerilog 任務(wù)以便于我們?cè)L問 RF 的 Tile,并對(duì)其執(zhí)行部分設(shè)置。此外還有其它任務(wù)可用來控制仿真。我們將演示仿真的整個(gè)過程,并根據(jù)需要來探討這些任務(wù)。

通過觀察此文件可以發(fā)現(xiàn),它使用參數(shù)化尋址來允許我們處理測(cè)試激勵(lì)文件中 AXI4-Lite 上的各個(gè)子塊。各項(xiàng)任務(wù)將通過這些子塊來控制仿真。

加載激勵(lì)塊或源代碼塊的方法

定序器 (Sequencer) 首先會(huì)對(duì)測(cè)試激勵(lì)文件中的所有一切都應(yīng)用復(fù)位。然后它會(huì)對(duì) Tile 執(zhí)行寫入以啟用仿真加速。這樣即可縮短 Tile 的啟動(dòng)時(shí)間,因?yàn)樗煽s短電源微調(diào)時(shí)間以及 ADC 校準(zhǔn)時(shí)間。仿真僅允許 Tile 達(dá)到 IP 的啟動(dòng)狀態(tài)機(jī)的狀態(tài) 1。

加載激勵(lì)塊或源代碼塊的方法

在此步驟后,它會(huì)對(duì) Tile 執(zhí)行某些設(shè)置,然后開始在測(cè)試激勵(lì)文件中開啟源端和接收端。它還會(huì)開始加載 DAC 源內(nèi)存。

加載激勵(lì)塊或源代碼塊的方法

最好在執(zhí)行每個(gè)步驟時(shí)都打印仿真時(shí)間。這樣即可根據(jù)需要檢查波形。

可以看到,IP 設(shè)置完成后,就會(huì)于 169us 附近開始寫入 DAC 激勵(lì)數(shù)據(jù)。DAC 源內(nèi)存位于基址 0x300000000 處。

加載激勵(lì)塊或源代碼塊的方法

下一步,啟動(dòng) Tile 時(shí)鐘,并運(yùn)行 ADC 和 DAC 直至?xí)r鐘檢測(cè)步驟為止。

加載激勵(lì)塊或源代碼塊的方法

完成此步驟后,即可啟動(dòng) DAC 源并運(yùn)行 DAC,直至啟動(dòng) FSM 結(jié)束為止:

加載激勵(lì)塊或源代碼塊的方法

通過觀察波形可知,音調(diào)已傳入,而 DAC 輸出總線正在運(yùn)行。

此處可看到 25Mhz/50Mhz/100Mhz/200Mhz。

加載激勵(lì)塊或源代碼塊的方法

然后,針對(duì) ADC 重復(fù)此過程:

加載激勵(lì)塊或源代碼塊的方法

運(yùn)行后,可在波形中查看結(jié)果。在此情況下,vout_00和vout02總線即為仿真中 ADC 源的輸出。

我在此處還附上了 AXI Stream 傳輸?shù)?8 個(gè)采樣之一的截屏,以顯示 ADC 能正常轉(zhuǎn)換單音信號(hào)。

加載激勵(lì)塊或源代碼塊的方法

數(shù)據(jù)接收端和檢查器

ADC 和 DAC 在demo_tb中具有一組接收端塊。

在這些塊中,將對(duì)數(shù)據(jù)進(jìn)行縮放,并且將執(zhí)行 FFT。這樣即可確認(rèn)信號(hào)能以正確方式進(jìn)行轉(zhuǎn)換。

加載激勵(lì)塊或源代碼塊的方法

這些塊用于管理錯(cuò)誤計(jì)數(shù)器。如果全部正確,那么定序器 (Sequencer) 就會(huì)停止仿真。

加載激勵(lì)塊或源代碼塊的方法

加載激勵(lì)塊或源代碼塊的方法

責(zé)任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1616

    瀏覽量

    149278
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2943

    瀏覽量

    66627
  • SmartConnect
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6832
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    國(guó)產(chǎn)端聯(lián)-斷連應(yīng)用于飛控測(cè)試環(huán)境斷線測(cè)試箱

    斷連概述 斷連作為一種用于電路中斷連接的連接器,廣泛應(yīng)用于電子測(cè)試設(shè)備和通信系統(tǒng)中。它能夠在特定條件下,通過手動(dòng)插拔精準(zhǔn)地中斷電路連接,以此模擬電路中的斷線狀態(tài),從而實(shí)現(xiàn)對(duì)電路問題的檢測(cè)和診斷
    的頭像 發(fā)表于 10-08 15:07 ?157次閱讀

    如何使用Tensorflow保存加載模型

    TensorFlow是一個(gè)廣泛使用的開源機(jī)器學(xué)習(xí)庫,它提供了豐富的API來構(gòu)建和訓(xùn)練各種深度學(xué)習(xí)模型。在模型訓(xùn)練完成后,保存模型以便將來使用部署是一項(xiàng)常見的需求。同樣,加載已保存的模型進(jìn)行預(yù)測(cè)
    的頭像 發(fā)表于 07-04 13:07 ?1194次閱讀

    振動(dòng)電機(jī)偏心調(diào)整方法

    的核心部件,其調(diào)整方法對(duì)振動(dòng)電機(jī)的性能和使用壽命具有重要影響。本文將詳細(xì)介紹振動(dòng)電機(jī)偏心的調(diào)整方法。 一、振動(dòng)電機(jī)偏心的工作原理 振動(dòng)電機(jī)的偏心
    的頭像 發(fā)表于 06-12 16:17 ?1823次閱讀

    西門子博途:屬性- 隱藏參數(shù)

    在 LAD FBD 中調(diào)用該時(shí),可隱藏參數(shù)。剛開始時(shí),隱藏的參數(shù)不可見;但可通過框底部邊緣處的小箭頭進(jìn)行顯示。
    發(fā)表于 01-16 09:30 ?1680次閱讀
    西門子博途:<b class='flag-5'>塊</b>屬性- 隱藏<b class='flag-5'>塊</b>參數(shù)

    西門子博途示例:設(shè)置優(yōu)化訪問

    默認(rèn)情況下,為 S7 - 1200/1500 的所有新創(chuàng)建的啟用優(yōu)化訪問??蔀? OB、FB 和全局DB設(shè)置訪問。對(duì)于背景DB,設(shè)置來自各自的 FB。 如果將從 S7- 300
    的頭像 發(fā)表于 01-15 10:41 ?5046次閱讀
    西門子博途示例:設(shè)置優(yōu)化<b class='flag-5'>塊</b>訪問

    如何快速為DB變量添加屬性

    有些情況需要為PLC DB變量添加一些屬性,常規(guī)的做法是在DB中選中這個(gè)變量,然后打開變量屬性輸入屬性名稱和屬性值。
    的頭像 發(fā)表于 01-02 14:18 ?1908次閱讀
    如何快速為DB<b class='flag-5'>塊</b>變量添加屬性

    6電池的正確連接方式

    6電池的正確連接方式? 電池是一種能將化學(xué)能轉(zhuǎn)化為電能的裝置,具有多種類型和連接方式。本文將詳細(xì)介紹6電池的正確連接方式,包括串聯(lián)和并聯(lián)兩種方式,并提供應(yīng)用案例和注意事項(xiàng)。 一、串聯(lián)連接方式
    的頭像 發(fā)表于 12-29 14:29 ?4359次閱讀

    文件存儲(chǔ)和存儲(chǔ)的區(qū)別和聯(lián)系

    ,它將文件以樹狀結(jié)構(gòu)進(jìn)行組織,每個(gè)文件都被分配一個(gè)唯一的文件名。文件系統(tǒng)將文件劃分為邏輯上的數(shù)據(jù),然后將這些映射到磁盤其他存儲(chǔ)介質(zhì)
    的頭像 發(fā)表于 12-20 17:16 ?1107次閱讀

    西門子博途:打開

    其他用戶可以通過 CPU 上并行工作的結(jié)點(diǎn),在選定的 CPU 上執(zhí)行加載過程。因此可能發(fā)生這樣的情況,如果僅存在于設(shè)備中,已經(jīng)打開的在線加載過程中將刪除。這種情況下,在線
    的頭像 發(fā)表于 12-10 16:08 ?1769次閱讀
    西門子博途:打開<b class='flag-5'>塊</b>

    西門子博途: 功能、組織介紹-從設(shè)備上傳

    請(qǐng)注意,加載單個(gè)時(shí),變量其它可能引用的所需不會(huì)與各個(gè)一起加載。在
    的頭像 發(fā)表于 12-10 16:06 ?2582次閱讀
    西門子博途: 功能<b class='flag-5'>塊</b>、組織<b class='flag-5'>塊</b>介紹-從設(shè)備上傳

    為什么安秉信息的源代碼防泄密軟件這么穩(wěn)定?

    現(xiàn)在很多研發(fā)性企業(yè)都會(huì)意識(shí)到企業(yè)的源代碼文件需要防泄密保護(hù),現(xiàn)在很多企業(yè)對(duì)于源代碼只是用了gitsvn版本管理服務(wù)器進(jìn)行了簡(jiǎn)單的代碼統(tǒng)一管控。雖然現(xiàn)在對(duì)于
    的頭像 發(fā)表于 12-05 10:21 ?498次閱讀
    為什么安秉信息的<b class='flag-5'>源代碼</b>防泄密軟件這么穩(wěn)定?

    安秉信息源代碼圖紙防泄密方案,電路圖紙,源代碼文件

    安秉信息源代碼圖紙防泄密方案,電路圖紙,源代碼文件
    發(fā)表于 12-01 16:56 ?0次下載

    抄一pcb板難嗎?

    抄一pcb板難嗎?
    的頭像 發(fā)表于 11-23 14:23 ?686次閱讀

    vs中如何快速注釋多行代碼

    在VS中,快速注釋多行代碼可以通過以下幾種方法實(shí)現(xiàn)。我將詳細(xì)介紹每種方法的步驟和應(yīng)用場(chǎng)景。 方法一:注釋
    的頭像 發(fā)表于 11-22 10:26 ?1.6w次閱讀

    如何查看及更改函數(shù)/函數(shù)的調(diào)用環(huán)境

    模塊化設(shè)計(jì)的思想是把一些相似的功能(比如電機(jī)控制、閥控制)設(shè)計(jì)成函數(shù)函數(shù),這樣就可以反復(fù)調(diào)用。其優(yōu)點(diǎn)是:使程序架構(gòu)更加清晰,避免重復(fù)編寫相似功能的代碼。不過可能會(huì)產(chǎn)生一個(gè)疑惑:既然PLC的程序
    的頭像 發(fā)表于 11-17 09:08 ?841次閱讀
    如何查看及更改函數(shù)/函數(shù)<b class='flag-5'>塊</b>的調(diào)用環(huán)境