数模布线区别

分享到:

 

模拟布线器
1:约束
   a: 模拟布线器的约束主要包含连线关系内容,比如Poly同M1通过孔连接,M1和M2之间通过Via1相连接等;
   b: 连线走向,通常为了更加容易布线,布线方式参考数字电路布线器,比如M1走水平线,M2走垂直线,M3走水平线,这样做容易跳线,可以实现所有器件的连接;
   c: 为了对布线进行优化,对于特别短的走线,比如M1也可以走垂直线,但长度在一定的范围内,这样可以避免因为跳线引起的电路性能下降;
   d: 各个连线层的优先级定义,比如,同一条连线,用M1和M3都可以完成,那个的优先级更高;
   e: 拥挤程度,是否具有一定的推挤功能;比如,布线通道不够时,能够自动推挤其它器件以扩展布线通道;
   f: 匹配、电学信息等约束定义;


2:算法
   a: 我个人感觉,模拟布线器的算法优先解决布线是否成功的问题,其次才是优化具体布线,如何优化,工具很难知道,约束也很难定义,有时候需要工程师人工检查。或者通过人工的方式指导自动布线器进行布线;
   b: 模拟布线器的网格应该是工艺的最小格点;
   c: 模拟电路如何确定布线禁区?


3:设计数据
   a: 版图工具自有数据格式或OpenAccess格式;数据中必须定义各个器件的pin以及飞线,工具根据飞线的信息进行连线,同时赋予该连线相应的节点名;


 
数字布线器
1:约束
   a: 数字布线器的约束主要是时序信息,通过定义不同路径的时序来进行布线驱动,通过SDC(Synopsys Design Constraint)实现;
   b: TF文件中同样定义各个金属层走线方向及打孔信息,在数字电路中,严格按照布线方向,而不是像模拟电路,允许一定长度的其他方向布线;
   c: 对于数字电路,尤其设计进入到纳米工艺,不仅仅考虑时序,SI和DFM的约束也非常重要,也是影响布线的重要约束。
 

2:算法
   a: 数字布线器严格采用约束进行布线,不满足的时候可以通过业界标准验证工具,比如PT验证。对于不满足的情况,通常是因为布线通道太密集或约束太紧而无法满足。只要指定合理的约束,工具是可以自动完成布线的;
   b: 通常数字P&R工具采用有网格布线方式,不同方向,不同金属层,网格通常是不同的;
   c: 数字布线器通过LEF格式中的blockage判断哪些区域是布线的禁区,避免DRC/LVS规则的违反;


3:设计数据
   a: LEF/DEF,Milkway,OpeaAccess格式
   b: 通过门级网表得到所有标准单元的连接关系,再加上SDC的时序约束进行布线;
 
从以上的信息可以了解到,数字和模拟的布线原理及方法是不太一致的,如果要把二者合并在一起,可能需要做一下工作
1:TF中包含金属连线信息,对于poly连接关系,应该出现在模拟布线部分,而对于数字电路,则不需要该信息;当然,这个定义对于数字电路应该没有影响了。
2:允许金属层进行短距离的非默认方向布线,这个之应用在模拟电路中;
3:定义金属层连线的优先级,模拟和数字可能会有所不同,但具体还需要在研究;
4:定义布线网格;(模拟数字不清楚是否需要一致)
5:模拟、数字电路的约束定义;模拟是电学、物理约束,数字是时序约束;
6:布线禁区定义,数字采用LEF库中的blockage实现,模拟如何实现?尤其是数字走线是否允许在模拟单元之上?
7:模拟和数字电路之间的接口如何处理,双方的约束是不同的。