热度 10| |
Cocotb是COroutine based COsimulation TestBench的简称,是基于Python语言的新的IC验证平台。Cocotb是一个始于2013年7月9日的开源项目,这个已有7年多的开源历程中,该开源社区在2017~2018年间相对冷清,但是在2019~2020年间特别是在2020年该开源社区异常活跃,Cocotb版本不断迭代更新,截止目前已有18个版本发布,最新版本为1.4.0(注:截止发稿日,Cocotb开源社区正在发布1.5.0版本)。
Cocotb相关介绍及使用文档链接:https://docs.cocotb.org/en/stable/
Cocotb Github开源项目链接:https://github.com/cocotb/cocotb
Cocotb最初由Potential Ventures的Stuart Hodgson和Chris Higgs在Solarflare Communications Ltd.的支持下以及Gordon McGregor和Finn Grimwood的贡献下开发。自2018年年中以来,cocotb成为Free and Open Source Silicon(FOSSi)基金会的独立项目 。FOSSi基金会向cocotb项目提供财务,法律和行政支持,并持有cocotb资产。
从相关资料获悉,Cocotb的开发者有如下的观点:
1、IC验证是一个软件工程
2、IC相关语言迭代较慢
3、敏捷开发开源用于IC验证
4、IC仿真器较为昂贵
而使用Python作为验证语言的意图源于如下几点:
1、写作效率高,代码易读
2、易于与其他语言交互
3、巨大丰富的生态系统
4、解释型语言,与仿真器独立
5、流行的软件语言,从业者较多
Cocotb支持众多的仿真工具。不仅支持Synopsys和Cadence的仿真工具,同时还支持相关开源工具。支持的仿真工具有:Icarus、Verilator、VCS、Riviera、Active-hdl、Questa、Modelsim、Incisive、Xcelium、GHDL、CVC。参看:https://docs.cocotb.org/en/stable/simulator_support.html
Cocotb是基于GPI实现Python与DUT的交互,Cocotb基于GPI/VPI等接口将激励驱动到DUT的接口上,同时通过Python直接监视DUT的输出,实现跟传统EDA环境相似的Drive和Monitor的功能。具体工作方式会在后续的日志中介绍。
由于Cocotb是基于Python的验证平台,同时Python是一种解释型语言,当在DUT稳定并需要调试环境时,Cocotb Testbench部分是无需再次编译而直接运行,快速的迭代加速环境的稳定和收敛。此点是笔者在Cocotb使用过程中感受较为明显的相对传统EDA平台的变化。针对Cocotb的优缺点,笔者会在后续的日志中不断更新,敬请期待……
本日志是笔者第一次在此平台上发布,内容如有错误还请各位指正,欢迎各位读者交流经验。邮箱:xiaochuan7206043@163.com