91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

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

如何利用verilog驗(yàn)證二分法查找的設(shè)計(jì)代碼

8ECz_icstudy ? 來(lái)源:未知 ? 作者:李倩 ? 2018-11-26 14:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這篇文章再探討一下如何利用verilog驗(yàn)證二分法查找的設(shè)計(jì)代碼。

話(huà)說(shuō)IC君當(dāng)時(shí)畢業(yè)的時(shí)候,拿了一個(gè)專(zhuān)門(mén)做驗(yàn)證的offer,最終為了愛(ài)情放棄了它。現(xiàn)在集成電路的規(guī)模越來(lái)越大,需要的驗(yàn)證人員越來(lái)越多,薪資待遇也是水漲船高。

verilog驗(yàn)證不同于設(shè)計(jì),不需要遵循可綜合的限制,只要verilog支持的語(yǔ)法都能拿來(lái)用,這個(gè)時(shí)候就需要大家發(fā)揮自己的想象力,竭盡所能找到所有的bug,并且能夠快速的報(bào)告錯(cuò)誤。

有時(shí)候甚至可以利用一些腳本自動(dòng)將錯(cuò)誤信息發(fā)送到郵箱。想象一下,下班前丟一個(gè)testbench到服務(wù)器上仿真,第二天上班的時(shí)候喝喝茶看看郵件就把bug抓了,是不是美滋滋的

如果我不是驗(yàn)證工程師,有沒(méi)有必要學(xué)點(diǎn)簡(jiǎn)單的驗(yàn)證技術(shù)呢?平時(shí)在做項(xiàng)目的過(guò)程中,大家負(fù)責(zé)的電路中可能有很多跟二分法查找類(lèi)似的小模塊。你可能一不小心寫(xiě)錯(cuò)了代碼,或者搭錯(cuò)了電路。這些小模塊我們最好隨手驗(yàn)證一下,雖然最終也會(huì)有其它人專(zhuān)門(mén)驗(yàn)證,但一些明顯的錯(cuò)誤如果被別人抓到了,還是有點(diǎn)不太爽的。

通常驗(yàn)證的代碼要包含三個(gè)部分:

1) 產(chǎn)生模擬激勵(lì)(波形)。

2) 將輸入激勵(lì)加入到測(cè)試模塊并收集其輸出響應(yīng);

3) 將響應(yīng)輸出與期望值進(jìn)行比較。

1

由于verilog是一個(gè)模擬硬件并行執(zhí)行的過(guò)程,所以上面三個(gè)部分沒(méi)有順序之分。

將輸入激勵(lì)加入到測(cè)試模塊并收集其輸出響應(yīng):

首先是模塊信號(hào)的定義,輸入信號(hào)會(huì)作為激勵(lì)加入到測(cè)試模塊SAR,SAR的輸出信號(hào)也會(huì)送到tb_sar模塊的線(xiàn)網(wǎng)信號(hào)pucode。

然后就是產(chǎn)生模擬激勵(lì)(波形)的過(guò)程:

從前2篇文章我們知道,6位的SAR查找過(guò)程需要跳5次clk,每次clk上升沿的INCR可能為1,也可能為0。驗(yàn)證過(guò)程必須要覆蓋所有可能的INCR的值。

這里我們?nèi)缟蠄D先產(chǎn)生RSTB 信號(hào),接著CLK信號(hào)toggle 5次,并用val[0],val[1],val[2],val[3],val[4]分別賦值給這5次的INCR,這是代碼中內(nèi)部小for循環(huán)(count)來(lái)實(shí)現(xiàn)。

為了遍歷所有的INCR,我們必須重復(fù)前面的過(guò)程32次,遍歷val[4:0]的取值從0-31,這樣就可以覆蓋到所有可能的INCR值了。這是代碼中外部大for循環(huán)(val)來(lái)實(shí)現(xiàn)。

下面是產(chǎn)生輸出文件的過(guò)程,這里我們?cè)O(shè)置輸出結(jié)果的格式是fsdb,當(dāng)然我們也可以設(shè)置成vcd的格式。fsdb的文件size比較小,而且利用verdi的波形工具nWave看起來(lái)也比較方便。在實(shí)際項(xiàng)目過(guò)程中,有時(shí)候我們要跑的testbench很多,跑出來(lái)的結(jié)果文件就會(huì)很多,如果不用fsdb格式,最終需要更大的存儲(chǔ)空間。

fsdb(fast signal database)文件是verdi使用一種專(zhuān)用的數(shù)據(jù)格式,類(lèi)似于VCD,但是它是只保留了仿真過(guò)程中信號(hào)的有用信息,除去了VCD中信息冗余,就像對(duì)VCD數(shù)據(jù)進(jìn)行了一次huffman編碼。因此fsdb數(shù)據(jù)量小,而且會(huì)提高仿真速度。fsdb是通過(guò)verilog的PLI接口來(lái)實(shí)現(xiàn)的。$fsdbDumpfile,$fsdbDumpvars等

VCD是一個(gè)通用的波形文件格式,是IEEE1364標(biāo)準(zhǔn)(Verilog HDL語(yǔ)言標(biāo)準(zhǔn),p325)中定義的一種ASCII文件.可以通過(guò)Verilog HDL的系統(tǒng)函數(shù)$dumpfile,$dumpvars等來(lái)生成,基本所有的Verilog仿真器都會(huì)支持。

將響應(yīng)輸出與期望值進(jìn)行比較:

接下來(lái)是產(chǎn)生期望值,期望值這里我們定義為nextpu,驗(yàn)證工程師的主要工作職責(zé)就是用與設(shè)計(jì)工程師不同的方法產(chǎn)生期望值。一般的公司都會(huì)是不同的人來(lái)做驗(yàn)證,可能有些小公司是一個(gè)人既做設(shè)計(jì)又做驗(yàn)證。

最后是比較期望值和測(cè)試模塊SAR的輸出,如果不同則打印出錯(cuò)誤信息。這里用一個(gè)always語(yǔ)句實(shí)現(xiàn),如果pucode發(fā)生變化就比較結(jié)果,有錯(cuò)誤就輸出到屏幕。

2

下圖就是整個(gè)驗(yàn)證的波形:

可以看出val從0-31依次變化,pucode和nextpu的值也是一樣,沒(méi)有什么錯(cuò)誤。

再看一下某一次的二分法查找過(guò)程:

首先rstb會(huì)從low到high,這樣pucode就會(huì)被設(shè)置成初始值6'b100000;

在5次clk toggle的過(guò)程中,incr一直為0,pucode會(huì)一直發(fā)生變化,最終pucode變?yōu)?'b000001。

驗(yàn)證了我們之前文章的2個(gè)版本的設(shè)計(jì)代碼,竟然都沒(méi)有錯(cuò)誤,因?yàn)楸緛?lái)就是一個(gè)小模塊,出現(xiàn)錯(cuò)誤的可能性也不大。

不過(guò)沒(méi)有錯(cuò)誤,感覺(jué)怪怪的,把設(shè)計(jì)代碼改一改,確認(rèn)我們的驗(yàn)證代碼是不是真正起作用了,哈哈。

我們把設(shè)計(jì)代碼中一句:

改成如下所示:

再run一下驗(yàn)證代碼:

pucode和nextpu就有了不一致性:

這時(shí)候debug一下,就很容易定位錯(cuò)誤的代碼。

寫(xiě)到這里關(guān)于二分法查找(二進(jìn)制搜索/逐次逼近SAR)的學(xué)習(xí)就告一段落了。這個(gè)模塊雖然小,但是起碼把開(kāi)出spec,設(shè)計(jì)電路,驗(yàn)證電路基本的流程都過(guò)了一遍,以后可能還會(huì)嘗試類(lèi)似小模塊的學(xué)習(xí)。

不積跬步無(wú)以至千里,IC的學(xué)習(xí)就是一個(gè)慢慢積累違反人性的過(guò)程,希望大家能一起學(xué)習(xí)進(jìn)步~。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guā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)注

    173

    文章

    6027

    瀏覽量

    175089
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9795

    瀏覽量

    88009
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1367

    瀏覽量

    112305

原文標(biāo)題:收尾篇:verilog驗(yàn)證二分法查找

文章出處:【微信號(hào):icstudy,微信公眾號(hào):跟IC君一起學(xué)習(xí)集成電路】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何用C語(yǔ)言實(shí)現(xiàn)高效查找二分法

    今天給分享一下使用C語(yǔ)言實(shí)現(xiàn)二分算法,主要包含以下幾部分內(nèi)容:二分查找算法介紹二分查找算法使用場(chǎng)景二分
    的頭像 發(fā)表于 06-04 08:04 ?1784次閱讀
    如何用C語(yǔ)言實(shí)現(xiàn)高效<b class='flag-5'>查找</b>(<b class='flag-5'>二分法</b>)

    Java常用排序算法&程序員必須掌握的8大排序算法+二分法查找

    Java常用排序算法&程序員必須掌握的8大排序算法+二分法查找
    發(fā)表于 10-19 19:33

    簡(jiǎn)單的查找算法

    ; } return 0;} 3. 有序數(shù)組表的查找:一般使用二分法查找。通過(guò)判斷查找元素與中間元素(mid)的大小來(lái)決定下一次的查找在低
    發(fā)表于 12-27 22:33

    Labview實(shí)現(xiàn)二分法查找數(shù)值區(qū)間

    二分法是檢索里經(jīng)常用到的一種方法,可以實(shí)現(xiàn)對(duì)有序數(shù)組進(jìn)行檢索,本程序通過(guò)二分法實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行區(qū)間匹配,并輸出最小匹配區(qū)間和匹配區(qū)間的索引值,尤其適合多段函數(shù)的數(shù)值計(jì)算。
    發(fā)表于 04-18 13:22

    淺析漸近表示二分法

    《算法圖解》NOTE 1 算法的漸近表示以及二分法
    發(fā)表于 10-10 10:58

    C語(yǔ)言教程之二分查找

    C語(yǔ)言教程之二分查找,很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-22 11:06 ?0次下載

    基于C語(yǔ)言二分查找排序源代碼

    本文檔內(nèi)容介紹了C語(yǔ)言歸并、選擇、直接插入、希爾、冒泡、快速、堆排序與順序、二分查找排序源代碼,分享給大家供大家參考。
    發(fā)表于 01-04 11:24 ?1次下載

    基于二分法與移動(dòng)Sink的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)收集協(xié)議

    傳感器節(jié)點(diǎn)能量的有限性,嚴(yán)重制約了無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的推廣與發(fā)展。因此,如何改善傳感器節(jié)點(diǎn)能源的利用率、節(jié)約能耗以及提高整個(gè)網(wǎng)絡(luò)的生存周期成為該領(lǐng)域研究者面臨的挑戰(zhàn)之一。 為延長(zhǎng)網(wǎng)絡(luò)生存周期,提出一種基于二分法與移動(dòng)Sink的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)收集協(xié)
    發(fā)表于 03-12 10:43 ?0次下載
    基于<b class='flag-5'>二分法</b>與移動(dòng)Sink的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)收集協(xié)議

    圖像處理算法之二分查找

    二分查找又稱(chēng)折半查找,優(yōu)點(diǎn)是比較次數(shù)少,查找速度快,平均性能好;其缺點(diǎn)是要求待查表為有序表,且插入刪除困難。
    的頭像 發(fā)表于 03-17 11:29 ?5133次閱讀

    二分法查找在實(shí)際電路中的應(yīng)用

    進(jìn)制搜索實(shí)現(xiàn)的逐次逼近常常用于需要校準(zhǔn)的場(chǎng)景中,比如SAR ADC、DRAM ZQ 校準(zhǔn)、儀器校準(zhǔn)算法等。
    的頭像 發(fā)表于 10-29 10:03 ?6664次閱讀
    <b class='flag-5'>二分法</b><b class='flag-5'>查找</b>在實(shí)際電路中的應(yīng)用

    詳解C語(yǔ)言二分查找算法細(xì)節(jié)

    我相信對(duì)很多讀者朋友來(lái)說(shuō),編寫(xiě)二分查找的算法代碼屬于玄學(xué)編程,雖然看起來(lái)很簡(jiǎn)單,就是會(huì)出錯(cuò),要么會(huì)漏個(gè)等號(hào),要么少加個(gè) 1。
    的頭像 發(fā)表于 06-22 09:05 ?2989次閱讀
    詳解C語(yǔ)言<b class='flag-5'>二分</b><b class='flag-5'>查找</b>算法細(xì)節(jié)

    現(xiàn)代混合云服務(wù)對(duì)未來(lái)托管數(shù)據(jù)中心的意義

    與以前的版本不同,新的混合云框架更易于部署,并且消除了“云計(jì)算vs托管數(shù)據(jù)中心”的二分法
    的頭像 發(fā)表于 08-21 11:00 ?2027次閱讀

    筑基_C_5_對(duì)數(shù)組的二分查找

    C語(yǔ)言泛型編程,實(shí)現(xiàn)對(duì)數(shù)組中某元素的二分查找
    發(fā)表于 12-06 10:21 ?9次下載
    筑基_C_5_對(duì)數(shù)組的<b class='flag-5'>二分</b><b class='flag-5'>查找</b>

    如何理解二分查找算法

    本文就來(lái)探究幾個(gè)最常用的二分查找場(chǎng)景:尋找一個(gè)數(shù)、尋找左側(cè)邊界、尋找右側(cè)邊界。 而且,我們就是要深入細(xì)節(jié),比如不等號(hào)是否應(yīng)該帶等號(hào),mid 是否應(yīng)該加一等等。分析這些細(xì)節(jié)的差異以及出現(xiàn)這些差異的原因,保證你能靈活準(zhǔn)確地寫(xiě)出正確的
    的頭像 發(fā)表于 04-19 11:10 ?849次閱讀
    如何理解<b class='flag-5'>二分</b><b class='flag-5'>查找</b>算法

    FPGA設(shè)計(jì)中二分法查表算法的實(shí)現(xiàn)

    二分查找算法是在軟件中廣泛應(yīng)用的一種算法,那么在FPGA的設(shè)計(jì)中是否可以用這種算法呢?什么場(chǎng)景下會(huì)可能用到這種算法呢?
    的頭像 發(fā)表于 09-06 18:26 ?1532次閱讀
    FPGA設(shè)計(jì)中<b class='flag-5'>二分法</b>查表算法的實(shí)現(xiàn)
    主站蜘蛛池模板: 成年女人毛片 | 日韩三级在线免费观看 | 韩国三级理论在线观看视频 | 国产美女激情视频 | 日本高清加勒比 | 日韩欧美黄色 | 夜夜夜夜夜夜夜工噜噜噜 | 午夜网站在线播放 | 久久综合久久久久 | 卡一卡二卡三国色天香永不失联 | 中文字幕不卡一区 | 狠狠的操 | 人人做人人澡人人人爽 | 婷婷六月激情在线综合激情 | 末发育娇小性色xxxxx视频 | 开心激情五月网 | 美女视频黄又黄又免费高清 | 亚洲性爱城 | 韩国理论三级在线观看视频 | 狠狠轮 | 久久黄色一级片 | 亚洲成在人 | 色吧五月天 | 丁香六月五月婷婷 | 女人色视频 | 一级大片免费看 | 中文字幕在线色 | 又粗又大又爽又色又过瘾视频 | 美女久久久| 中韩日欧美电影免费看 | a资源在线 | bt种子在线www天堂官网 | 日韩免费看 | 日韩高清特级特黄毛片 | gav久久| 美女视频黄a视频美女大全 美女视频一区二区 | 久久亚洲综合中文字幕 | 亚洲综合情 | 成年网站在线播放 | 日日拍夜夜嗷嗷叫狠狠 | 久久精品免费观看久久 |