首页> 中国专利> 一种基于python实现芯片系统顶层自动例化的方法

一种基于python实现芯片系统顶层自动例化的方法

摘要

本发明公开了一种基于python实现芯片系统顶层自动例化的方法,包括以下步骤:收集RTL子模块接口信息填写接口信息表,以sheet来区分模块;使用python语言编写的脚本对接口信息表格进行处理;在弹出窗口中的输入行,输入想要的模块顶层名字,生成顶层文件;对产生的检查结果即log文件进行检查,查看是否存在问题。所述python语言编写的脚本,能够对接口信息表进行处理并产生正确的连接后的顶层文件。本发明使用易懂的python语言编写了顶层代码自动例化脚本,对填写的接口信息表进行了处理后生成了顶层代码,大大地减少了顶层代码集成的工作量,修改容易,并自带一些信号接口位宽和接口类型的检查,不容易出错。

著录项

  • 公开/公告号CN112861454A

    专利类型发明专利

  • 公开/公告日2021-05-28

    原文格式PDF

  • 申请/专利权人 芯河半导体科技(无锡)有限公司;

    申请/专利号CN202110131740.9

  • 发明设计人 王晓明;

    申请日2021-01-30

  • 分类号G06F30/33(20200101);

  • 代理机构

  • 代理人

  • 地址 214135 江苏省无锡市新吴区菱湖大道200号中国传感网国际创新园E1-301

  • 入库时间 2023-06-19 11:08:20

说明书

技术领域

本发明涉及集成电路设计验证技术领域,具体是一种基于python实现芯片系统顶层自动例化的方法。

背景技术

由于芯片制造工艺的提升,从40nm到28nm,16nm,以及7nm的大量商用,芯片中能集成的模块越来越多,即电路复杂度越来越高,给芯片顶层的集成带来了越来越大的困难。

目前芯片中顶层的连接方式基本采用人工方式,即手动连接的方式。芯片顶层例化模块越多,带来的工作量和出错率也越多。在实际的设计中,对于大规模的芯片,设计人员在做顶层例化的时候,有可能高达几百个模块,每个模块至少几十个信号,通常有上万根信号需要去连接,手动连接的出错率很高。

此外,从工作量角度考虑,为了减少出错,设计人员在连接完毕后,需要仔细并多次检查,一旦有模块之间信号的大量变动,都要推倒重来,人力和时间成本非常高。对于项目进度也是很大的影响。因为项目周期不得不在顶层例化的时候留出一定的时间,这些都是现有技术的不足之处。

发明内容

本发明的目的在于提供一种基于python语言实现芯片顶层自动例化的方法,以解决手动连接在顶层例化时候工作繁琐、耗时较多、容易出错的缺陷的问题。

为实现上述目的,本发明提供如下技术方案:

一种基于python实现芯片系统顶层自动例化的方法,包括以下步骤:

S1、收集RTL子模块接口信息填写接口信息表,以sheet来区分模块;

S2、使用python语言编写的脚本(转化成了.exe文件)对接口信息表格进行处理;

S3、在弹出窗口中的输入行,输入想要的模块顶层名字,生成顶层文件;

S4、对产生的检查结果即log文件进行检查,查看是否存在问题。

作为本发明的进一步方案:所述接口信息表各模块的sheet中需填写接口名字、信号位宽、接口属性、信号来源模块、信号目的模块以及顶层信号名称。

作为本发明的进一步方案:所述python语言编写的脚本,能够对接口信息表进行处理并产生正确的连接后的顶层文件。

作为本发明的进一步方案:所述python语言编写的脚本分为三个函数:

(1)第一个函数的作用是将excel表格中各个子模块中的信号录入字典,索引(键)为模块名,值为信号信息(信号名、源、目的、位宽等),即定义输入的面向对象,使用python最常用的类(class)语句来实现。

(2)第二个函数的作用是对录入字典的信号一次进行检查,对符合规范的信号录入信号有效字典,索引(键)为模块名,值为信号信息;对于不符合规范的信号进行标记,被标记的信号会被打印在信号所在模块的log中,并打印不符合规范的错误。

(3)第三个函数的作用是通过检查的信号(信号有效字典)生成对应的集成代码,该函数根据标准的verilog语法,在函数(2)通过的基础上,定义模块名、产生例化模块、产生连线信号;此外,还能够打印语法、设置打印的格式、空格、位宽语法、结束符号及与相关内容。

作为本发明的再进一步方案:函数(2)做如下几种检查:(a)表格模块内名字信号是否重复;(b)源端input/output对应的dest/src名字与本模块名字是否有不同;(c)信号没有对端模块;(d)对端模块信号名字是否匹配;(e)对端与源端in/out是否匹配;(f)对端与源端位宽是否匹配;(g)接口信息不准确(非input/output/inout这三种情况);(h)信号位宽填写是否符合规范;(i)信号是否存在多驱动,存在就报出来;(j)是否有信号没考虑到,无任何连接;若检查出有问题,则打印错误编号。

与现有技术相比,本发明的有益效果是:使用易懂的python语言编写了顶层代码自动例化脚本,对填写的接口信息表进行了处理后生成了顶层代码,大大地减少了顶层代码集成的工作量,修改容易,并自带一些信号接口位宽和接口类型的检查,不容易出错。

附图说明

图1为一种基于python实现芯片系统顶层自动例化的流程图。

图2为block A模块的接口信息表。

图3为block B模块的接口信息表。

具体实施方式

下面结合具体实施方式对本专利的技术方案作进一步详细地说明。

请参阅图1,一种基于python实现芯片系统顶层自动例化的方法,包括以下步骤:

S1、收集RTL子模块接口信息填写接口信息表,以sheet来区分模块;在表格各模块的sheet中填写包括(接口名字,信号位宽,接口属性,信号来源模块,信号目的模块,以及顶层信号名称);

S2、使用python语言编写的脚本(转化成了.exe文件)对接口信息表格进行处理;

S3、在弹出窗口中的输入行,输入想要的模块顶层名字,生成顶层文件;

S4、对产生的检查结果即log文件进行检查,查看是否存在问题。

在脚本完成的基础上操作实例:

需求是对block A和block B进行例化和连接到,形成顶层top.v。

填写分别如图2和图3所示的,block A和block B两个模块的接口信息表(一个表格两个sheet),该表格一般项目都会维护,方便项目后期一起检查各模块接口信息,所以不算额外工作。

填写内容主要就包括SIG_NMAE(信号名称),WIDTH(信号位宽),I/O(接口类型),SOURCE(信号来源模块),DESTINATION(信号目的模块),TOP_PIN(指定信号在顶层的名字)。

填写完后,用鼠标左键拖动表格到编写的python脚本(.exe)上,然后弹出窗口,输入想要指定的顶层名,就输出了顶层文件,以及检查报告。

上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下作出各种变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号