本文介紹了cocotb的安裝、python tb文件的寫法、用xrun仿真cocotb的腳本等,我們來看看體驗如何。
一、準備
二、寫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");top);endclk, negedge rst_n)if(!rst_n)dout <= 'd0;elsedout <= din;endmodule // top
三、寫tb
# tb.pyimport cocotbfromcocotb.triggersimportTimer, FallingEdgeasync def gen_clk(dut):for cycle in range(100):dut.clk.value = 0await Timer(10, units="ns")dut.clk.value = 1awaitTimer(10,units="ns")async def gen_rst(dut):dut.rst_n.value = 0await Timer(22, units="ns")dut.rst_n.value = 1print("ResetDone")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_dataawait 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 ?= xceliumTOPLEVEL_LANG ?= verilogVERILOG_SOURCES += ./top.svTOPLEVEL = topMODULE = tbinclude $(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,與預期一致:

審核編輯 :李倩
-
仿真器
+關注
關注
14文章
1051瀏覽量
87262 -
代碼
+關注
關注
30文章
4967瀏覽量
73960 -
python
+關注
關注
57文章
4876瀏覽量
90025
原文標題:厭倦了sv/uvm?來看看用python寫驗證環境
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
安裝 Python VisionFive_GPIO失敗是哪里出了問題?
德州儀器TB5R1/TB5R2:四通道差分PECL接收器的技術剖析
【EASY EAI Nano-TB(RV1126B)開發板試用】+桌面系統安裝及測試
【EASY EAI Nano-TB(RV1126B)開發板試用】介紹、系統安裝
沒有專利的opencv-python 版本
Termux中調試圣誕樹Python代碼
【EASY EAI Nano-TB(RV1126B)開發板試用】桌面系統功能測試-安裝桌面系統chromium-browser
EASY EAI Nano-TB(RV1126B)開發板試用】1、初識
使用NucleiStudio生成tb仿真需要的.verilog文件
termux調試python猜數字游戲
termux如何搭建python游戲
linux虛擬環境中調用Linux 版matlab編譯的python庫時出錯
【VisionFive 2單板計算機試用體驗】安裝openplc
?如何在虛擬環境中使用 Python,提升你的開發體驗~
cocotb的安裝、python tb文件的寫法
評論