91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

基于python的用于構(gòu)建仿真及測試用例的lib庫cocotb

OpenFPGA ? 來源:似猿非猿的FPGA ? 作者:似猿非猿的FPGA ? 2021-10-13 17:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對于從事ASIC行業(yè)及FPGA行業(yè)的小伙伴來說,仿真是一件必不可少的事情?;蛟S有人是驗(yàn)證大拿,UVM高手,但相較于軟件豐富的驗(yàn)證框架,對于各種各樣的場景單純的SV構(gòu)建測試用例是否便捷值得推敲。

何為cocotb

cocotb is a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python.

21世紀(jì),python成了一門吃香的語言。cocotb是一套基于python的用于構(gòu)建仿真及測試用例的lib庫,它的框架為:

可以看到,在cocotb的框架里,我們的待測試邏輯運(yùn)行在仿真器中(VCS、Verilator等),而我們的測試框架及測試用例均以python的形式構(gòu)建,雙方通過仿真器提供的各種標(biāo)準(zhǔn)接口進(jìn)行通信。及設(shè)計代碼為Verilog/VHDL/Systemverilog,而測試代碼為Python。

存在即合理,為什么這么搞?因?yàn)镻ython寫起來簡單唄!在能夠正常實(shí)現(xiàn)對DUT的接口驅(qū)動的同時借助python豐富的lib庫能夠讓我們快速的構(gòu)建測試用例及參考模型。而借助軟件現(xiàn)成的測試框架能夠極大加速驗(yàn)證流程。想想單純的一個圖像處理的仿真用純Systemverilog的方式進(jìn)行驗(yàn)證在進(jìn)行測試數(shù)據(jù)生成及最后結(jié)果對比要多少腳本……

cocotb安裝

按照cocotb手冊給出的安裝流程,在CentOS里安裝步驟為:
#Preparesudo yum install make gcc gcc-c++ libstdc++-devel python3 python3-devel python3-pip#install cocotbpip install cocotb##pip may belong to a different Python installation# to what you expect. Use pip -V to check. If this #prints “(python 2.7)”, use pip3 or python3 -m pip #inplaceofpipinthecommandshown.
在安裝過程中,有遇到“Python.h: No such file or directory”,解決辦法為:
1.可以先查看一下含python-devel的包yumsearchpython|greppython-devel2.64位安裝python-devel.x86_64,32位安裝python-devel.i686,我這里安裝:sudoyuminstallpython-devel.x86_643. 進(jìn)入/usr/include/python2.7看一下現(xiàn)在有沒有Python.h,版本不同目錄名不同,我這里是2.7版本。其實(shí)也可以看到很多.h文件,python需要庫或頭文件都在這個地方。
安裝后可以查看到:
$cocotb-config -v1.4.1.dev0
對于沒有VCS等收費(fèi)EDA license的小伙伴建議安裝Verilator:
sudo apt-get install git make autoconf g++ flex bison -y  # First time prerequisitesgit clone http://git.veripool.org/git/verilator   # Only first timeunsetenv VERILATOR_ROOT  # For csh; ignore error if on bashunset VERILATOR_ROOT  # For bashcdverilatorautoconf        # Create ./configure script./configuremake -j$(nproc)sudomakeinstall

example

在cocotb中給出的example中,endian_swapper例子的測試框架為:

e07e8c38-2a05-11ec-82a8-dac502259ad0.png

測試框架和我們在平常的測試框架行為基本相同,不同是cocotb為Driver、Monitor、Scoreboard等都提供了基礎(chǔ)類庫供調(diào)用,對于搭建仿真平臺應(yīng)該有較好的幫助。而cocotb中提供的TestFactory,能夠方便的進(jìn)行測試用例的生成:
factory = TestFactory(run_test)factory.add_option("data_in",                 [random_packet_sizes])factory.add_option("config_coroutine",        [None, randomly_switch_config])factory.add_option("idle_inserter",           [None, wave, intermittent_single_cycles, random_50_percent])factory.add_option("backpressure_inserter",   [None, wave, intermittent_single_cycles, random_50_percent])factory.generate_tests()
這里根據(jù)輸入的參數(shù),factory會生成32個testcase用于測試,感覺還是蠻高效的。在仿真完成后,能夠自動匯總測試結(jié)果:

寫在最后

之所以探索下cocotb,主要原因是雖然SpinalHDL測試框架和cocotb差不多,但目前SpinalHDL尚未集成對VCS仿真器的集成(而我又沒打算自己集成進(jìn)去)。而在做FPGA設(shè)計時,若代碼里集成了Xilinx/Altera的IP,那么在SpinalHDL的框架里就沒辦法進(jìn)行仿真了,而cocotb則是一個不錯的選擇(若可以選,我仍選SpinalHDL,設(shè)計仿真一條龍,當(dāng)然現(xiàn)在也可以,對于Mem、FIFO等常用IP SpinalHDL還是有提供的,或者我們自己按需定制實(shí)現(xiàn)IP也可以的,SpinalHDL寫IP簡直不要太爽)。

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

    關(guān)注

    1660

    文章

    22410

    瀏覽量

    636255
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    5332

    瀏覽量

    91577

原文標(biāo)題:cocotb初探

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Keil MDK生成LIB及使用LIB

    問題引出:為什么要做成lib? 1、不想將自己寫的源代碼公開,但是同時文件又需要讓別人能夠正常調(diào)用,那封裝成lib的格式就是一個方法。 2、編譯某些工程文件時非常耗時,像ST官方的
    發(fā)表于 01-22 07:17

    一文詳解SystemC仿真的編譯

    AMD Vivado 設(shè)計套件以文件和的形式提供仿真模型。仿真包含器件和 IP 的行為和時序模型。編譯后的可供多個設(shè)計項(xiàng)目使用。用戶必
    的頭像 發(fā)表于 12-12 15:08 ?4820次閱讀
    一文詳解SystemC<b class='flag-5'>仿真</b><b class='flag-5'>庫</b>的編譯

    新品首發(fā)·東方中科智能座艙測試系統(tǒng)

    域協(xié)同測試的全流程閉環(huán)自動化測試。該系統(tǒng)搭載自研的HMI自動化測試軟件,提供圖形化編輯界面,用戶無需編程即可快速構(gòu)建測試序列,輕松實(shí)現(xiàn)
    的頭像 發(fā)表于 11-28 10:33 ?543次閱讀
    新品首發(fā)·東方中科智能座艙<b class='flag-5'>測試</b>系統(tǒng)

    在verilog testbench中運(yùn)行測試用時,運(yùn)行到make run_test出錯怎么解決?

    按照胡老師書上的在verilog testbench中運(yùn)行測試用時,在運(yùn)行到make run_test步驟時出錯,查了很多方案沒有解決。
    發(fā)表于 11-11 06:52

    Iverilog仿真e203_hbirdv2跑RISC-V指令測試用

    環(huán)境:Ubuntu20.04、Iverilog12.0、gtkwave3.3.103 內(nèi)容:Iverilog仿真e203_hbirdv2跑RISC-V指令測試用 要點(diǎn): 下載安裝
    發(fā)表于 10-27 08:24

    如何讓大模型生成你想要的測試用

    應(yīng)用大模型生成測試用,常見的知識,測試大模型,微調(diào),RAG等技術(shù)門檻都不低,甚至很難,因此對于應(yīng)用者而言,最快的方式就是應(yīng)用好提示詞,調(diào)教屬于個人風(fēng)格的
    的頭像 發(fā)表于 09-26 10:01 ?944次閱讀
    如何讓大模型生成你想要的<b class='flag-5'>測試用</b><b class='flag-5'>例</b>?

    芯片硬件測試用

    是項(xiàng)目開始的關(guān)鍵,利用白盒和黑盒覆蓋,保證產(chǎn)品質(zhì)量。根據(jù)芯片功能,目標(biāo)市場,進(jìn)行測試立項(xiàng):依據(jù)BRD/MRD/PRD;計劃:測試需求分析、人力資源時間線;測試用
    的頭像 發(fā)表于 09-05 10:04 ?956次閱讀
    芯片硬件<b class='flag-5'>測試用</b><b class='flag-5'>例</b>

    上??匕玻夯谀P偷?b class='flag-5'>測試用生成

    在當(dāng)今復(fù)雜多變的軟件開發(fā)環(huán)境中,軟件系統(tǒng)的規(guī)模和復(fù)雜度不斷攀升,傳統(tǒng)測試方法面臨著諸多挑戰(zhàn)。如何高效、準(zhǔn)確地生成測試用,以確保軟件系統(tǒng)的質(zhì)量和可靠性,成為軟件測試領(lǐng)域的關(guān)鍵問題之一。
    的頭像 發(fā)表于 08-28 14:30 ?841次閱讀
    上??匕玻夯谀P偷?b class='flag-5'>測試用</b><b class='flag-5'>例</b>生成

    HarmonyOSAI編程單元測試用

    根據(jù)選中的ArkTS方法名稱,CodeGenie支持自動生成對應(yīng)單元測試用,提升測試覆蓋率。 在ArkTS文檔中,光標(biāo)放置于方法名稱上或框選完整的待測試方法代碼塊,右鍵選擇CodeG
    發(fā)表于 08-27 14:33

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計23:UVM驗(yàn)證平臺

    子系統(tǒng)模型組成。UVM驗(yàn)證包用于構(gòu)建測試用、提供激勵、監(jiān)測接口、對比分析統(tǒng)計測試結(jié)果;DUT 為待
    發(fā)表于 08-26 09:49

    AI生成的測試用真的靠譜嗎?

    軟件測試正經(jīng)歷一場深刻的技術(shù)革命。AI,尤其是以GPT、通義千問、文心一言、Claude等為代表的大語言模型(LLM),開始廣泛介入測試流程:從需求分析、測試用設(shè)計,到腳本生成與
    的頭像 發(fā)表于 08-01 10:02 ?1743次閱讀
    AI生成的<b class='flag-5'>測試用</b><b class='flag-5'>例</b>真的靠譜嗎?

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計18:UVM驗(yàn)證平臺

    子系統(tǒng)模型組成。UVM驗(yàn)證包用于構(gòu)建測試用、提供激勵、監(jiān)測接口、對比分析統(tǒng)計測試結(jié)果;DUT 為待
    發(fā)表于 07-31 16:39

    linux虛擬環(huán)境中調(diào)用Linux 版matlab編譯的python時出錯

    各位大神,能否幫忙解決以下問題,不勝感激。 問題描述:使用linux版的matlab2018b使用mcc -v -W python:CAO_python -T link:lib ... -d
    發(fā)表于 07-18 10:40

    【評測試用】合眾HZ-T536開發(fā)板免費(fèi)試用體驗(yàn)

    【評測試用】合眾HZ-T536開發(fā)板免費(fèi)試用體驗(yàn)
    的頭像 發(fā)表于 05-27 08:05 ?968次閱讀
    【評<b class='flag-5'>測試用</b>】合眾HZ-T536開發(fā)板免費(fèi)<b class='flag-5'>試用</b>體驗(yàn)

    NVMe IP開發(fā)速成: 三個月不是夢

    環(huán)境,它基于UVM驗(yàn)證環(huán)境,對熟悉UVM的伙伴非常友好,便于后續(xù)特定測試用的編寫與GS修改;同時提供測試用,便于理解;并且可做仿真極限壓
    的頭像 發(fā)表于 04-14 19:52 ?1265次閱讀
    NVMe IP開發(fā)速成: 三個月不是夢