国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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之家 ? 來(lái)源:Spinal FPGA ? 作者:玉騏 ? 2021-06-17 09:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

那么如今轉(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í)。

來(lái)看一個(gè)demo:

pYYBAGDKqMiAXbFuAAFxmXl5Rhg455.jpg

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

pYYBAGDKqAKAFKFZAAE0dJBUbdw865.jpg

可以看到,在SpinalHDL中,對(duì)于SVA中的立即斷言和并發(fā)斷言,其只支持并發(fā)斷言。而且會(huì)生成額外邏輯用來(lái)支持?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來(lái)實(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è)問(wèn)題是: 1、使用GenerationFlags.formal及includeFormal時(shí)如果我們的代碼在GenerationFlags外圍如果有使用assert或者report時(shí),GenerationFlags.formal會(huì)將其屏蔽掉,在仿真時(shí)不起作用。 2、initstate()在verilator中不支持。 針對(duì)上面的問(wèn)題,可以采用: 1、采用GenerationFlags.simulation和includeSimulation替代GenerationFlags.formal及includeFormal。 2、如果要在復(fù)位期間添加sva,那么通過(guò)clockDomain.isResetActive替換initstate() 當(dāng)在生成Verilog時(shí)不添加includeSimulation,那么GenerationFlags.simulation所包含的內(nèi)容將不會(huì)生成在Verilog中,從而能夠提供一個(gè)干凈的代碼。 手冊(cè)中給出了支持的SVA:

pYYBAGDKp-uAVGcSAAFaHOXsqfU933.jpg

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

文章來(lái)源:Spinal FPGA

圖片來(lái)源:似猿非猿的FPGA

責(zé)任編輯:lq6

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

    關(guān)注

    54

    文章

    4486

    瀏覽量

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

    關(guān)注

    8

    文章

    332

    瀏覽量

    48978

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Renesas E1/E20 仿真器:設(shè)計(jì)與調(diào)試的全方位指南

    Renesas E1/E20 仿真器:設(shè)計(jì)與調(diào)試的全方位指南 電子設(shè)計(jì)領(lǐng)域,仿真器是調(diào)試和驗(yàn)證微控制器(MCU)程序不可或缺的工具。Ren
    的頭像 發(fā)表于 02-28 15:45 ?142次閱讀

    瑞薩E1/E20仿真器:設(shè)計(jì)、調(diào)試與使用全解析

    瑞薩E1/E20仿真器:設(shè)計(jì)、調(diào)試與使用全解析 嵌入式系統(tǒng)開(kāi)發(fā),仿真器是不可或缺的工具,它能幫助工程師高效地進(jìn)行硬件
    的頭像 發(fā)表于 02-11 17:05 ?596次閱讀

    Renesas E1/E20 仿真器:設(shè)計(jì)與調(diào)試全解析

    Renesas E1/E20 仿真器:設(shè)計(jì)與調(diào)試全解析 嵌入式系統(tǒng)開(kāi)發(fā)的廣闊領(lǐng)域中,仿真器扮演著至關(guān)重要的角色,它是工程師們調(diào)試和優(yōu)化代碼
    的頭像 發(fā)表于 02-09 10:30 ?406次閱讀

    嵌入式Android調(diào)試避坑:AP6256藍(lán)牙正常WiFi失效?原來(lái)是通道選錯(cuò)了!

    WiFi” 毫無(wú)反應(yīng),日志里還一堆報(bào)錯(cuò)。最近調(diào)試 RK3576+Android14+AP6256 模塊時(shí),就踩了這個(gè)坑,最后發(fā)現(xiàn)竟是 “通信通道選錯(cuò)” 導(dǎo)致的。今天就結(jié)合這個(gè)案例,帶大家搞懂 WiFi / 藍(lán)牙的工作邏輯、調(diào)試手段和開(kāi)發(fā)注意事項(xiàng),下次遇到類似問(wèn)題能快速破
    的頭像 發(fā)表于 02-02 17:16 ?2322次閱讀
    嵌入式Android<b class='flag-5'>調(diào)試</b>避坑:AP6256藍(lán)牙正常WiFi失效?原來(lái)是通道選錯(cuò)了!

    CD7377CZ/7388工程化調(diào)試故障排查手冊(cè)

    標(biāo)簽:#CD7377CZ故障排查 #7388調(diào)試手冊(cè) #音頻芯片工程調(diào)試 #線性穩(wěn)壓故障解決 #國(guó)產(chǎn)芯片應(yīng)用 #電子工程實(shí)操
    的頭像 發(fā)表于 12-11 16:07 ?398次閱讀

    嵌入式開(kāi)發(fā)調(diào)試神器全解析:JTAG、SWD、串口打印

    寫嵌入式代碼只是第一步,調(diào)試才是決定項(xiàng)目能不能順利推進(jìn)的關(guān)鍵。MCU不跑?外設(shè)不響應(yīng)?代碼跑飛?沒(méi)有合適的調(diào)試手段,排查問(wèn)題就像摸黑找路。本文帶你搞懂三大調(diào)試利器——JTAG、SWD、串口打印。不僅
    的頭像 發(fā)表于 11-24 19:04 ?907次閱讀
    嵌入式開(kāi)發(fā)<b class='flag-5'>調(diào)試</b>神器全解析:JTAG、SWD、串口打印

    請(qǐng)問(wèn)Finsh可以支持裸機(jī)?

    我想在我們裸機(jī)的里面加入finsh的的功能,是否可以支持呢? 我們的系統(tǒng)為消息事件驅(qū)動(dòng)的偽系統(tǒng),比較穩(wěn)定,但是缺少一些調(diào)試手段
    發(fā)表于 09-28 14:46

    時(shí)間同步設(shè)備復(fù)雜網(wǎng)絡(luò)環(huán)境調(diào)試要點(diǎn)

    時(shí)間同步設(shè)備是保障網(wǎng)絡(luò)系統(tǒng)協(xié)同運(yùn)行的基礎(chǔ)設(shè)施,尤其金融、電力、通信等領(lǐng)域?qū)纫筝^高的場(chǎng)景,其穩(wěn)定性直接影響業(yè)務(wù)連續(xù)性。實(shí)際部署,網(wǎng)絡(luò)環(huán)境的復(fù)雜性常給同步精度帶來(lái)挑戰(zhàn)。本文將
    的頭像 發(fā)表于 08-13 15:48 ?503次閱讀
    時(shí)間同步設(shè)備<b class='flag-5'>在</b>復(fù)雜網(wǎng)絡(luò)環(huán)境<b class='flag-5'>中</b>的<b class='flag-5'>調(diào)試</b>要點(diǎn)

    RT-Trace初體驗(yàn)一之使用Trace功能調(diào)試Cortex-M4 | 技術(shù)集結(jié)

    隨著嵌入式系統(tǒng)規(guī)模和復(fù)雜度不斷提升,傳統(tǒng)的調(diào)試手段已難以滿足對(duì)系統(tǒng)運(yùn)行狀態(tài)的精細(xì)化分析需求。為提升開(kāi)發(fā)效率、優(yōu)化系統(tǒng)性能,RT-Thread推出了一款全新調(diào)試工具——RT-Trace。該工具
    的頭像 發(fā)表于 07-06 10:03 ?1498次閱讀
    RT-Trace初體驗(yàn)一之使用Trace功能<b class='flag-5'>調(diào)試</b>Cortex-M4 | 技術(shù)集結(jié)

    泰克示波器 MSO58 混合信號(hào)示波器嵌入式系統(tǒng)調(diào)試的核心技巧

    嵌入式系統(tǒng)的開(kāi)發(fā)與調(diào)試,泰克示波器 MSO58 混合信號(hào)示波器憑借其強(qiáng)大的功能和靈活的特性,成為工程師不可或缺的調(diào)試利器。掌握其核心調(diào)試
    的頭像 發(fā)表于 07-01 16:28 ?611次閱讀
    泰克示波器 MSO58 混合信號(hào)示波器<b class='flag-5'>在</b>嵌入式系統(tǒng)<b class='flag-5'>調(diào)試</b><b class='flag-5'>中</b>的核心技巧

    如何調(diào)試nRF5 SDK

    本文將講述Nordic nRF5 SDK的主要調(diào)試手段,以幫助大家快速定位問(wèn)題,并解決問(wèn)題。一般來(lái)說(shuō),你可以通過(guò)打log方式,IDE的debug模式,SDK自帶的app_error_check函數(shù)
    的頭像 發(fā)表于 06-24 08:59 ?1008次閱讀
    如何<b class='flag-5'>調(diào)試</b>nRF5 SDK

    軸承損壞后導(dǎo)軌還能用嗎?

    軸承損壞后導(dǎo)軌還能用嗎?
    的頭像 發(fā)表于 04-03 17:52 ?761次閱讀
    軸承損壞后導(dǎo)軌<b class='flag-5'>還能用</b>嗎?

    SEW_DPV1調(diào)試手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《SEW_DPV1調(diào)試手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 04-01 16:29 ?0次下載

    模擬示波器電路設(shè)計(jì)與調(diào)試的應(yīng)用

    模擬示波器電路設(shè)計(jì)與調(diào)試的應(yīng)用主要體現(xiàn)在以下幾個(gè)方面:一、電路設(shè)計(jì)階段 信號(hào)驗(yàn)證: 電路設(shè)計(jì)階段,設(shè)計(jì)師可以通過(guò)模擬示波器觀測(cè)電路
    發(fā)表于 03-31 14:07

    單晶硅納米力學(xué)性能測(cè)試方法

    材料納米力學(xué)性能測(cè)試的眾多方法,納米壓痕技術(shù)憑借其獨(dú)特的優(yōu)勢(shì)脫穎而出,成為當(dāng)前的主流測(cè)試手段。
    的頭像 發(fā)表于 03-25 14:38 ?1483次閱讀
    單晶硅納米力學(xué)性能測(cè)試方法