公开/公告号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)上,然后弹出窗口,输入想要指定的顶层名,就输出了顶层文件,以及检查报告。
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下作出各种变化。
机译: 自动化音乐创作和生成系统,自动化音乐创作和生成过程,自动化音乐创作和生成,玩具乐器,音乐伴奏和音乐创作玩具乐器,自动化创作玩具乐器系统和音乐生成,电子信息处理和显示系统,企业基于互联网的一流音乐创作和生成系统,用于自动生成和传送数字复合音乐的网络系统,用于音乐环境的基于独立音乐的音乐创作和表演系统人工智能,基于音乐的自主创作过程音乐的生成和表演人工智能,自主分析仪器系统,用于建立自动音乐创作和生成引擎的网络,几何方法音乐理论系统操作参数映射,以自动方式构成和生成数字音乐的方法,参数转换
机译: 一种家庭自动化网络中的通信方法,该方法使角色之间的通信能够通过帧与与建筑物中的设备项相关联的命令发送器和/或命令接收器组成;用于对家庭自动化安装进行编程的翻译设备,一种类型的家庭自动化设备是命令发送器和/或命令接收器和/或家庭自动化安装编程工具;和家庭自动化安装
机译: 家庭自动化系统百叶窗,一种用于建筑物的控制方法,涉及选择家庭自动化系统的控制动作,并基于语法生成包含与所选择的控制动作相关的控件的文本消息。