在模拟芯片开发的最后集成后的检视中,大部分是人工检视模块之间的连线是否正确。
但是在EDA工具中进行检视,往往比较费时费力——需要大量的鼠标操作。而且检视结束,没有办法输出检视的交付件。
为了解决这个问题,制作了一个cdl网表的解析工具,能输出模块于模块间连线的报表。
表格中1列放置起点模块的引脚,另外一列放置相连的终点模块的终点。
1、谈一下对cdl网表的理解
本文所处理的cdl网表来自于模拟EDA工具导出。
cdl文件定义了所有模块的定义。模块之间的例化关系,也都在模块内的例化模块表述。
.SUBCKT my_module input1 input2 output
R1 input1 net1 / 10k
R2 net1 input2 net2 / 20k
C1 net2 output / 1nF
.ENDS my_module
cdl网表中使用.SUBCKT和.ENDS定义一个module。
示例中my_module就是定义的模块名。它内部例化了R1、R2、C1三个模块。R1为例化名,对应的module名为10k。
试着从input1看一下,它是如何连接到内部的例化模块:my_module的input1连接到了R1的第一个引脚,R1的第二个引脚连接net1的连线;顺着net1搜索,可以看到R2的第一个引脚连接到net1。cdl网表中就是这样表述模块之间的连接。每一个连线都是单bit的(这比分析verilog代码变的容易很多)。
这样我们就可以遵照这种追踪的方法,搜索起点到终点的连线(先从简单的直接连接的来分析,文章最后再说一下,穿透部分模块的思路)
2、解析cdl网表
解析的代码可以使用IA辅助生成,然后修改。
AI的提示词如下:
写一个脚本,读取cdl网表文件,并能提取里面模块名,以及模块之间的嵌套关系。脚本使用argparse,输入cdl文件路径。代码注

1654

被折叠的 条评论
为什么被折叠?



