一种模块级版图设计的端口放置方法
技术领域
本发明涉及一种半导体集成电路的版图设计方法。
背景技术
半导体集成电路的版图设计可以分为模块级设计(floorplan)和芯片级设计(chipplan)两个阶段。其中模块级版图设计包括在版图上放置各个功能模块,每个功能模块放置一些对外连接的端口等。
自动版图设计(Auto-Place-Route)工具可为各个功能模块自动放置端口,但这些工具软件所放置的端口位置一般不能完全符合设计者的要求,因此通常采用以下方式进行端口放置:
一种方法是采用手动方式逐一调整各个端口的位置,这种方法不仅费时,而且容易出错。
另一种方法是先编译端口放置的约束文件(如”.ioc”文件),这种文件以坐标方式确定各个端口的位置。然后在版图中导入该文件,以放置各个端口。但这种方法容易发生端口位置偏移,甚至出现错位。
在模块级版图设计阶段出现端口放置出错的情况,往往在后续阶段才会被发现,而导致工程的返工。
发明内容
本发明所要解决的技术问题是提供一种模块级版图设计的端口放置方法,该方法可自动地为各个功能模块放置端口,从而提高模块级版图设计的布局效率与准确性。
为解决上述技术问题,本发明模块级版图设计的端口放置方法包括如下步骤:
第1步,在版图中放置目标模块,同时在该目标模块周边放置一个或多个参考模块;
所述目标模块指需要自动放置端口的模块;
所述参考模块为新增的临时模块,其同时满足以下条件:
a、参考模块与目标模块之间或者不重合、或者仅有一条或多条边相重合;
b、目标模块的端口数量=所有参考模块的端口数量的总和;
第2步,将目标模块和各个参考模块整合到一个顶层模块中,将目标模块的每个端口对应于一个参考模块的一个端口;
第3步,采用自动版图设计工具对所述顶层模块进行自动版图设计,此时目标模块的每个端口被自动放置在距离与之对应的参考模块的端口最近的位置;
第4步,去除版图中的所有参考模块和目标模块与参考模块之间的连线。
本发明提供的模块级版图设计的端口放置方法具有简单易行,方便快捷的特点;可以节省工程师手动进行版图布局的时间,提高工作效率;并且提高了版图布局的准确性,缩短了芯片开发的时间,节约了设计成本。
附图说明
图1是本发明模块级版图设计的端口放置方法的流程图;
图2是模块级版图设计阶段功能模块的形状示意图;
图3是本发明所述方法第1步的示意图;
图4是本发明所述方法第3步的示意图。
图中附图标记说明:
10为目标模块;21~26为参考模块一~参考模块六;211、212、221为参考模块中的端口;101、102、103为目标模块中的端口。
具体实施方式
请参阅图1,本发明模块级版图设计的端口放置方法包括如下步骤:
本发明模块级版图设计的端口放置方法包括如下步骤:
第1步,如图3所示,在版图中放置目标模块10,同时在该目标模块10周边放置一个或多个参考模块2n(n为自然数)。目标模块10指需要由本发明所述方法自动放置端口的模块,其中的端口数量是已知的,但端口的位置尚未确定。参考模块2n为新增的临时模块,其同时满足以下条件:
条件1:参考模块2n与目标模块10之间或者不重合、或者仅有一条或多条边相重合。
在模块级版图设计阶段,版图上的各个功能模块(包括目标模块10和参考模块2n)的形状都是一个矩形或多个矩形的任意组合,图2给出了功能模块的形状的8个示例。
例如在图3中,参考模块一21与目标模块10之间完全不重合。参考模块五25与目标模块10之间仅有一条边重合。参考模块六26目标模块10之间仅有两条边重合。这些都是允许的。
条件2:目标模块10的端口数量=所有参考模块2n的端口数量的总和。
在满足以上两个条件的前提下,每个参考模块2n所包含的端口数量、以及端口位置的设置都是任意的。但是默认地,每个参考模块2n至少包括一个端口。通常,参考模块2n中的端口都设置在其边界线上。例如在图3中,参考模块一21具有两个的端口211、212,参考模块二22具有一个端口221,这些端口都在各自参考模块的边界线上。
优选地,这一步还生成所有参考模块2n的坐标文件(LEF文件),该坐标文件中记载各参考模块中的各个端口的坐标信息。
第2步,将目标模块10和各个参考模块2n整合到一个顶层模块(TopModule)中。之所以要这么做,是由于自动版图设计工具只能为一个顶层模块之中的各模块进行端口连线。
还将目标模块10的每个端口对应于一个参考模块2n的一个端口。这一步中,通常需要生成所述顶层模块的网表文件(Netlist),网表文件的格式为verilog或vhdl。其中就包括有目标模块10的每个端口对应于一个参考模块2n的一个端口的信息。
第3步,采用自动版图设计工具(例如Cadence公司的SOC-Encounter)对所述顶层模块进行自动版图设计。在自动版图设计的过程中,目标模块的每个端口就被自动放置在距离与之对应的参考模块的端口最近的位置。
请参阅图4,通常,目标模块10中的端口页设置在其边界线上。并且目标模块10、参考模块2n的边界线均为水平或垂直线。因此,目标模块10的各端口都设置在距离与其对应的参考模块的端口最近的目标模块10的边界线上,并且这一对相互对应的端口的连线垂直于各自所在模块的边界线。
例如,端口211在参考模块21的一条边上,与端口211距离最近的目标模块10的边是其右侧的垂直边,那么与端口211相对应的目标模块10的端口101就设置在这条垂直边上。并且端口211与端口101的连线既垂直于端口211所在的边,也垂直于端口101所在的边。
又如,端口221在参考模块22的一条边上,与端口221距离最近的目标模块10的边是其下方的水平边,那么与端口221相对应的目标模块10的端口103就设置在这条水平边上。并且端口221与端口103的连线既垂直于端口221所在的边,也垂直于端口103所在的边。
第4步,去除版图中的所有参考模块和目标模块与参考模块之间的连线。
本发明所述模块级版图设计的端口放置方法大大提高了端口放置的多样性,准确性和高效性。
以上仅为本发明的优选实施例,并不用于限定本发明。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。