COCOTB
cocotb简介
cocotb是一个开源的python库,用来测试搭建好的数字电路。cocotb的优势在于它支持使用python编写测试用例和测试框架。相比于直接使用verilog或者system verilog,以及UVM等测试框架,python有更敏捷易用的开发特性,在轻量级的设计中能更快速的完成数字电路的测试验证需求。
以下为cocotb的官方库:
cocotb安装
此处博主主要以windows+anaconda为主要安装环境。在windows平台安装anaconda后,使用anaconda提供的python环境即可简单安装cocotb。即输入以下指令
pip install cocotb
即可一键安装
icarus verilog(以下简称iverilog)
iverilog简介
iverilog是一个开源的verilog语言仿真器(注意:iverilog只支持verilog语言,不支持VHDL等其他RTL语言)。iverilog支持verilog-1995,verilog-2001和部分verilog-2005标准。相比于vivado,modelsim以及vcs等其他仿真器,iverilog具有轻量级的特性,可以更快速的进行环境搭建以及仿真。
以下为iverilog的安装包下载网页:
Icarus Verilog for Windows (bleyer.org)
windows环境下,只需要下载以下安装包,就可以进行快速安装
Gtkwave
该安装包已经包含了一个开源的波形查看器 GTKwave,在安装完成后,在cmd中输入
就可以开启gtkwave:
cocotb+icarus verilog进行联合仿真
尝试执行cocotb官方例程adder
当cocotb和icarus verilog都成功安装后,我们可以在cocotb的github仓库中,下载它的例程,用于初步的尝试cocotb:
cocotb官方仓库提供了以下7个例程:
我们以adder为例:
adder下有三个文件夹,其中
hdl文件夹存放了要测试的verilog代码
model文件夹存放了用python实现的加法器对比模型
tests文件夹存放了cocotb搭建的仿真环境
我们通过anaconda promp,启动安装有cocotb的python解释器,然后进入tests文件夹
执行以下指令
python test_adder.py
然后会得到以下结果:
说明当前用例执行完成。
用例测试完成后,查看波形:
在执行该例程后,我们会看到新增了一个文件夹sim_build:
进入sim_build,会看到
其中dump.vcd即是我们需要查看的波形。
使用gtkwave打开dump.vcd文件,即可查看波形
在安装以及仿真过程中产生的问题:
1.cocotb例程报错
cocotb 安装目前默认为1.8.1的稳定版本
在cocotb github官方仓库下载例程时,要注意将分支
切换为
例程才能被正常执行
2. cocotb正确安装,并且例程下载正确时,仿真开始后卡死,但是没有任何提示
这是由于当前的windows账户不是超级管理员账户。在windows10及以后的windows版本中,默认超级管理员账户是关闭的,所以需要手动设置当前账户为超级管理员账户,或者每次启动anaconda prompt时,选择
才能正常执行cocotb的仿真。