色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用python寫驗證環境cocotb

OpenFPGA ? 來源: ExASIC ? 2024-07-24 09:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹了cocotb的安裝、python tb文件的寫法、用xrun仿真cocotb的腳本等,我們來看看體驗如何。

一、準備

centos7

python3.6+

yum install python3-devel

pip3 install --upgradecocotb

二、寫RTL

// top.sv
module top
  (
   input wire       clk,
   input wire       rst_n,
   input wire [7:0] din,
   output reg [7:0] dout
   );


  initial begin
    $fsdbDumpfile("top.fsdb");
    $fsdbDumpvars(0, top);
  end

  always@(posedge clk, negedge rst_n)
    if(!rst_n)
      dout <= 'd0;
    else
      dout <= din;
  
endmodule // top

三、寫tb

# tb.py


import cocotb
fromcocotb.triggersimportTimer, FallingEdge


async def gen_clk(dut):
    for cycle in range(100):
        dut.clk.value = 0
        await Timer(10, units="ns")
        dut.clk.value = 1
awaitTimer(10,units="ns")


async def gen_rst(dut):
    dut.rst_n.value = 0
    await Timer(22, units="ns")
    dut.rst_n.value = 1
print("ResetDone")


@cocotb.test()
async def tb(dut):


    await cocotb.start(gen_clk(dut))
    await cocotb.start(gen_rst(dut))


    test_data_list = range(0,50, 5)
    for test_data in test_data_list:
        await FallingEdge(dut.clk)
dut.din.value=test_data
    
    await Timer(100, units="ns")

6~11行:定義了一個時鐘,50MHz,100個周期。

13~17行:定義了一個復位信號,低電平有效。復位拉高打印“Reset Done”,方便看log。

19行:用@cocotb.test()裝飾器指定了tb的頂層主函數。

22行:異步啟動gen_clk

23行:異步啟動gen_rst

25~28行:產生了一些測試數據,在時鐘下降沿后驅動dut的din。

30行:等待100ns結束仿真

四、寫仿真腳本Makefile

SIM ?= xcelium
TOPLEVEL_LANG ?= verilog


VERILOG_SOURCES += ./top.sv
TOPLEVEL = top


MODULE = tb


include $(shell cocotb-config --makefiles)/Makefile.sim

設置默認仿真器cadence xcellium,RTL語言選verilog,指定RTL頂層模塊名字(就是dut的名字),testbench的名字為tb,最后include一個cocotb共用的makefile。

五、仿真和看波形

把top.sv、tb.py、Makefile放同一個目錄下,敲linux命令:make。不出意外的話,仿真可以正確編譯和仿真,如下圖:

圖片

由于我們在RTL頂層加入了dump fsdb波形的代碼,所以在log里可以看到有波形產生。280ns仿真結束,并顯示“tb passed”,并打印出匯總信息。可見log還是很友好的。

用verdi打開fsdb,與預期一致:

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 仿真
    +關注

    關注

    52

    文章

    4260

    瀏覽量

    135681
  • 文件
    +關注

    關注

    1

    文章

    579

    瀏覽量

    25337
  • python
    +關注

    關注

    56

    文章

    4826

    瀏覽量

    86603

原文標題:厭倦了sv/uvm?來看看用python寫驗證環境-cocotb

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Python硬件驗證——摘要

    - 為什么選擇 Python?如何使用 Python 進行驗證(測試平臺)? Cocotb -(CO-routine 和 CO-simulation 的Testbench)可能是事實
    發表于 11-03 13:07

    詳細Python網絡爬蟲

    詳細Python網絡爬蟲
    發表于 09-07 08:40 ?32次下載
    詳細<b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>寫</b>網絡爬蟲

    如何一個會講笑話的Python程序

    笑話從哪里來?自己肯定是不現實的。在這個“云”的時代,各種云都有,自然是不缺開放API的。下面一個Python的例子,其實不止
    的頭像 發表于 01-11 16:47 ?3269次閱讀
    如何<b class='flag-5'>寫</b>一個會講笑話的<b class='flag-5'>Python</b>程序

    Python的一個電影推薦系統的程序和工程文件資料免費下載

    本文檔的主要內容詳細介紹的是Python的一個電影推薦系統的資料免費下載。
    發表于 05-31 08:00 ?1次下載
    <b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>寫</b>的一個電影推薦系統的程序和工程文件資料免費下載

    90條關于Python 程序的建議

    自己 Python 也有四五年了,一直是自己的“強迫癥”在維持自己代碼的質量。都有去看Google的Python代碼規范,對這幾年的工作經驗,做個簡單的筆記,如果你也在學pythp
    的頭像 發表于 05-31 10:12 ?1760次閱讀

    Python網絡爬蟲

    Python網絡爬蟲的方法說明。
    發表于 06-01 11:55 ?21次下載

    基于python的用于構建仿真及測試用例的lib庫cocotb

    and Verilog testbenches in Python.?? ????? 21世紀,python成了一門吃香的語言。cocotb是一套基于python的用于構建仿真及測試
    的頭像 發表于 10-13 17:01 ?7334次閱讀
    基于<b class='flag-5'>python</b>的用于構建仿真及測試用例的lib庫<b class='flag-5'>cocotb</b>

    1.2 Python 開發環境的搭建

    1.2 Python 開發環境的搭建 理論上只需要你安裝了 CPython 解釋器后,就可以開始 Python 代碼了。為了讓你的在代碼
    的頭像 發表于 02-15 17:16 ?1663次閱讀
    1.2 <b class='flag-5'>Python</b> 開發<b class='flag-5'>環境</b>的搭建

    cocotb中的基礎語法

    cocotb的出現使得我們能夠在做RTL仿真驗證時依托Python來進行測試用例的構建,當我們習慣了Verilog、SystemVerilog來構建測試用例時,切換到
    的頭像 發表于 07-21 09:18 ?3031次閱讀

    怎么腳本產生一個驗證環境

    之前有朋友問我怎么腳本產生一個驗證環境,這個問題今天和大家介紹下兩種做法。
    的頭像 發表于 08-11 09:07 ?1807次閱讀

    cocotb的安裝、python tb文件的寫法

    設置默認仿真器為cadence xcellium,RTL語言選verilog,指定RTL頂層模塊名字(就是dut的名字),testbench的名字為tb,最后include一個cocotb共用的makefile。
    的頭像 發表于 09-21 11:33 ?4117次閱讀

    Python的虛擬環境究竟是什么

    本質上,Python的虛擬環境目的和上面是一樣的。希望大家不要誤解“虛擬”二字,Python的虛擬環境無非就是將系統的Python運行
    的頭像 發表于 02-24 14:21 ?1326次閱讀

    如何測試Python環境

    在編程中,測試是一項重要的工作,可以幫助我們驗證代碼的正確性和穩定性。在Python編程環境中,同樣需要進行測試來確保Python的安裝和配置是正確的。在本篇文章中,我們將介紹如何測試
    的頭像 發表于 04-14 12:14 ?5574次閱讀

    Python機器人上位機

    PythonGUI的插件比較多,常用的有Tkinter、pyqt5,本將使用pyqt5機器人的上位機。Tkinter 是 Python的標準 GUI 庫,是
    發表于 05-09 11:10 ?0次下載
    <b class='flag-5'>Python</b><b class='flag-5'>寫</b>機器人上位機

    Python運行環境有哪些

    Python是一種廣泛使用的高級編程語言,它有許多種運行環境,可以適應不同的開發需求。下面將詳細介紹Python的幾種常見的運行環境。 CPython: CPython是
    的頭像 發表于 11-29 16:14 ?2645次閱讀
    主站蜘蛛池模板: 午夜4k最新福利 | 尿孔 调教 扩张 | 国产不卡视频在线观看 | 老司机试看午夜 | 亚洲AV久久无码精品九号 | 色欲人妻无码AV专区 | 欧美wwwvideos在线观看 | 亚洲乱亚洲乱妇13p 亚洲乱色视频在线观看 | 好紧好湿太硬了我太爽了文字 | 狠狠色丁香婷婷久久综合五月 | 内射人妻无码色AV麻豆去百度搜 | 中文字幕在线观看网址 | 69式国产真人免费视频 | 国产乱人视频在线观看 | 国产成人无码区免费内射一片色欲 | 么公在浴室了我的奶 | 毛片免费观看视频 | 久久综合狠狠综合久久综合88 | 美妇教师双飞后菊 | 国产专区青青在线视频 | 欧洲美女人 一级毛片 | 囯产免费精品一品二区三区视频 | 国产亚洲AV无码成人网站 | 全彩黄漫火影忍者纲手无遮挡 | 空姐厕所啪啪啪 | adc影院在线| 国产老头与老太hd | 果冻传媒在线观看视频 | AV精品爆乳纯肉H漫网站 | 男的插曲女的下面免费APP | 国产精品一区二区亚瑟不卡 | 日韩精品熟女一区二区三区中文 | 2022国产麻豆剧传媒剧情 | 91青青草原 | 久久麻豆亚洲AV成人无码国产 | 婷婷四房播客五月天 | 国产精品人妻无码久久久2022 | 蜜桃成熟时2电影免费观看d | 无码免费视频AAAAAA片草莓 | 精品麻豆一卡2卡三卡4卡乱码 | 成人免费无毒在线观看网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品