没有合适的资源?快使用搜索试试~ 我知道了~
Astro布局布线流程,详细介绍了使用astro软件进行布局布线的整个流程,对不熟悉此软件使用的人是个很好的帮助。
资源推荐
资源详情
资源评论
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 模块。
使用 Memory Compiler 可以产生 GDSII 文件,需要自己建立 Milkyway 格式 IP 库以作为参考库代入
Astro 设计流程。其具体步骤为:
1. 运行 Memory Compiler,产生需要的 Memory block,具体参考 memory compiler 的使用手册。
2. 运行 Astro,把 GDSII 文件导入,Smash,进行 Blockage Pin Via Extraction 后产生 FRAM view。
3. 在 Astro 中把 memory compiler 产生的 lib 文件转换成 clf 文件并读入,或者读入.db 文件,生
成 TIM/LM view。
关于导入 GDSII 文件具体参考《milkyway database preparation》,需要注意两点:
1. 层号(Layer Number)问题,不同的工艺下的相同层的层号可能不同。如若不同,需要写一
个映射文件在读入 GDSII 文件转换。
2. 特殊自定义模拟单元的 IP 库的,ib 文件、clf 文件等需要自己写,由
Astro 读入生成 IP 库的
LM view,若仅由 GDSII 文件生成一个 Fram view,IP 库的 Milkyway 格式的库中没有 TIM view,
在时序驱动(Timing Driven)流程中处理到和这些模块相关的 Net/Port 的时候会有许多相关的
Warning 或 Timing Error。为了消除这些 Warning 和 Timing Error,就需要把相应的.lib 或者.db 文
件导入库中,以生成一个 TIM/LM view。这时可以简单地手工写一个 lib 文件,导入库中即可。
例如:
4. TDF 文件:
这里用到的 TDF 文件定义了 Pad 的排列顺序。需要注意的是:综合产生的网表中没有定义某些没
有逻辑意义的 Pad,如 corner cell,split cell 以及 power cell 的顺序,这些 Pad 和 I/O Pad 的摆放边和顺
序都在该 TDF 文件中定义。
二. 开始(Setup:Design Setup + Timing Setup)
在 Terminal 中,引导到运行目录下内输入命令:
启动软件后,很多布局布线步骤都可以写成脚本,直接载入运行即可。这样既免去了一
次次点鼠标提高工作效率,也减少手工操作可能会带来的失误。该命令“Astro”也包括“-logd、
-cmdd”等参数来记录命令和软件运行历史。考虑到读者初次接触 Astro,随后章节中多采用
图形界面的操作方式。
基本的步骤是:
1. 建立库(cmCreateLib)Library→Create
在弹出“Create Library”窗口中,填上“Library Name、Technology File Name”相应的表格。“Library
Name”是设计库的名字,库是设计单元的集合。“Technology File Name”即为第一节数据准备中提及
的工艺 tf 文件和文件引导路径。
一般前端综合 DC 输出网表是对大小写敏感的,因此建立库的时候要注意把“Set Case Sensitive”
选项选上(默认)。
图 2-1
点击“OK”按钮,Library 建立成功。Astro 启动目录下会产生一个以“Library Name”命名的文
件夹,随后的单元的设计数据都将会保存在本目录下。
图 2-2
2. 读入 Verilog(auVerilogToCell)
1. 在 Astro 的主窗口内输入命令
这条命令集合了旧版 Astro 设计流程中的加上参考库(cmRefLib)、读入网表(auVerilogIn)和打
平网表(cmCmdExpand)等几个个步骤。
图 2-3
2. 在弹出窗口中填入“Library Name、Cell Name、Verilog File Name”。“Library Name”是刚刚建立
的设计库名。“Cell Name” 单元名即随后具体的设计对象。“Verilog File Name”是第一节数据准备中
提及的网表文件和文件引导路径。
3. 点击“Reference Library”按钮,顺序添加几个参考库后,点击“Hide”按钮隐藏窗口。“Reference
Library”是第一节数据准备中提及的参考库文件。参考库可以是一个或者多个,如 STD、IO、IP 等。
图 2-4
4. 点击“Global Net Options”按钮,“Net Name、Port Pattern”分别都设置为“VDD、VSS”,并且
“Apply”一下,点击“Hide”按钮隐藏窗口。
5. 点击“OK”按钮。网表将被参照参考库或 Astro 默认的库读入,在设计库文件夹下产生一个以“Cell
Name”命名的文件夹,其中包含几种设计观点 cell view。
图 2-5
3. 打开库 (geOpenLib)Library→Open
在弹出窗口中填入“Library Name”,点击“OK”按钮。
剩余25页未读,继续阅读
资源评论
cococoke2
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功