hxc7206043的个人空间 https://blog.eetop.cn/andrew [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

【Cocotb系列】三、Cocotb验证平台Makefile和Cocotb.test简介

已有 4695 次阅读| 2021-1-22 23:03 |系统分类:芯片设计

本文基于Cocotb的simple_dff示例来介绍Cocotb用户可见的环境结构。首先从simple_dff的文件示例来看,整个包括四个文件,两个DUT文件,分别为Verilog和VHDL格式,支持不同类型的代码仿真,一个Makefile配置文件和一个python平台开发文件。

image.png

代码和仿真平台没有严格的位置绑定关系,用户可以根据实际情况合理存放相关设计和验证文件。本文重点阐述Makefile和test_dff.py文件。

一、首先针对Makefile做一个简要介绍:

image.png

Makefile第4~10行主要是基于设计代码类型指定代码源文件,Verilog类型则由变量VERILOG_SOURCES来指向当前的代码源文件;如若设计代码为VHDL,则由变量VHDL_SOURCES指定。该变量指定的文件会在仿真阶段调用执行。

Makefile第12行的变量MODULE指向的是Python验证平台的文件名称,此名称则对应test_dff.py文件。

Makefile第13行的变量TOPLEVEL则表明当前验证的DUT的Module Name。

Makefile第15行则include了cocotb安装目录下的Makefile.sim文件,该Makefile会根据运行cocotb的命令行中仿真器的类别来调用不同仿真器的makefile,从而执行相关仿真器的编译和仿真操作。

当用户需要在编译或者仿真阶段添加相关操作时,cocotb提供了COMPILE_ARGS/SIM_ARGS/RUN_ARGS等变量共用户添加使用,用户可以先参考https://docs.cocotb.org/en/stable/building.html?highlight=args了解相关的用法。

二、其次针对test_dff.py做一个简要介绍:

image.png

test_dff.py第4行import了random库,该库是做相关的random操作

test_dff.py第5行import了cocotb库,该库则是整个平台重要的库文件

test_dff.py第6行import了clock库,该库则是产生时钟的库文件

test_dff.py第7行import了FallingEdge库,该库则是信号下降沿触发的库文件

test_dff.py第10行是Python装饰器

test_dff.py第11行是Cocotb平台的主函数,该验证平台的整体功能均在此函数中完成。

test_dff_simple函数主要完成了以下功能:

1、第14~15行阐述周期为10us的时钟并驱动到dut的clk信号上,时钟是在整个进程中并行执行

2、第17行等待dut的clk的下降沿

3、第18~22行先在random一个0或1的值驱动到dut的d端口上,等时钟下降沿时check dut的q端口的数值是否等于random的值,该整体行为重复10个cycle

通过如上的简要描述我们可以发现,cocotb可以通过简单的配置和简单的代码描述完成一个基本的python验证平台。如果大家感兴趣可以按照笔者的简介依葫芦画瓢试一试吧。

内容如有错误还请各位指正,欢迎各位读者交流经验。邮箱:xiaochuan7206043@163.com


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 8

    粉丝
  • 2

    好友
  • 3

    获赞
  • 7

    评论
  • 376

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-4 15:56 , Processed in 0.013790 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部