您当前的位置:检测资讯 > 科研开发

GDS merge:芯片设计版图与制造中的关键技术

嘉峪检测网        2024-12-01 11:10

从事芯片行业的朋友对于GDS(Graphic Data System,图形数据系统)应该不会感到陌生,在半导体设计的多个阶段GDS都有着广泛的应用,比如电路设计、版图设计和制造工艺等环节。

 

1. GDS以及GDS merge操作

 

GDS是一种用于描述和存储半导体芯片的版图信息的二进制文件格式,其包含了设计中的各种几何形状、层级结构、电路器件和连线信息等。 

不同的应用场景下,GDS的应用方式也有所区别,例如,在晶圆厂(Fab)提供的标准单元库中,每一个标准单元(standard cell)都可以被单独存储为一个GDS文件,这便于多人分工合作,分别绘制不同的标准单元,并进行物理验证以确保每个单元的准确性。而在设计公司(Fabless)中,一个完整芯片的GDS文件通常非常庞大且复杂,为了高效地完成这一大型工程,设计过程往往采用类似流水线的方式,将整个芯片的GDS文件拆分若干个独立的部分,每个部分由不同的团队或个人负责完成,最终再通过“合并” (即merge)操作,将所有部分整合成一个可以用于流片的完整GDS文件。

 

2. GDS merge的场景

 

GDS merge操作是在特定的设计环境中进行的,通常针对的是几种特定类型的对象,主要包括:

 

(1) 芯片设计中包含第三方IP:如果芯片设计中使用了第三方提供的IP,为了确保IP与自定义设计的兼容性和一致性,需要在流片前进行GDS merge。这是因为IP vendor可能会要求到晶圆厂进行merge,以确保IP与主设计准确集成;

 

(2) 模拟电路和数字电路的合并:在SoC (系统级芯片) 设计中,模拟电路和数字电路通常分别设计,并生成各自的GDS文件。在最终将它们合并为一个完整的SoC芯片版图时,需要进行GDS merge;

 

(3) Fab提供的IP:在某些情况下,工艺厂会提供特定的IP,这些IP需要在工艺厂进行merge,以确保与工艺库的兼容性;

 

(4) Dummy fill,在实际设计过程中,我们通常会遇到设计chip GDS和dummy GDS进行merge的操作,主要目的是为了避免芯片设计中出现大面积的空白区域,通过填充一些dummy结构,可以保持芯片密度的均匀性,从而确保制造的一致性和可靠性。

 

3. GDS merge操作方式

 

在进行GDS merge时,通常需要使用专门的EDA(电子设计自动化) 工具,主要工具包括ICC2、Innovus、Virtuoso、calibredrv、Skipper等。这些工具可以将生成的GDS文件进行拼接和整合,常用的实现方式包括EDA工具的GUI和命令行两种。考虑到GDS merge的灵活性和实用性,以下主要介绍calibredrv中的merge命令,操作语法如下所示:

 

 

(1) 进行少数几个GDS的merge操作,可以在命令行输入以下指令:

 

# terminal input

calibredrv -shell

layout filemerge -in A.gds -in B.gds -out merge_output.gds -createtop topcell_name -mode rename

  

以上是对A和B两个GDS进行merge的操作,其中:

-in:是指定输入GDS (A.gds和B.gds);

-out:是指定输出GDS (merge_output.gds);

-createtop:是为输出GDS创建名为topcell_name的topcell,如果不创建新的topcell就会面临出现两个topcell的风险,这种hierarchy结构看上去比较混乱;

-mode:是cell的命名模式,包括rename、overwrite、append、forcerename和reportconflictsonly五种模式,是为了避免具有相同名字的cell出现而进行的操作,通常可选择rename模式。

 

(2) 进行大量GDS的merge操作

 

# terminal input

calibredrv -a layout filemerge -in A.gds -indir gds_dir/ -out merge_output.gds

 

对于数量较多的GDS进行merge操作,比如大量的standard cell需要merge到topcell里,就可以将standard cell放在一个文件夹下,然后进行以上操作,这里:

-indir:指定了存放GDS的路径。

 

(3) GDS merge代码实现

 

当需要进行大量的GDS merge操作时,上述介绍的GUI和命令行方法的效率可能无法满足快速设计迭代的需求。此时,通过编写代码脚本来实现批量处理不仅能显著提高效率,还能确保操作的准确性。在实际项目中,这种方式更为常见。

 

GDS merge在芯片设计流程中的重要性不言而喻,通过在设计初期将模块化研发的成果进行GDS merge,可以及早发现并解决不同设计之间的兼容性和匹配问题,避免因后期修改而导致的成本增加。高效的GDS merge流程不仅能够缩短从设计到生产的时间周期,还能加速新产品的市场投放,从而实现芯片的高效研发和设计。

分享到:

来源:且听芯说