99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

用python寫驗(yàn)證環(huán)境cocotb

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

掃碼添加小助手

加入工程師交流群

本文介紹了cocotb的安裝、python tb文件的寫法、用xrun仿真cocotb的腳本等,我們來(lái)看看體驗(yàn)如何。

一、準(zhǔn)備

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行:定義了一個(gè)時(shí)鐘,50MHz,100個(gè)周期。

13~17行:定義了一個(gè)復(fù)位信號(hào),低電平有效。復(fù)位拉高打印“Reset Done”,方便看log。

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

22行:異步啟動(dòng)gen_clk

23行:異步啟動(dòng)gen_rst

25~28行:產(chǎn)生了一些測(cè)試數(shù)據(jù),在時(shí)鐘下降沿后驅(qū)動(dòng)dut的din。

30行:等待100ns結(jié)束仿真

四、寫仿真腳本Makefile

SIM ?= xcelium
TOPLEVEL_LANG ?= verilog


VERILOG_SOURCES += ./top.sv
TOPLEVEL = top


MODULE = tb


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

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

五、仿真和看波形

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

圖片

由于我們?cè)赗TL頂層加入了dump fsdb波形的代碼,所以在log里可以看到有波形產(chǎn)生。280ns仿真結(jié)束,并顯示“tb passed”,并打印出匯總信息。可見(jiàn)log還是很友好的。

用verdi打開(kāi)fsdb,與預(yù)期一致:

圖片

聲明:本文內(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)注

    52

    文章

    4289

    瀏覽量

    135903
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

    25378
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86817

原文標(biāo)題:厭倦了sv/uvm?來(lái)看看用python寫驗(yàn)證環(huán)境-cocotb

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Python硬件驗(yàn)證——摘要

    - 為什么選擇 Python?如何使用 Python 進(jìn)行驗(yàn)證(測(cè)試平臺(tái))? Cocotb -(CO-routine 和 CO-simulation 的Testbench)可能是事實(shí)
    發(fā)表于 11-03 13:07

    詳細(xì)Python網(wǎng)絡(luò)爬蟲(chóng)

    詳細(xì)Python網(wǎng)絡(luò)爬蟲(chóng)
    發(fā)表于 09-07 08:40 ?32次下載
    詳細(xì)<b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>寫</b>網(wǎng)絡(luò)爬蟲(chóng)

    如何一個(gè)會(huì)講笑話的Python程序

    笑話從哪里來(lái)?自己肯定是不現(xiàn)實(shí)的。在這個(gè)“云”的時(shí)代,各種云都有,自然是不缺開(kāi)放API的。下面一個(gè)Python的例子,其實(shí)不止
    的頭像 發(fā)表于 01-11 16:47 ?3283次閱讀
    如何<b class='flag-5'>寫</b>一個(gè)會(huì)講笑話的<b class='flag-5'>Python</b>程序

    Python的一個(gè)電影推薦系統(tǒng)的程序和工程文件資料免費(fèi)下載

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

    90條關(guān)于Python 程序的建議

    自己 Python 也有四五年了,一直是自己的“強(qiáng)迫癥”在維持自己代碼的質(zhì)量。都有去看Google的Python代碼規(guī)范,對(duì)這幾年的工作經(jīng)驗(yàn),做個(gè)簡(jiǎn)單的筆記,如果你也在學(xué)pythp
    的頭像 發(fā)表于 05-31 10:12 ?1774次閱讀

    Python網(wǎng)絡(luò)爬蟲(chóng)

    Python網(wǎng)絡(luò)爬蟲(chóng)的方法說(shuō)明。
    發(fā)表于 06-01 11:55 ?21次下載

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

    and Verilog testbenches in Python.?? ????? 21世紀(jì),python成了一門吃香的語(yǔ)言。cocotb是一套基于python的用于構(gòu)建仿真及測(cè)試
    的頭像 發(fā)表于 10-13 17:01 ?7369次閱讀
    基于<b class='flag-5'>python</b>的用于構(gòu)建仿真及測(cè)試用例的lib庫(kù)<b class='flag-5'>cocotb</b>

    1.2 Python 開(kāi)發(fā)環(huán)境的搭建

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

    cocotb中的基礎(chǔ)語(yǔ)法

    cocotb的出現(xiàn)使得我們能夠在做RTL仿真驗(yàn)證時(shí)依托Python來(lái)進(jìn)行測(cè)試用例的構(gòu)建,當(dāng)我們習(xí)慣了Verilog、SystemVerilog來(lái)構(gòu)建測(cè)試用例時(shí),切換到
    的頭像 發(fā)表于 07-21 09:18 ?3063次閱讀

    怎么腳本產(chǎn)生一個(gè)驗(yàn)證環(huán)境

    之前有朋友問(wèn)我怎么腳本產(chǎn)生一個(gè)驗(yàn)證環(huán)境,這個(gè)問(wèn)題今天和大家介紹下兩種做法。
    的頭像 發(fā)表于 08-11 09:07 ?1825次閱讀

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

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

    Python的虛擬環(huán)境究竟是什么

    本質(zhì)上,Python的虛擬環(huán)境目的和上面是一樣的。希望大家不要誤解“虛擬”二字,Python的虛擬環(huán)境無(wú)非就是將系統(tǒng)的Python運(yùn)行
    的頭像 發(fā)表于 02-24 14:21 ?1349次閱讀

    如何測(cè)試Python環(huán)境

    在編程中,測(cè)試是一項(xiàng)重要的工作,可以幫助我們驗(yàn)證代碼的正確性和穩(wěn)定性。在Python編程環(huán)境中,同樣需要進(jìn)行測(cè)試來(lái)確保Python的安裝和配置是正確的。在本篇文章中,我們將介紹如何測(cè)試
    的頭像 發(fā)表于 04-14 12:14 ?5606次閱讀

    Python機(jī)器人上位機(jī)

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

    Python運(yùn)行環(huán)境有哪些

    Python是一種廣泛使用的高級(jí)編程語(yǔ)言,它有許多種運(yùn)行環(huán)境,可以適應(yīng)不同的開(kāi)發(fā)需求。下面將詳細(xì)介紹Python的幾種常見(jiàn)的運(yùn)行環(huán)境。 CPython: CPython是
    的頭像 發(fā)表于 11-29 16:14 ?2677次閱讀