Astro 布局布线流程
随着深亚微米工艺的应用,逻辑门间的连线主导了电路的时序性能。在实际设计时,设
计者不再只是完成简单的逻辑门摆放和连线工作,更重要的是要降低实际的连线延迟,使最
后的物理设计时序性能满足设计要求。
Astro 是由 Synopsys 公司开发的物理设计软件,适用于现在的主流设计。Astro 提供了一
套完整的物理设计流程,布局布线同时还具有时序优化功能,可以在一次流程中使设计电路
达到预设指标。但 Astro 步骤繁多、设定复杂,本章将针对 Astro 的设计流程借助一个简单
的设计实例,对 Astro 一次流程中的主要步骤进行简单说明,使读者短时间内可以了解 Astro。
一. 数据准备
本流程中需要的输入数据包括:网表文件(Netlist File)、时序约束 SDC 文件(Timing
Constraint File)、参考库(Reference Library)、定义 PAD 顺序或位置信息的 TDF 文件(Top
Design File)、工艺 tf 文件(Technology File)。其中工艺文件和部分参考库文件由 Foundry 提
供。
1. 网表:
网表文件由前端工程师提供,格式一般采用 verilog(.v)格式。布局布线用网表文件一般由 Design
Compiler(DC)综合得到。从 DC 中输出网表时,需要在脚本中如下命令,以满足 Astro 的要求。
2. 时序约束文件:
时序约束文件由前端工程师提供,格式一般采用 SDC(.sdc)格式,SDC 文件也由 DC 中输出。
时序约束文件中所加的约束只能针对顶层端口,文件中时钟定义可能需要加以修改。因为从 DC
中输出的时钟定义一般不指定具体的单元及其端口,Astro 通常很难根据这样的时钟定义找到真正的
时钟源,因此需要先在网表中找到真正的时钟端口,并据此在 SDC 文件中加以修改。例如,原来的
SDC 文件中时钟的定义片段为:
原来的时序约束文件是给予综合的 DC 用,而不是用来布局布线的。所以综合用的 SDC 文件中只
给出了一个“产生时钟(create clock)”的命令,根据上面这段时序约束文件中的片段,Astro 一般无
法找到 clk_div/clk,因此需要将“get_pin”的目标修改替换为在网表中的一个实际的时钟产生的单元:
clk_div/CK01D1/Z.。修改 SDC 片段结果如下:
3. 参考库:
参考库包括标准单元(STD)库、输入输出单元(I/O)库和 IP 库。前两种都由 Foundary 提供,
IP 库可以由 Foundary 提供,也可以用户自己建立。
举一个简单的例子简要说明下 IP 库的建立。在某些项目中,比较典型的用户自定义 RAM IP 模
Astro布局布线流程(解密) 来自淘豆网www.taodocs.com转载请标明出处.