DC、Astro设计流程初级手册_第1页
DC、Astro设计流程初级手册_第2页
DC、Astro设计流程初级手册_第3页
DC、Astro设计流程初级手册_第4页
DC、Astro设计流程初级手册_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DC、 Astro 设计流程初级手册DC、 Astro 设计流程初级手册第一部分逻辑综合 这一部分主要在目录 syn 下进行。第一节 数据准备(此部分已完成,下面的文字仅作说明,无需操作)首先把 stand cell 、 pad 和 ram 的 db 库拷贝到 syn/library 下,把源代码( .v )拷贝到了 syn/source 下, 把 dc 的 setup 文件( .synopsys_dc.setup) 拷贝到 syn 下,把综合的脚本(包括约束脚本)拷贝到 syn/scripts 下,并且创建了 syn/output 和 syn/reports 准备接收综合结果。第二节 运行

2、Design Compiler 进行逻辑综合进入 syn 目录,在 tcl 模式下启动综合器:%dc_shell-t调用 tcl 脚本进行综合:dc_shell-tsource scripts/run.tcl这一步可以自动完成整个综合过程。具体细节可参见 syn/ scripts 下的 run.tcl 和 cons.tcl 文件。完成 以后,可以看到 syn/output 和 syn/reports 目录下有相应的文件输出。退出 dc_shell-t 。第三节 数据分析综合过程中在 syn/output 下产生了 4 个文件,其中 sdf 是标准延时文件,用于仿真时的时序反标, sdc 是标准

3、的约束文件,用于约束后面的布局布线。在 syn/reports 目录下产生了时序和面积的报告。从报告文件中可以看出,时间上,最大的 slack 为 -0.51ns,相对于时钟周期8ns较小,基本上可以进行布局布线。总面积约为0.228um2,且大部分为pad所占。这是我们进行下一步布局布线的依据。说明:1 、因为 setup timing 往往是比较关键的,我们综合时使用了 slow 库作为目标库。2、综合时,把 stand cell (sc)的库设为 target_library ,把 sc、io、ram 以及 sythetic_library 通 通设为 link_library 。3、

4、输入驱动和输出负载使用pad 模型模拟实际的驱动和负载。4、input_delay 通常设为时钟周期的 60%左右, output_delay 大约设为时钟周期的 30%。5、把设计中 pad 和 ram 相应的 cell 设为 dont_touch 。6、 主要是考虑到我们加的约束比较严,因此可以接受-0.51ns 的 slack 作为布局布线的起点。第二部分布局布线这一部分主要在目录 P-R 下进行。第一节数据准备(黑体字部分需要操作完成)首先,把 stand cell 、 pad 和 ram 的 milkyway 库拷贝到 P-R/ref_lib 下,把布局布线的脚本拷贝到 P-R/sc

5、ript 下,把和工艺相关的文件拷贝到 P-R/star_rcxt 和 P-R/tech 下,把层次定义文件拷贝到 P-R/map下,并且创建了 P-R/design_data 和P-R/report 两个空目录。另外,我们还需要将综合得到的 syn/output 目录下的 fifo_mapped.v 和 fifo_mapped.sdc 文件拷贝到 P- R/design_data 目录下。第二节布局布线1 、创建 milkyway 设计库(参见 Astro 培训教材 lab 5a 的 task1 和 task2 )1 )在 P-R 目录下启动 Astro 。2)在Astro界面中选择菜单To

6、ols - Data Prep,此时可以看到 Astro菜单栏的条目发生了变化。3)选择菜单Library - Create,弹出对话窗口。在 Library Name中填入 fifo ,在 Technology File Name中填入 tech/umc18_6lm.tf ,打开Set Case Sensitive选项,点击” OK 。(忽略warning,下同)之后可以发现多了P-R/fifo目录,这就是当前设计库所在目录。4) Library - Add RefLibrary Name填入 fifo ,Ref Library Name填入 ref_lib/sc ,点击 Apply。Ref

7、 Library Name填入 ref_lib/io ,点击 Apply。Ref Library Name填入 ref_lib/ram ,点击 OK。5) Library - Show RefsLibrary Name填入 fifo ,点击OK可以看到sc、io和ram的库已经绑定到设计库了。6) Netlist In - Verilog In Verilog File Name填入 design_data/fifo_mapped.vLibrary Name填入 fifoNet Namefor 1b0 填入 GNDNet Namefor 1b1 填入 VDD点击 OK这一步将 fifo 综合得

8、到的门级网单绑定到设计库中。7) Netlist In - Expand-Library Name填入 fifoUnexpanded Cell Name填入 fifo_with_pads.NETLExpanded Cell Name填入 fifo_with_pads.EXP点击 Global Net Options 按钮,弹开新的对话窗口Net Name和Port Name都填入 GND点击 Apply,可以看到 Number Defined由0变为1Net Name和Port Name都填入 VDD点击 Apply,可以看到 Number Defined由1变为2点击 Hide 关闭子窗口,

9、回到原来的对话窗口,点击 OK等效地,也可以在 Astro 命令输入栏中直接输入命令load “script/1_data_prep.cmd ”完成整个操作过程至此,整个设计库创建完毕。可以进入 P-R/fifo 中观察所得结果。2、创建设计单元(参见 Astro 培训教材 lab 5a 的 task3 、 task4 和 task5 )1 ) Tools - Astro ,回到普通工作模式下。2) Library - OpenLibrary Name填入 fifo ,点击 OK3) Cell - Create Cell Name填入 fifo_with_pads ,点击 OK4) Desig

10、n Setup - Netlist: Bind Netlist Net Cell 填入fifo_with_pads.EXP ,点击 OK5) Cell - Hierarchy Preservation: Initialize Hierarchy Information Flattened Cell Name填入 fifo_with_pads.CELHierarchical Net Cell Name填入 fifo_with_pads.NETL点击 OK6) Cell - Hierarchy Preservation: Mark Module Instances Preserve Flatten

11、ed Cell Name填入 fifo_with_pads.CEL,点击 OK7)Cell - Save AsCell Name填入 2_design_setup,点击 OK等效地,也可以在 Astro 命令输入栏中直接输入命令load “script/2_design_setup.cmd ”完成整个操作过程至此,整个设计单元创建完毕。进入 P-R/fifo/CEL 目录中可以看到里面有 design_setup 单元。3、初始化布局(参见 Astro 培训教材 lab 6a 的 task1 、2、3、4)从综合的结果看,本设计属于 pad-limited 类型,即芯片面积主要由 pad 决定

12、。我们做布局规划的时候主 要考虑pad的摆放。源设计中总共有14个pad,分4边摆放,每边最多4个。此外,每边还要另加两个电源pad (分别给pad和core供电,即后边即将提到的PVDDF和PVDDC和两个地pad( PVSSF和PVSSC。因此,每边最多 8个pad,外加2个corner pad。每个pad的尺寸是194.90 umx60.12um,每 个corner pad的尺寸是194.90 umK 194.90 um,摆放时给 pad和pad之间留大约 20um的间距,则由此 可得每边的长度大约为 60X8+20X9+200X2=1060um= Pad环往内每边再留100um布电源环

13、,则最终可得 core 的尺寸为 460umK 460um。1 )导入 pad 信息Design Setup - TDF: Load TDFTDF File Name填入 script/io.tdf ,点击 OK2)初始化布局Design Setup - Floorplan: Set Up Floorplan 打开 width & height 选项Row/Core Ratio 填入0.7 (标准单元所占面积不大,可以适当降低 core 的利用率)Core Width 填入 460Core Height 填入 460打开 Double Back 和 Flip first row 选项Core

14、To Left 填入 100Core To Bottom 填入 100Core To Right 填入 100Core To Top 填入 100点击 OK此时刷新 cell 窗口,可以得到下图所示的布局:3)填充 pad fillerPostPlace - Filler Cell: Add Pad Fillers ,弹出对话框在 Astro 命令栏里输入load script/set_pad_fillers.cmd回到对话框,点击 OK4)把 ram 摆放到 core 的左下角在 Astro 命令栏里输入load script/place_macros.cmd刷新窗口,得到下图。5)保存设计

15、为 3_initialized_floorplan上述过程可直接利用 Astro 命令load “script/3_floorplan_initial.cmd”一步完成。4、电源规划(参见 Astro 培训教材 lab 6a 的 task5 、 6、7)1)创建电源环(先电源环后地环,注意有别于Astro 实验)PreRoute - Rectangular Rings 点击 Default打开 Around 右边的 Core 选项Net Name(s)填入VDDL-Width 、R-Width、B-Width、T-Width 均填入20L-Layer 、 R-Layer 设为 48(met2)

16、B-Layer 、 T-Layer 设为 46(met1)Left、Right、Bottom、Top 均填入 20全部设置如下图所示 点击 ApplyNet Name(s)改为 GNDLeft、Right、Bottom、Top 均改为 10点击 OK 至此电源和地的金属环创建完毕,形如下图:2)创建电源带( strap )PreRoute - Straps 点击 Default选择 Vertical ,Start X 填入 520Net Name(s)填入VDD, GND(以逗号隔开)Width 填入 10Layer 设为 48 打开 Step & Stop 选项Step 填入 120Stop

17、 填入 640Pitch within Group 填入 15点击 Apply选择 Horizontal , Start Y 填入 410Step 改为 110Stop 改为 630Layer 改为 46点击 Apply选择 Vertical , Start X 填入 410Step 改为 0Stop 改为 410Layer 改为 48点击 OK 上述过程中版图的变化如下:3)在所有stand cell、ram和pad之间建立电源、地的逻辑连接PreRoute - Connect Ports to P/G 点击 DefaultNet Name、 Port Pattern 均填入 VDD打开 C

18、ell Types 中 Pad 选项打开 Update Tie Up/Down选项点击 Apply ,弹出一个小窗口,点击 OK可以看到 Astro 提示: Connected 81 ports to net (VDD) through pattern VDD点击 Apply ,弹出一个小窗口,点击 OKNet Name、 Port Pattern 均改为 GNDNet Type 选择 Ground点击 Apply ,弹出一个小窗口,点击 OK可以看到 Astro 提示: Connected 81 ports to net (GND) through pattern GND. 点击 Cance

19、l 退出对话窗口4)在 pad、ram 的电源地引脚( pin )和电源网络( ring 和 strap )之间建立物理连接PreRoute - Macros/Pads 点击 Default ,点击 OK这个过程可能会花 2、3 分钟,中间的 warning 可以忽略。从版图上可以看到,所有的核电源pad (PVDDC PVSSC和ram都已经连接到电源网络上了5)检查电源连接PreRoute - Verify P/G Connectivity 点击 DefaultStd Cell Pin Connect 选择 Ignore点击 OK随后可以看到 Asrto 的检查报告。没有任何错误,可以继续

20、下一步。6)定义软阻碍( soft blockage ),为标准单元的自动摆放做准备在 Astro 命令栏里输入load script/define_soft_blockages.cmd至此,可得如下版图:7)保存设计为 4_power_planed上述过程可以通过执行 Astro 脚本 4_powerplan.cmd 一步完成。5、时序约束设置(参见 Astro 培训教材 lab2 )1)加载 tlu+ 延时模型Tools - Data Prep,进入数据准备界面Tech File - ITF to TLU+,进行如下配置:点击 Sanity Check,提示 warning,没有 erro

21、r,跳过。点击 OK。2)加载设计约束Tools - Asrto ,重新回到普通界面在 Astro 命令栏中输入:ataRemoveTC清除已有的全部时序约束。Timing - Constrains: Load SDSDCFile Name填入 design_data/fifo_mapped.sdc点击OK提示SDC加载成功。3)配置延时估算选项Timing - AstroTime: Timing Setup选择 Model 卡片Operating Cond选择 NomDelay Model 选择 elmore点击 Apply选择 Parasitics 卡片Operating Cond选择 N

22、omCapacitance Model 选择 TLU+点击 Apply选择 Environment 卡片打开 Enable Multi-Clocks Per Reg、Ignore Propagated Clock 、Enable Ideal Network Delay 和 Include Non Propagated Nets 项关闭 Ignore Clock Uncertainty 项点击 Apply点击 Hide4)产生时序报告在 Astro 命令栏里输入:ataReportSummary 或者 astCheckDesign前者会把时序信息报告在 Astro 的信息栏里,后者可以产生更详细

23、的时序报告,但需要在弹出的对话输入 文件名,把报告重定位到指定的文件里。从时序报告中可以看到, setup slack 只有 -0.001 ,并且只有一个; hold slack 为正。注意:目前umc只提供Nominal的TLU+莫型,没有Max和Min模型,所以这里的时序估算和我们综合时有较大的出入,推荐使用 PrimeTime 进行时序估算。5)保存设计为 5_floorplanned_tluplus上述过程可以通过 Astro 脚本 5_timing_setup.cmd 一步完成。6、标准单元自动摆放(参见Astro 培训教材 lab3 )1)使用 congestion timing-

24、driven 自动摆放模式InPlace - Placement CommonOptions 点击 Default打开 OptimizationMode下面的 Timing 选项点击 OK2)设置预摆放选项Preplace - Pre-Placement Optimization 点击 Default打开 RemoveBuffers 选项点击 OK这时如果再用 ataReportSummary 命令报告延时的话,可以发现负的 slack 已经没有了。3)自动摆放标准单元InPlace - AstroPlace: Design Placement点击 Default打开 In-Placement

25、 Optimization 选项点击 OK标准单元摆放完毕以后的版图如下所示: 图中左侧和下侧的线条表示标准单元的密集程度,越粗的地方越密集。 这时可以再做一下时序报告,看看满不满足要求。4)在标准单元的电源地引脚( pin )和电源网络( ring 和 strap )之间建立物理连接PreRoute - Standard Cells 点击 Default ,点击 OK 从下面的版图上可以看到,所有标准单元的电源都已经连接到电源网络上了。 5)保存设计为 6_placed 此部分的脚本为 6_Place.cmd 。7、摆放后优化(参见 Astro 培训教材 lab3 )这一步主要是针对摆放后

26、timing 和 congestion 仍然不满足要求的设计进行的,对本设计来说其实并没有 必要。但为了使流程更加完整,我们仍然做进一步的优化。1)搜索并改进InPlace - AstroPlace: Search and Refine 点击 Default点击 OK这时可以查看一下 timing 和 congestion ,基本上没有改进。把设计单元保存为 7_1_PPSR。2)后布局第 1 阶段优化PostPlace - Optimization:Post-Place Optimization Phase 1 点击 Default打开 Use Global Routing 选项点击 OK这

27、时的 timing 和 congestion 依然没有任何改进。把设计单元保存为 7_2_PPO1。这一部分的等效脚本为 7_SR_PPO1.cmd8、时钟树综合(参见 Astro 培训教材 lab4 )1 )使用默认综合选项Clock - Clock CommonOptions 点击 Default ,点击 OK2)时钟树综合Clock - Clock Tree Synthesis: Clock Tree Synthesis 点击 Default ,点击 OK3)分析时钟偏差Clock - Reports: Skew Analysis 点击 DefaultClock Names填入 clkO

28、utput To 选择 File,并在 File Name填入 report/CTS_skew.rpt点击 OK打开 report/CTS_skew.rpt 文件,可以发现无论是时钟树的最长路径延时还是延时偏差都很小。4)查看整体延时信息 时钟树已经综合出来了,所以必须改变延时检查选项以采用真实的时钟树延时模型。Timing - AstroTime: Timing Setup选择 Environment 卡片打开 Enable Multi-Clocks Per Reg、Ignore Clock Uncertainty 、Enable Recovery/Removal Arcs 和 Enable

29、 Gated Clock Checks 项关闭 Ignore Propagated Clock 和 Enable Ideal Network Delay 项点击 Apply点击 Hide在 Astro 命令栏里输入 ataReportSummary 产生延时报告。从报告中可以看出,建立和保持的 slack 都比前面有了较大的改善,这主要是因为实际的时钟树延时和延 时偏差数值比我们在约束文件中定义的数值小了很多。保存设计单元为 8_1_CTS。5)后布局第 2 阶段优化PostPlace - Optimization: Post Place Optimization 点击 Default打开 R

30、emoveBuffers 选项点击 OK可以看到 congestion 和 timing 其实都没什么改进。保存设计单元为 8_2_PPO2。这一部分的等效脚本为 8_CTS.cmd。9、布线1)设置自动布线选项Route Setup - Route CommonOptions 点击 DefaultGlobal Routing 和 Track Assign 下均选择 Timing Driven点击 OK2)布时钟线Route - Route Net Group 点击 DefaultNet Name(s) From 下选择 All clock nets点击 OK完成以后,对版图的某些局部放大,可以看到时钟线已经连好了。注意:这一步最好能够使最后报告的 Violation 为 0。3)全局布线Route - Global Route: Global Route点击 Default ,点击 OK4)全局布线优化在 Astro 命令栏里输入astPo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论