精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

仿真調(diào)試手段在SpinalHDL中還能用嗎?

FPGA之家 ? 來源:Spinal FPGA ? 作者:玉騏 ? 2021-06-17 09:33 ? 次閱讀

要問做邏輯的什么看的最久,那一定是波形吧。那除了看波形,還能做點(diǎn)兒其他的么?

調(diào)試“三十六計(jì)”

作為邏輯開發(fā)者仿真是一個(gè)永遠(yuǎn)跑不掉的話題。盡管說嚴(yán)格來講設(shè)計(jì)和驗(yàn)證是分離的,但對(duì)于FPGA開發(fā)來講,即便是大廠也很少配備專門的邏輯驗(yàn)證人員來支持你的工作。無論是單元級(jí)仿真還是系統(tǒng)級(jí)仿真,那些年我們常用到仿真調(diào)試手段首推的估計(jì)就是看波形了。但老實(shí)講,小的模塊或者小的case看看波形還好,但如果是比較大的模塊或case需要很長的時(shí)間來跑的話那么追蹤波形對(duì)我個(gè)人來講還是很廢眼神的~

那么除了查看波形,我們常用的仿真調(diào)試手段無外乎在待仿真測(cè)試邏輯里添加打印和添加SVA了。對(duì)于添加打印,在之前通過verilog/systemVerilog搬磚時(shí)是時(shí)常干的事情,而SVA在上學(xué)的那會(huì)兒倒是看過下面這本書:

那么如今轉(zhuǎn)到SpinalHDL,這些手段是否還能用呢?

Assertion

與SystemVerilog中相似,SpinalHDL中也提供Assertion功能,其關(guān)鍵字也為assert:

assert(assertion : Bool, message : String = null, severity: AssertNodeSeverity = Error)assert(assertion: Bool, message: Seq[Any], severity: AssertNodeSeverity)

assertion:斷言條件

message:斷言失敗時(shí)顯示信息,可以是字符串或者是Seq。

severity:斷言等級(jí)。

來看一個(gè)demo:

pYYBAGDKqMiAXbFuAAFxmXl5Rhg455.jpg

這里放置了兩個(gè)assert,分別使用了兩種assert的使用方式。message中放置Seq時(shí)可以顯示更多的提示信息。 要知道即便我們是采用SpinalHDL,在仿真的時(shí)候還是要生成Verilog文件交給仿真器去執(zhí)行的。那看下生成的RTL代碼:

pYYBAGDKqAKAFKFZAAE0dJBUbdw865.jpg

可以看到,在SpinalHDL中,對(duì)于SVA中的立即斷言和并發(fā)斷言,其只支持并發(fā)斷言。而且會(huì)生成額外邏輯用來支持?jǐn)嘌裕以趶?fù)位期間是不做斷言檢查的。

report

SpinalHDL中提供了report方法用于在邏輯中顯示打印信息:

def report(message: String) = assert(False, message, NOTE)def report(message: Seq[Any]) = assert(False, message, NOTE) def report(message: String, severity: AssertNodeSeverity) = assert(False, message, severity)def report(message: Seq[Any], severity: AssertNodeSeverity) = assert(False, message, severity) 可以看到,report的底層實(shí)現(xiàn)是基于assert來實(shí)現(xiàn)的,且默認(rèn)斷言失敗,故而信息會(huì)一直打印。像上面的dmeo我們可以添加下面的打印信息:

report(Seq(“data0:”,io.data0,“ data1:”,io.data1,“ sum:”,io.sum),WARNING)

在生成的RTL代碼中會(huì)有:

poYBAGDKp_yAUeVJAADPLU4VgLQ035.jpg

同樣不出意外,在復(fù)位期間將不會(huì)打印任何信息。

Formal

針對(duì)SVA的支持,SpinalHDL提供了部分支持。在SpinalHDL-Doc中給出了下面的這個(gè)Demo:

pYYBAGDKp_KAKvVsAAF7a7PJauA080.jpg

object MyToplevelSystemVerilogWithFormal { def main(args: Array[String]) { val config = SpinalConfig(defaultConfigForClockDomains = ClockDomainConfig(resetKind=SYNC, resetActiveLevel=HIGH)) config.includeFormal.generateSystemVerilog(new TopLevel()) }}

但這個(gè)demo有幾個(gè)問題是: 1、使用GenerationFlags.formal及includeFormal時(shí)如果我們的代碼在GenerationFlags外圍如果有使用assert或者report時(shí),GenerationFlags.formal會(huì)將其屏蔽掉,在仿真時(shí)不起作用。 2、initstate()在verilator中不支持。 針對(duì)上面的問題,可以采用: 1、采用GenerationFlags.simulation和includeSimulation替代GenerationFlags.formal及includeFormal。 2、如果要在復(fù)位期間添加sva,那么通過clockDomain.isResetActive替換initstate() 當(dāng)在生成Verilog時(shí)不添加includeSimulation,那么GenerationFlags.simulation所包含的內(nèi)容將不會(huì)生成在Verilog中,從而能夠提供一個(gè)干凈的代碼。 手冊(cè)中給出了支持的SVA:

pYYBAGDKp-uAVGcSAAFaHOXsqfU933.jpg

但具體還是要看仿真器是否支持,畢竟verilator和vcs這些在功能上還是有一些差距。

文章來源:Spinal FPGA

圖片來源:似猿非猿的FPGA

責(zé)任編輯:lq6

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

    關(guān)注

    50

    文章

    4044

    瀏覽量

    133421
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

    47340

原文標(biāo)題:除了看波形,還能做點(diǎn)兒啥

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    谷景科普一體成型電感外殼破損還能不能用

    谷景科普一體成型電感外殼破損還能不能用編輯:谷景電子一體成型電感是近幾年比較熱門的一種電子元器件,尤其是一些精密度要求很高的電子產(chǎn)品,一體成型電感相較于其他電感產(chǎn)品會(huì)更具優(yōu)勢(shì)。一體成型電感的外殼
    發(fā)表于 11-13 22:49 ?0次下載

    一體成型電感外殼破損還能不能用

    電子發(fā)燒友網(wǎng)站提供《一體成型電感外殼破損還能不能用.docx》資料免費(fèi)下載
    發(fā)表于 10-31 10:57 ?0次下載

    設(shè)計(jì)仿真 基于VTD的AR-HUD仿真測(cè)試解決方案

    以虛擬場景為基礎(chǔ)的AR-HUD仿真測(cè)試手段,大大提升了產(chǎn)品開發(fā)迭代效率,降低開發(fā)成本,在行業(yè)內(nèi)得到了越來越多的關(guān)注,AR-HUD的仿真測(cè)試涵蓋MIL/SIL/HIL/DIL等不同階段,以VTD為基礎(chǔ)的
    的頭像 發(fā)表于 10-09 13:51 ?596次閱讀
    設(shè)計(jì)<b class='flag-5'>仿真</b>  基于VTD的AR-HUD<b class='flag-5'>仿真</b>測(cè)試解決方案

    解鎖SoC “調(diào)試”挑戰(zhàn),開啟高效原型驗(yàn)證之路

    引言由于芯片設(shè)計(jì)復(fù)雜度的提升、集成規(guī)模的擴(kuò)大,以及產(chǎn)品上市時(shí)間要求的縮短,使得設(shè)計(jì)驗(yàn)證變得更加困難。特別是多FPGA環(huán)境,設(shè)計(jì)調(diào)試和驗(yàn)證的復(fù)雜性進(jìn)一步增加,傳統(tǒng)的調(diào)試手段難以滿足對(duì)
    的頭像 發(fā)表于 10-09 08:04 ?531次閱讀
    解鎖SoC “<b class='flag-5'>調(diào)試</b>”挑戰(zhàn),開啟高效原型驗(yàn)證之路

    AFE77 JESD204B 調(diào)試手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《AFE77 JESD204B 調(diào)試手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 09-11 10:25 ?0次下載
    AFE77 JESD204B <b class='flag-5'>調(diào)試手</b>冊(cè)

    TI AFE8092 AFE8030 JESD204配置及調(diào)試手冊(cè)- Part A

    電子發(fā)燒友網(wǎng)站提供《TI AFE8092 AFE8030 JESD204配置及調(diào)試手冊(cè)- Part A.pdf》資料免費(fèi)下載
    發(fā)表于 09-03 10:02 ?2次下載
    TI AFE8092 AFE8030 JESD204配置及<b class='flag-5'>調(diào)試手</b>冊(cè)- Part A

    TI AFE8092 AFE8030 JESD204C配置及調(diào)試手冊(cè) Part B

    電子發(fā)燒友網(wǎng)站提供《TI AFE8092 AFE8030 JESD204C配置及調(diào)試手冊(cè) Part B.pdf》資料免費(fèi)下載
    發(fā)表于 08-29 10:50 ?0次下載
    TI AFE8092 AFE8030 JESD204C配置及<b class='flag-5'>調(diào)試手</b>冊(cè) Part B

    TI AFE8092/AFE8030 JESD204C配置及調(diào)試手冊(cè) Part C

    電子發(fā)燒友網(wǎng)站提供《TI AFE8092/AFE8030 JESD204C配置及調(diào)試手冊(cè) Part C.pdf》資料免費(fèi)下載
    發(fā)表于 08-29 10:39 ?0次下載
    TI AFE8092/AFE8030 JESD204C配置及<b class='flag-5'>調(diào)試手</b>冊(cè) Part C

    請(qǐng)問PMODE[2:0]處于懸空狀態(tài),即FFF,USB接口還能用嗎?

    請(qǐng)問PMODE[2:0]處于懸空狀態(tài),即FFF,USB接口還能用
    發(fā)表于 05-23 08:01

    單片機(jī)Debug的這幾種方式,你都知道嗎?

    調(diào)試、LED/蜂鳴器調(diào)試、單元測(cè)試等方式。下面我們就這些方式來進(jìn)行介紹。一、仿真調(diào)試仿真調(diào)試
    的頭像 發(fā)表于 05-01 08:10 ?3313次閱讀
    單片機(jī)Debug的這幾種方式,你都知道嗎?

    工字電感的磁芯掉一小塊還能用

    電子發(fā)燒友網(wǎng)站提供《工字電感的磁芯掉一小塊還能用嗎.docx》資料免費(fèi)下載
    發(fā)表于 03-29 14:37 ?0次下載

    淺析SpinalHDLPipeline的復(fù)位定制

    之前有系列文章介紹了SpinalHDLPipeline的使用,最近在一個(gè)功能模塊真實(shí)的使用了這個(gè)lib。
    的頭像 發(fā)表于 03-17 17:31 ?994次閱讀
    淺析<b class='flag-5'>SpinalHDL</b><b class='flag-5'>中</b>Pipeline<b class='flag-5'>中</b>的復(fù)位定制

    fpga仿真器是什么?它有哪些優(yōu)勢(shì)?

    FPGA仿真器是一種用于模擬FPGA(現(xiàn)場可編程門陣列)硬件行為的軟件工具。它通過模擬FPGA內(nèi)部的邏輯電路、時(shí)序和接口等,幫助工程師FPGA設(shè)計(jì)過程中進(jìn)行功能驗(yàn)證和性能測(cè)試。FPGA仿真
    的頭像 發(fā)表于 03-15 15:15 ?1588次閱讀

    貼片繞線電感外殼壞了還能用

    電子發(fā)燒友網(wǎng)站提供《貼片繞線電感外殼壞了還能用嗎.docx》資料免費(fèi)下載
    發(fā)表于 01-22 09:22 ?0次下載

    #2024,立Flag了嘛? #win平臺(tái)搭建SpinalHDL開發(fā)環(huán)境

    %\\\\lib; 系統(tǒng)變量path的 值里面添加%JAVA_HOME%\\\\bin和%JRE_HOME%\\\\jre\\\\bin 至此,對(duì)應(yīng)的開發(fā)所用的軟件安裝結(jié)束,對(duì)應(yīng)的仿真和波形顯示不再贅述; 還有就是要在SBT文件中進(jìn)行改寫: 到此就所有工作完成了。
    發(fā)表于 01-21 10:52