侵权投诉

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

基于python的用于构建仿真及测试用例的lib库cocotb

Open_FPGA ? 来源:似猿非猿的FPGA ? 作者:似猿非猿的FPGA ? 2021-10-13 17:01 ? 次阅读

对于从事ASIC行业及FPGA行业的小伙伴来说,仿真是一件必不可少的事情。或许有人是验证大拿,UVM高手,但相较于软件丰富的验证框架,对于各种各样的场景单纯的SV构建测试用例是否便捷值得推敲。

何为cocotb

cocotb is a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python.

21世纪,python成了一门吃香的语言。cocotb是一套基于python的用于构建仿真及测试用例的lib库,它的框架为:

可以看到,在cocotb的框架里,我们的待测试逻辑运行在仿真器中(VCS、Verilator等),而我们的测试框架及测试用例均以python的形式构建,双方通过仿真器提供的各种标准接口进行通信。及设计代码为Verilog/VHDL/Systemverilog,而测试代码为Python。

存在即合理,为什么这么搞?因为Python写起来简单呗!在能够正常实现对DUT的接口驱动的同时借助python丰富的lib库能够让我们快速的构建测试用例及参考模型。而借助软件现成的测试框架能够极大加速验证流程。想想单纯的一个图像处理的仿真用纯Systemverilog的方式进行验证在进行测试数据生成及最后结果对比要多少脚本……

cocotb安装

按照cocotb手册给出的安装流程,在CentOS里安装步骤为:
#Preparesudo yum install make gc++ gcc-c++ libstdc++-devel python3 python3-devel python3-pip#install cocotbpip install cocotb##pip may belong to a different Python installation# to what you expect. Use pip -V to check. If this #prints “(python 2.7)”, use pip3 or python3 -m pip #inplaceofpipinthecommandshown.
在安装过程中,有遇到“Python.h: No such file or directory”,解决办法为:
1.可以先查看一下含python-devel的包yumsearchpython|greppython-devel2.64位安装python-devel.x86_64,32位安装python-devel.i686,我这里安装:sudoyuminstallpython-devel.x86_643. 进入/usr/include/python2.7看一下现在有没有Python.h,版本不同目录名不同,我这里是2.7版本。其实也可以看到很多.h文件,python需要库或头文件都在这个地方。
安装后可以查看到:
$cocotb-config -v1.4.1.dev0
对于没有VCS等收费EDA license的小伙伴建议安装Verilator:
sudo apt-get install git make autoconf g++ flex bison -y  # First time prerequisitesgit clone http://git.veripool.org/git/verilator   # Only first timeunsetenv VERILATOR_ROOT  # For csh; ignore error if on bashunset VERILATOR_ROOT  # For bashcdverilatorautoconf        # Create ./configure script./configuremake -j$(nproc)sudomakeinstall

example

在cocotb中给出的example中,endian_swapper例子的测试框架为:

e07e8c38-2a05-11ec-82a8-dac502259ad0.png

测试框架和我们在平常的测试框架行为基本相同,不同是cocotb为Driver、Monitor、Scoreboard等都提供了基础类库供调用,对于搭建仿真平台应该有较好的帮助。而cocotb中提供的TestFactory,能够方便的进行测试用例的生成:
factory = TestFactory(run_test)factory.add_option("data_in",                 [random_packet_sizes])factory.add_option("config_coroutine",        [None, randomly_switch_config])factory.add_option("idle_inserter",           [None, wave, intermittent_single_cycles, random_50_percent])factory.add_option("backpressure_inserter",   [None, wave, intermittent_single_cycles, random_50_percent])factory.generate_tests()
这里根据输入的参数,factory会生成32个testcase用于测试,感觉还是蛮高效的。在仿真完成后,能够自动汇总测试结果:

写在最后

之所以探索下cocotb,主要原因是虽然SpinalHDL测试框架和cocotb差不多,但目前SpinalHDL尚未集成对VCS仿真器的集成(而我又没打算自己集成进去)。而在做FPGA设计时,若代码里集成了Xilinx/Altera的IP,那么在SpinalHDL的框架里就没办法进行仿真了,而cocotb则是一个不错的选择(若可以选,我仍选SpinalHDL,设计仿真一条龙,当然现在也可以,对于Mem、FIFO等常用IP SpinalHDL还是有提供的,或者我们自己按需定制实现IP也可以的,SpinalHDL写IP简直不要太爽)。

责任编辑:haq

原文标题:cocotb初探

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    数字IC设计入门(2)初识电子元件

    电阻电阻是一种限流元件,对电流起阻碍作用,阻值越大对电流的阻碍作用越大,通常用R表示。① 电阻串联串....
    发表于 01-12 17:17 ? 2次 阅读
    数字IC设计入门(2)初识电子元件

    KickStart平替来了,性价比更高的源表程控软件

    KickStart作为常用的吉时利软件,一直在高校和研究所的相关实验室内广泛使用,但其昂贵的价格让很....
    发表于 01-12 15:12 ? 6次 阅读
    KickStart平替来了,性价比更高的源表程控软件

    6小时速学掌握c语言转成verilog的技巧教程【很适合刚学零基础小白学习】

        6小时速学掌握c语言转成verilog的技巧         对以此课程有兴趣的同学点下面链接...
    发表于 01-12 09:50 ? 202次 阅读

    满足linux开发需要哪些软件

    如题: 1.买了一块OK335xd还没到货,看资料说用的是LINUX3.2,在ubuntu官网下载最新版本,不知道是否支持 2.最新版的ubu...
    发表于 01-12 06:09 ? 0次 阅读

    请问ok-rt160外接一个fpga使用什么接口啊?

    如题,我们arm上接fpga做一些控制,使用的是ti平台的gpmc接口。 请问ok-1601上用什么接口呢? ...
    发表于 01-12 06:00 ? 0次 阅读

    【年度精选】2021年度TOP榜单——FPGA论坛资料

    本榜单汇总了2021年下载量最高的5份资料,每份资料都有推荐理由,希望对工程师朋友们有所帮助! 1、 作者:o_dream &n...
    发表于 01-11 17:54 ? 272次 阅读

    拓维信息亮相2021年东湖国际人工智能高峰论坛

    由湖北省科技厅主办、华为和湖北科技信息研究院协办的2021年“东湖国际人工智能高峰论坛”在武汉东湖国....
    的头像 拓维信息 发表于 01-11 15:30 ? 171次 阅读

    拓维信息获评“2020-2021年度优秀创新软件产品”

    中国电子信息行业发展大会在盐城举行,会上进行了“2020-2021年度优秀创新软件产品”的发布,拓维....
    的头像 拓维信息 发表于 01-11 15:22 ? 152次 阅读

    拓维信息助力长沙“中国软件名城”建设

    2021年长沙市软件和信息技术服务业“名企、名人、名品”发布会暨长沙市软件和信息技术服务业促进会年度....
    的头像 拓维信息 发表于 01-11 15:05 ? 192次 阅读

    润和软件:软硬件同步,支撑OpenHarmony生态共建

    2021 AIOT开源科技节暨OpenHarmony技术论坛在广州召开,润和软件作为OpenHarm....
    的头像 HiHope社区 发表于 01-11 14:26 ? 157次 阅读

    润和软件出席华为云&华为终端云服务创新峰会2022

    以“云云协同,共创云上新价值”为主题的“华为云&华为终端云服务创新峰会2022”在北京盛大举办,润和....
    的头像 HiHope社区 发表于 01-11 14:22 ? 226次 阅读

    ERP功能和报表都不够用?现在用魔方网表不写代码就可以扩展了

    很多企业使用ERP软件对企业进行管理。但是随着互联网的发展,ERP不能满足人们对功能的需求了,这时人....
    发表于 01-11 11:11 ? 11次 阅读
    ERP功能和报表都不够用?现在用魔方网表不写代码就可以扩展了

    今天给大家分享一下我们GVIM系列教程【很适合刚学零基础小白学习】

        今天给大家分享一下我们高效编辑器 GVIM 的系列教程内容包括:GVIM的工作模式、基本技巧、高级技巧(替换...
    发表于 01-11 10:31 ? 101次 阅读

    黑芝麻智能以安全可靠的车规级大算力自动驾驶芯片助力行业向前

    近日,黑芝麻智能宣布获得DEKRA德凯全球首张ASPICE CL2级认证证书,这标志着黑芝麻智能的软....
    的头像 黑芝麻智能 发表于 01-11 10:30 ? 501次 阅读

    如何用Windows安全中心扫描清理电脑中的恶意软件或病毒

    大多数 Windows 10电脑都安装了Windows安全中心并在后台运行。这可以防止大多数恶意软件....
    发表于 01-11 10:29 ? 18次 阅读

    干货 | 电源PCB设计指南(含安规/EMC/布局/热设计/工艺)

    摘要:安规距离要求部分抗干扰、EMC部分整体布局及走线部分热设计部分工艺处理部分安规距离要求部分包括....
    发表于 01-11 10:14 ? 9次 阅读
    干货 | 电源PCB设计指南(含安规/EMC/布局/热设计/工艺)

    OKMX6UL开发板的接口有对接ram或FPGA的测试程序吗

    请问版主,OKMX6UL-C2工业级开发板的方案四,8位地址,16位数据接口有对接ram或者FPGA的例程或者测试程序么?谢谢。 ...
    发表于 01-11 07:52 ? 0次 阅读

    为什么要将rootfs更换为ubuntu-base的系统呢

    为什么要将rootfs更换为ubuntu-base的系统呢? 如何将rootfs更换为ubuntu-base的系统呢?...
    发表于 01-11 07:10 ? 0次 阅读

    焊件切割清单如何利用SW插件批量添加属性

    SolidKits. WeldmentPlus标准件增强工具是一款嵌入到SOLIDWORKS软件中的....
    发表于 01-10 19:50 ? 13次 阅读

    抓住JESD204B接口功能的关键问题

    本故障排除指南并未穷尽所有可能,但为使用JESD204B链路以及希望了解更多信息的工程师提供了一个很....
    发表于 01-10 11:06 ? 850次 阅读
    抓住JESD204B接口功能的关键问题

    继电器模块控制软件与固件程序下载

    继电器模块控制软件与固件程序下载
    发表于 01-10 09:40 ? 5次 阅读

    芯片精灵检测不到芯片型号的原因

    芯片精灵怎么使用?芯片精灵为什么检测不到芯片型号?今天小编就来介绍芯片精灵的具体使用方法及检测不到芯....
    的头像 Les 发表于 01-07 15:58 ? 465次 阅读

    上扬软件先进过程控制(APC)软件出口美国

    最近,上扬软件先进过程控制(APC)软件出口美国,这是国产半导体工业软件首次出口美国。
    的头像 上扬软件 发表于 01-07 15:27 ? 338次 阅读

    半导体基础知识(4):无源,有源和机电组件

    无源组件不能放大信号,并且它们不会产生机械运动。有源元件可以放大信号。机电组件将电能转换为机械运动,....
    发表于 01-07 12:19 ? 32次 阅读
    半导体基础知识(4):无源,有源和机电组件

    上扬软件打造国内首个应用智能制造系统Micro LED量产线

    近日,上扬软件为上海显耀实施的Micro LED制造执行系统MES(myCIM)项目在浦东临港正式启....
    的头像 上扬软件 发表于 01-07 11:57 ? 983次 阅读

    嘉佰达软件板通用协议V4.pdf

    嘉佰达软件板通用协议V4.pdf
    发表于 01-07 11:23 ? 12次 阅读

    华阳通用完成基于图像视觉的高级驾驶辅助系统

    近日,以“发明创新、自立自强”为主题的第二十五届全国发明展览会——一带一路暨金砖国家技能发展与技术创....
    的头像 ADAYO华阳通用 发表于 01-07 11:02 ? 1291次 阅读

    龙芯中科打破X86和ARM生态的垄断格局

    龙芯中科董事长胡伟武参加了由共青团中央宣传部、国资委新闻中心、中国科学院计算机网络信息中心联合主办的....
    的头像 龙芯中科 发表于 01-07 10:22 ? 333次 阅读

    i.MX6Q_Core_20150309应该下载哪个版本的软件呢

    你好! 我们以前的开发板现在想继续开发,但是资料和代码丢失了,核心板是i.MX6Q_Core_20150309,应该下载那个版本的软件?...
    发表于 01-07 08:05 ? 0次 阅读

    有没有.MX6DL外接FPGA相关的接线例程呢

    你好:最近计划用i.MX6DL 外接FPGA, i.MX6DL的EIM接口的地址和数据有很多是复用的,请问有没有相关的接线例程?...
    发表于 01-07 06:44 ? 0次 阅读

    pads 9.5软件无法打开windows10怎么办

    okmx6ul-c这个原理图,要求用pads 9.5打开,我装了一下这个软件,对windows的要求是w7以下,现在都是w10了,装不了这个软件啊,有...
    发表于 01-07 06:08 ? 0次 阅读

    普华基础软件推动中国信创产业与市场的稳步发展

    近日,由《信创产业》主导的信创产业实干者年终大盘点结果公布。榜单对基础硬件、基础软件、云、应用软件、....
    的头像 普华基础软件 发表于 01-06 15:59 ? 287次 阅读

    普华基础软件打造国产自主的底层基础技术

    中国汽车工业协会(以下简称“中汽协会”)常务副会长兼秘书长付炳锋一行莅临普华基础软件股份有限公司(以....
    的头像 普华基础软件 发表于 01-06 15:36 ? 295次 阅读

    普华基础软件已成功通过国家双软认证高新技术企业

    清华MEM大讲堂将定期邀请嘉宾进行分析,请同学们保持关注!
    的头像 普华基础软件 发表于 01-06 15:12 ? 240次 阅读

    普华基础软件正式加入龙蜥社区

    近日,经龙蜥社区理事会表决通过,普华基础软件股份有限公司(以下简称“普华基础软件”)正式加入龙蜥社区....
    的头像 普华基础软件 发表于 01-06 14:56 ? 243次 阅读

    博泰车联网引领智能座舱体验全面升级

    知名科创媒体亿欧网EqualOcean主办的以“数字重塑世界”为主题的世界创新者年会WorldInn....
    的头像 PATEO博泰车联网 发表于 01-06 13:53 ? 446次 阅读

    博泰车联网入选2021全球独角兽榜

    近日,胡润研究院携手广州市商务局、广州市黄埔区联合发布《2021全球独角兽榜》(Global Uni....
    的头像 PATEO博泰车联网 发表于 01-06 13:43 ? 2098次 阅读

    莱迪思FPGA助力联想下一代网络边缘AI体验

    莱迪思低功耗FPGA和机器视觉软件解决方案为联想(Lenovo?)最新的ThinkPad? X1系列....
    发表于 01-06 13:37 ? 804次 阅读
    莱迪思FPGA助力联想下一代网络边缘AI体验

    博泰车联网携手华为共创智能汽车零部件产业生态新格局

    2021华为智能汽车解决方案生态论坛暨华为智能座舱生态产业大会在苏州举办。本次论坛以“聚享生态,合创....
    的头像 PATEO博泰车联网 发表于 01-06 11:33 ? 496次 阅读

    FPGA中电源管脚在同一个BANK为何需要多个引脚?

    在此链接找到答案:http://xilinx.eetop.cn/viewthread-2281981....
    发表于 01-06 11:18 ? 14次 阅读
    FPGA中电源管脚在同一个BANK为何需要多个引脚?

    FPGA电源选择的重要性

    IF"> FPGA的电源需求通常很复杂,因为FPGA有多达至少三种供电要求,为了实现可靠的系统性能,....
    发表于 01-06 11:14 ? 9次 阅读
    FPGA电源选择的重要性

    ADAYO华阳通用通过ASPICE CL2国际认证

    近期,继获得ISO26262汽车功能安全证书后,华阳通用又通过ASPICE CL2(汽车行业软件过程....
    的头像 ADAYO华阳通用 发表于 01-06 10:31 ? 262次 阅读

    华阳集团汽车电子软件开发能力达到行业国际水平

    继华阳多媒体于2021年4月通过ASPICE CL2认证之后,近期华阳通用也顺利通过ASPICE C....
    的头像 ADAYO华阳集团 发表于 01-06 10:12 ? 1391次 阅读

    普华基础软件再起征程 发力智能汽车

    2021年,“十四五”开局,中国共产党迎来建党100周年;中国疫苗“入世”,助力全球“战疫”;中国航....
    的头像 普华基础软件 发表于 01-06 09:32 ? 1745次 阅读

    虹科VisualSim?产品介绍

    VisualSim——一款完整的电子系统级建模、架构设计与性能分析工具
    发表于 01-05 17:48 ? 6次 阅读

    虹科PCAN-Explorer6及其插件介绍

    PCAN-Explorer6是一个多功能的、专业的处理CAN及CANFD网络的软件。
    发表于 01-05 17:48 ? 6次 阅读

    软通动力加速鸿蒙生态的商业化推广

    由中国软件网和海比研究院主办的“洞见2022第五届中国企业服务年会”在北京成功举行。本次大会以“高增....
    的头像 软通动力 发表于 01-05 17:24 ? 381次 阅读

    软通动力推动数字化转型融合,促进产业链升级

    近日,由《数字商业时代》举办的2021年度“智造中国高峰论坛”成功举办,本次活动,旨在从“数字化”角....
    的头像 软通动力 发表于 01-05 17:16 ? 313次 阅读

    虹科CanEasy软件产品介绍

    CanEasy——总线仿真和分析软件(CAN/CANFD/LIN/汽车以太网)
    发表于 01-05 17:14 ? 10次 阅读

    NVIDIA DRIVE端到端平台可以满足大规模开发更安全交通方式

    CES 展会将于 2022 年 1 月 5 日至 1 月 8 日举办,届时,与会者可以收看 NVID....
    的头像 NVIDIA英伟达 发表于 01-05 16:25 ? 319次 阅读

    WinRAR软件免费下载

    WinRAR软件免费下载
    发表于 01-05 15:38 ? 14次 阅读

    FPGA-VGA的实现资料合集

    FPGA-VGA的实现资料合集
    发表于 01-05 15:34 ? 18次 阅读

    东软来以软件技术推动实体经济优化升级

    东软解决方案论坛2021首次以线上形式召开,论坛以“新时代 新生态 新格局”为主题,分享东软三十年来....
    的头像 东软集团 发表于 01-05 14:22 ? 273次 阅读

    华为加大“鸿蒙+欧拉”投入 打造数字世界基础软件的根

    2021年,我们经受住了严峻的考验,努力为客户、为社会创造价值,提升经营质量和运作效率,预计全年实现....
    的头像 华为 发表于 01-05 14:21 ? 308次 阅读

    中国智慧城市发展的机遇与挑战

    东软解决方案论坛2021首次以线上形式召开,以“软件定义未来城市”为主题的智慧城市分论坛同时上线。东....
    的头像 东软集团 发表于 01-05 14:20 ? 269次 阅读

    串口调试工具软件免费下载

    串口调试工具软件免费下载
    发表于 01-05 11:06 ? 20次 阅读

    服务器是什么,有哪些种类

    服务器是什么?服务器是一种管理计算资源的计算机,是指一个管理资源并为用户提供服务的计算机软件,具有可....
    的头像 我快闭嘴 发表于 01-05 10:41 ? 359次 阅读

    如何使用松下 EasyIP Setup Tool Plus软件

    本篇文章我们将跟随产品研发工程师汤姆·刘易斯(Tom Levis)去了解如何使用松下 EasyIP ....
    的头像 松下专业 发表于 01-05 09:04 ? 216次 阅读

    新唐Arm9微处理器的简单介绍

    最高可驱动彩色 1024x768 像素并行端口,内建 TFT LCD 控制器与 2D 图形加速器,彩....
    的头像 RTThread物联网操作系统 发表于 01-04 16:15 ? 263次 阅读

    HarmonyOS 2 提前完成所有既定产品正式版本上线

    据华为官方公告:已有上百款华为、荣耀设备升级到了 HarmonyOS 2 正式版,HarmonyOS....
    的头像 HarmonyOS技术社区 发表于 01-04 14:27 ? 334次 阅读

    TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

    TMP411设备是一个带有内置本地温度传感器的远程温度传感器监视器。远程温度传感器,二极管连接的晶体管通常是低成本,NPN或PNP型晶体管或二极管,是微控制器,微处理器或FPGA的组成部分。 远程精度为±1 °C适用于多个设备制造商,无需校准。双线串行接口接受SMBus写字节,读字节,发送字节和接收字节命令,以设置报警阈值和读取温度数据。 TMP411器件中包含的功能包括:串联电阻取消,可编程非理想因子,可编程分辨率,可编程阈值限制,用户定义的偏移寄存器,用于最大精度,最小和最大温度监视器,宽远程温度测量范围(高达150°C),二极管故障检测和温度警报功能。 TMP411器件采用VSSOP-8和SOIC-8封装。 特性 ±1°C远程二极管传感器 ±1°C本地温度传感器 可编程非理想因素 串联电阻取消 警报功能 系统校准的偏移寄存器 与ADT7461和ADM1032兼容的引脚和寄存器 可编程分辨率:9至12位 可编程阈值限...
    发表于 09-19 16:35 ? 384次 阅读
    TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

    TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器

    TMP468器件是一款使用双线制SMBus或I 2 C兼容接口的多区域高精度低功耗温度传感器。除了本地温度外,还可以同时监控多达八个连接远程二极管的温度区域。聚合系统中的温度测量可通过缩小保护频带提升性能,并且可以降低电路板复杂程度。典型用例为监测服务器和电信设备等复杂系统中不同处理器(如MCU,GPU和FPGA)的温度。该器件将诸如串联电阻抵消,可编程非理想性因子,可编程偏移和可编程温度限值等高级特性完美结合,提供了一套精度和抗扰度更高且稳健耐用的温度监控解决方案。 八个远程通道(以及本地通道)均可独立编程,设定两个在测量位置的相应温度超出对应值时触发的阈值。此外,还可通过可编程迟滞设置避免阈值持续切换。 TMP468器件可提供高测量精度(0.75°C)和测量分辨率(0.0 625°C)。该器件还支持低电压轨(1.7V至3.6V)和通用双线制接口,采用高空间利用率的小型封装(3mm×3mm或1.6mm×1.6mm),可在计算系统中轻松集成。远程结支持-55°C至+ 150°C的温度范围。 特性 8通道远程二极管温度传感器精度:±0.75&...
    发表于 09-18 16:05 ? 297次 阅读
    TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器
    她的小梨涡完整版免费阅读