精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

cocotb的安裝、python tb文件的寫(xiě)法

倩倩 ? 來(lái)源:處芯積律 ? 作者:處芯積律 ? 2022-09-21 11:33 ? 次閱讀

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

一、準(zhǔn)備

  • centos7

  • python3.6+

  • yum install python3-devel

  • pip3 install --upgradecocotb

二、寫(xiě)RTL


// top.svmodule 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

三、寫(xiě)tb


# tb.py
import cocotbfromcocotb.triggersimportTimer, FallingEdge
async def gen_clk(dut):    for cycle in range(100):        dut.clk.value = 0        await Timer(10, units="ns")        dut.clk.value = 1awaitTimer(10,units="ns")
async def gen_rst(dut):    dut.rst_n.value = 0    await Timer(22, units="ns")    dut.rst_n.value = 1print("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é)束仿真

四、寫(xiě)仿真腳本Makefile


SIM ?= xceliumTOPLEVEL_LANG ?= verilog
VERILOG_SOURCES += ./top.svTOPLEVEL = 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。不出意外的話,仿真可以正確編譯和仿真,如下圖:

819eeb2e-395c-11ed-9e49-dac502259ad0.png

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

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

826ac91a-395c-11ed-9e49-dac502259ad0.png

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)注

    14

    文章

    1016

    瀏覽量

    83645
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4751

    瀏覽量

    68358
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4782

    瀏覽量

    84460

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電腦是已經(jīng)安裝python2.7,為什么打開(kāi)GUI的script window時(shí),一直提示未找到python2.7?

    電腦是已經(jīng)安裝python2.7,為什么打開(kāi)GUI的script window時(shí),一直提示未找到python2.7?
    發(fā)表于 11-14 07:50

    使用Python搭建簡(jiǎn)易本地http服務(wù)器,升級(jí)WIPI模組

    01 下載python https://www.python.org/downloads/ 02 安裝python 安裝時(shí)候選擇把path加
    的頭像 發(fā)表于 09-29 15:38 ?234次閱讀
    使用<b class='flag-5'>Python</b>搭建簡(jiǎn)易本地http服務(wù)器,升級(jí)WIPI模組

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

    本文介紹了cocotb安裝、python tb文件寫(xiě)法、用xrun仿真
    的頭像 發(fā)表于 07-24 09:38 ?472次閱讀
    用<b class='flag-5'>python</b>寫(xiě)驗(yàn)證環(huán)境<b class='flag-5'>cocotb</b>

    如何實(shí)現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開(kāi)蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會(huì)看到一些用 Python 實(shí)現(xiàn)文件復(fù)制的特殊
    的頭像 發(fā)表于 07-18 14:53 ?374次閱讀

    用離線安裝安裝的idf,其創(chuàng)建的Python虛擬環(huán)境無(wú)激活腳本是怎么回事?

    如題,用離線安裝安裝的idf,其創(chuàng)建的Python虛擬環(huán)境無(wú)激活腳本,具體如下圖所示: 反而用vscode插件安裝的idf有,如下圖:vscode插件
    發(fā)表于 06-11 06:49

    Efinity軟件安裝教程與Efinity入門(mén)使用教程 大牛手把手教程

    1.軟件安裝教程 step1: 安裝Python,注意勾選“Add Python 3.7 to PATH” (2022版本及以后直接跳過(guò)該步驟) 注意:從2021.1就不需要單獨(dú)
    的頭像 發(fā)表于 05-20 17:10 ?2702次閱讀
    Efinity軟件<b class='flag-5'>安裝</b>教程與Efinity入門(mén)使用教程 大牛手把手教程

    Efinity軟件安裝-v3

    感謝朋友提供的視頻。 1.軟件安裝 step1: 安裝Python,注意勾選“Add Python 3.7 to PATH” (2022版本及以后直接跳過(guò)該步驟) 注意:從2021.1
    的頭像 發(fā)表于 03-29 08:38 ?360次閱讀

    如何使用linux下gdb來(lái)調(diào)試python程序

    GDB: ``` $ sudo apt install gdb ``` 安裝完成后,需要安裝Python調(diào)試符號(hào)。這些符號(hào)文件包含了Python
    的頭像 發(fā)表于 01-31 10:41 ?2425次閱讀

    itop-RK3588開(kāi)發(fā)板機(jī)器視覺(jué)開(kāi)發(fā)OpenCV-Python安裝

    itop-RK3588開(kāi)發(fā)板機(jī)器視覺(jué)開(kāi)發(fā)OpenCV-Python安裝
    的頭像 發(fā)表于 01-26 15:18 ?4091次閱讀
    itop-RK3588開(kāi)發(fā)板機(jī)器視覺(jué)開(kāi)發(fā)OpenCV-<b class='flag-5'>Python</b>的<b class='flag-5'>安裝</b>

    python運(yùn)行環(huán)境的安裝和配置

    Python是一種非常流行的編程語(yǔ)言,廣泛應(yīng)用于科學(xué)計(jì)算、Web開(kāi)發(fā)、人工智能等領(lǐng)域。為了能夠正常運(yùn)行Python程序,我們需要先安裝和配置Python運(yùn)行環(huán)境。本文將為您詳盡介紹
    的頭像 發(fā)表于 11-29 16:17 ?1104次閱讀

    查看python安裝路徑的方法

    Python是一種高級(jí)編程語(yǔ)言,常用于開(kāi)發(fā)Web應(yīng)用、數(shù)據(jù)分析、人工智能等領(lǐng)域。在使用Python進(jìn)行開(kāi)發(fā)之前,我們需要先安裝Python解釋器,并了解
    的頭像 發(fā)表于 11-29 14:54 ?1.1w次閱讀

    python安裝后idle在哪兒

    Python 是一種非常流行的編程語(yǔ)言,它使用簡(jiǎn)單且易于理解的語(yǔ)法,使得它成為初學(xué)者和專業(yè)開(kāi)發(fā)人員的首選。Python安裝非常簡(jiǎn)單,您只需在官方網(wǎng)站上下載適合您操作系統(tǒng)的安裝包,然
    的頭像 發(fā)表于 11-29 14:52 ?1154次閱讀

    python程序文件擴(kuò)展名主要有哪兩種

    Python程序文件的擴(kuò)展名主要有兩種,分別是.py和.pyw。 .py擴(kuò)展名: .py是Python程序最常見(jiàn)的擴(kuò)展名,它表示一個(gè)Python腳本
    的頭像 發(fā)表于 11-29 14:30 ?6717次閱讀

    python程序的文件擴(kuò)展名

    Python是一種高級(jí)編程語(yǔ)言,它的文件擴(kuò)展名為.py。在本文中,我們將詳細(xì)討論Python程序文件的擴(kuò)展名,包括其含義、用途以及與其他文件
    的頭像 發(fā)表于 11-29 14:25 ?1893次閱讀

    python軟件怎么運(yùn)行代碼

    理解的機(jī)器代碼。 在本文中,我們將詳細(xì)介紹如何運(yùn)行Python代碼。我們將探討以下幾個(gè)方面:安裝Python,設(shè)置環(huán)境變量,選擇一個(gè)集成開(kāi)發(fā)環(huán)境(IDE)或文本編輯器,編寫(xiě)代碼,運(yùn)行代碼和調(diào)試代碼。 第一步是
    的頭像 發(fā)表于 11-28 16:02 ?862次閱讀