数字ASIC设计概要:Legalize 简介

@ 2011-08-06 11:49:34
标签:

    天下之物皆有其位。得位则曰正,曰顺;失位则曰偏,曰逆。使失者皆得其位,曰天下太平。

    Legalize

    基于标准单元的数字IC设计(下文中简称为数字IC设计)中的 legalize 关心的就是 cell 是否被放置在正确的位置上。有时我们也称 Legalize 为 Detail Placement

    在数字IC设计中,标准单元(cell)的高度通常是相等的,宽度则是某一宽度的整数倍。用数学来表示就是

    • H = Hunit ,
    • W = Wunit * N (N>0)

    我们将宽度为 Wunit, 高度为 Hunit 的矩形称之为 Site。这样我们也可以说 标准单元(cell)的大小是Site大小的整数倍。

    一个设计(Design)中有成千上万的标准单元(cell),如何将这么多的Cell简单高效的排布在一起,就成了一个重要问题。

    想象一下一个大型停车场,如果没有任何规划,任由每辆车随意停放,那一定会出现很多麻烦。于是我们在现实生活中看到的是空地被划分成很多停车位,这些停车位连成一排一排的。每辆车必须要停在停车位内。

    在数字IC设计中采用的也是类似的办法,我们把Site连成一排一排的,要求每个 Cell 必须放在Site内。这就像把车停在停车位内一样。

    当然了,你可能已经想到了,一个Cell可能需要占据连续的好几个Site。是的,我们就把它当作一辆加宽的汽车吧(别跟我较真说现实中没有这么宽的车)。

    这里所讲的其实就是判断“得位”与否的第一条原则:Cell 必须被放在Site内(车辆必须停放在车位内)

    我们这里说得停车也好,Cell的放置也好,其实都可以看作是一个二维平面上的几何问题。想象一个二维平面上的确定大小的几何图形,除了位置,还有那些其他因素呢。“方向”算是一个,“对称”或者说“镜像”应该也算一个。

    • 方向:再以停车场为例,比如说我们可以要求所有的车必须车头向里或向外,这样可以使得管理起来更加简单。
    • 镜像:车子可以在它的车位上左右镜像吗?那岂不是要把汽车翻过来才行。哈哈。是的,也许你的车还不行。但是假如有这么一辆车,它的上下两面都有轮子,我可以今天用这面的轮子,明天用另外一面的轮子。但是到了这个停车场,你必须用最难看的那一面。呵呵。

    停车可以这样要求,放置Cell 也可以这样要求。而且考虑到“镜像”其实也可以算作一种方向,我们可以归纳为第二条原则:Cell 的方向必须符合要求(车辆在停车位内的方向必须符合要求,否则罚款)

    不就是停个车吗,还这么多规矩。别急,还没完呢。这两天领导来视察,那几个离你最近的车位被征用了,旁人不得使用。做人不容易,做一个Cell也不容易的。

    在数字IC设计中,我们是通过 Blockage 圈定一些区域是不可以用来放置Cell的,这就形成了第三条原则:Cell 不能放在Blockage下面

    那么,能不能把两辆车放在同一个车位内呢?这不是废话吗(你心想)。对,是废话,但在严谨的表述中,这就不能当作废话一样不列出来了。第四条原则:两个Cell不可以重叠(Overlap)

    可以说上面的四条就构成了判断是否“得位”(legality) 的基本原则:

    • 第一条原则:Cell 必须被放在Site内
    • 第二条原则:Cell 的方向必须符合要求
    • 第三条原则:Cell 不能放在Blockage下面
    • 第四条原则:两个Cell不可以重叠(Overlap)

    在 Synopsys的 IC Compiler中,命令check_legality基本上就是根据上面的原则进行检查的。

    所谓“规矩在,方圆成”。直到了如何是正确的,自然也就知道如何把不正确的编程正确的。数字IC设计中,legalize 就是指把 cell 放置到正确的位置上的过程。

    IC Compiler中,命令legalize_placement 就是用来做这件事情的。

    Multi-Height 和 Multi-Site

    大千世界,变化万千。这世上之物要都是一个模子刻出来那样一致,这世界倒是简单了。你看这天下之物,大体上无不是共性之中透着特质,常规之外存有特例。

    上面说了加宽的车,大家可能没见过,这加长的应该就不稀奇了。Cell 也是一样,有的时候,有些Cell偏偏就是要比那些普通Cell高出一倍甚至两倍。既然存在例外,处理方法就要考虑到。我们称这种Cell高度是 Site 高度一倍以上的情况为“Multi-Height”。

    Cell可以不一样,Site可以不一样(终生平等嘛)。一个Design中也可以有多余一种 Site,这称为 “Multi-Site”。

    但无论怎样,只要记得让各个Cell“得其位”就好。这样你也可以去做 legalize 的活了—— 用你的双手把Cell们正确地放到他们对应的Site上去。

    标签:

      分享到:
      comments powered by Disqus

      22/24ms