日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FPGA基础知识(四)UG902 RTL仿真与输出

發(fā)布時間:2023/12/10 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FPGA基础知识(四)UG902 RTL仿真与输出 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文是我在學(xué)習(xí)FPGA時學(xué)到的相關(guān)知識與總結(jié),希望可以幫助同行理解和掌握相關(guān)的FPGA知識。可以將本文檔當(dāng)作相應(yīng)FPGA教程文檔UG902的輔助文檔學(xué)習(xí)。主要內(nèi)容為文檔中關(guān)于RTL simulation and export。轉(zhuǎn)載請注明出處。

Xilinx原版教程文檔參見Xilinx Documentation navigator 中對應(yīng)UG902:Vivado Design Suite User Guide High-Level Synthesis中的Verifying the RTL部分。

背景:c語言通過高層次綜合(HLS)綜合為相應(yīng)的硬件RTL語言。再此之前進(jìn)行了c的仿真,相應(yīng)的硬件優(yōu)化,然后下面需要進(jìn)行c與RTL的協(xié)同仿真、RTL仿真及RTL輸出。

目錄

驗證RTL(Verifying the RTL)

C/RTL cosimulation

在c/RTL協(xié)同綜合時必須滿足下面要求:

Test Bench的要求

接口綜合的要求

執(zhí)行RTL simulation

Verificaiton of directives

分析 RTL simulation

Export the RTL design


驗證RTL(Verifying the RTL)

C/RTL cosimulation

C/RTL協(xié)同綜合會將之前的c test bench繼續(xù)用在RTL 綜合之中。

  • C在仿真時,最高級別函數(shù)的輸入或者DUT(device under test)會被當(dāng)作輸入向量
  • 輸入向量會在RTL仿真時由vivado HLS創(chuàng)建,RTL的輸出會被存為輸出向量
  • RTL仿真的輸出向量會被用在c test bench上,在函數(shù)進(jìn)行synthesis之后來驗證結(jié)果的正確性。

?

在c/RTL協(xié)同綜合時必須滿足下面要求:

test bench必須能夠自我檢測并且返回0值,并且在測試失敗時返回非0值

  • 接口綜合時要用到正確的接口
  • 任何第三方模擬器必須能在路徑中被找到
  • 任何不能被優(yōu)化指令優(yōu)化的數(shù)組和結(jié)構(gòu)體設(shè)計接口都必須在Unsupported Optimizations for Cosimulation中指出。

Test Bench的要求

mian函數(shù)返回零值則結(jié)果正確,返回非零值則結(jié)果不正確。

接口綜合的要求

用C/RTL cosimulation來驗證RTL設(shè)計時,下面要求必須要滿足:

  • top-level function必須用ap_ctrl_hs或者ap_ctrl_chain的塊級別的接口
  • 設(shè)計必須可以被結(jié)合
  • Top-level function必須有initiation intervl of 1
  • 接口的array必須被streaming或者被implemented with ap_fifo或者ap_hs axis接口

?

?

第一次勾選的是VHDL,并且沒有勾選optimizing compile選項,運(yùn)行一整晚卡在一個地方。現(xiàn)在我們運(yùn)行verilog,并且勾選Optimizing compile選項。

以下選項含義(UG902 Using C/RTL co-simulation):

  • Setup Only: 只創(chuàng)建所需要的文檔(wrappers, adapters, and scripts),只運(yùn)行simulation但不執(zhí)行simulator,要想執(zhí)行在RTL文件夾下<solution_name>/sim/<RTL>.運(yùn)行
  • Dump Trace:會生成一個trace 文檔,在<solution>/sim/<RTL>文檔中,可以選擇trace的信號,例如top-level的端口。具體內(nèi)容參見RTL simulator
  • Optimizing Compile:會增加compile的時間,但是simulation會執(zhí)行的更快
  • Reduce Disk Space:TRL simulation會產(chǎn)生大量數(shù)據(jù),此步可以把分成N個分開的RTL仿真,但是會運(yùn)行變慢。
  • Compiled Library Location:確定compiled library的位置,以便于用第三方的RTL simulatior
  • Input Arguments:為test bench確定任何輸入的arugments

執(zhí)行RTL simulation

vivado HLS在RTL simulation中的project的子目錄中運(yùn)行<SOLUTION>/sim/<RTL>,SOLUTION是solution的name,RTL是用于仿真的RTL type

所有c test bench寫入的文檔和co-simulation生成的trace files都會被寫入這個目錄下。

Verificaiton of directives

這部分不太懂,主要講DEPENDENCE,DATAFLOW, FIFO,STREAM這些優(yōu)化相關(guān)的東西,在文檔P196,看完優(yōu)化再回來看。

分析 RTL simulation

當(dāng)c/RTL cosimulation結(jié)束時,simulation reports生成,并且顯示測量得到的latenc和II,可能與HLS synthesis之后生成的report不同。

在沒有pipeline的設(shè)計之中,C/RTL cosimulaton將latency定為ap_start與ap_done之間的信號。pipeline中,latency就是data input與data output之間的時鐘周期。

Debug C/RTL cosimulutio略過,有點(diǎn)繁瑣。

Export the RTL design

vivado HLS的最終步驟就是生成一個IP block。RTL設(shè)計可以被package成以下形式:

  • IP Catalog formatted IP(用于Vivado Design suite)
  • System Generator for DSP IP(用于Vivado System Generator for DSP)
  • Synthesized Checkpoint(.dcp)

vivado HLS將相應(yīng)的c語言生成RTL語言,從而生成相應(yīng)的硬件模塊用于以后的系統(tǒng)設(shè)計。(導(dǎo)入相應(yīng)的RTL語言,應(yīng)該就是IP core)

轉(zhuǎn)載于:https://www.cnblogs.com/1057945230atqqdotcom/p/10695329.html

總結(jié)

以上是生活随笔為你收集整理的FPGA基础知识(四)UG902 RTL仿真与输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。