
design_compiler经典教程.pdf
24页微电子学实验室 实验教程 微电子学实验室 实验教程 ASIC 综合器软件—— Design Compiler 实验 Design Compiler 实验 2006-7 Design Compiler 实验 第 2 页,共 24 页前言前言 Design Compiler(简称 DC)是 synopsys 公司的 ASIC 综合器产品,它可以完成将硬件 描述语言所做的 RTL 级描述自动转换成优化的门级网表 DC 得到全球 60 多个半导体厂商、 380 多个工艺库的支持Synopsys 的逻辑综合工具 DC 占据 91%的市场份额DC 是工业界 标准的逻辑综合工具,也是 Synopsys 最核心的产品它使 IC 设计者在最短的时间内最佳的 利用硅片完成设计它根据设计描述和约束条件并针对特定的工艺库将输入的 VHDL 或者 Verilog 的 RTL 描述自动综合出一个优化的门级电路它可以接受多种输入格式,如硬件描 述语言、原理图和网表等,并产生多种性能报告,在缩短设计时间的同时提高设计性能 本实验对 DC 软件的使用进行简单的介绍,熟悉和掌握综合器软件使用中的基本概念和 术语,了解如何对数字电路施加约束,掌握同步数字电路设计、约束和优化的方法,了解时 钟的概念,理解同步电路静态时序分析(STA)的方法和时序报告。
西安交通大学微电子学实验室 第 1 页,共 24 页实验实验 1 setup 和和 synthesis 流程流程 实验准备 实验准备 有两种界面可以运行 Design Compiler: 1) 命令行界面,dc_shell-xg-t; 2) 图形用户界面(GUI),Design Vision 本次实验主要运用 GUI 模式图 1.1 给出了 RTL 逻辑综合的直观概念和简要流程 在 DC 中,总共有 8 种设计对象: ? 设计(Design): 一种能完成一定逻辑功能的电路 设计中可以包含下一层的子设计 ? 单元(Cell):设计中包含的子设计的实例 ? 参考(Reference):单元的参考对象,即单元是参考的实例 ? 端口(Port):设计的基本输入输出口 ? 管脚(Pin):单元的输入输出口 ? 连线(Net):端口间及管脚间的互连线 ? 时钟(Clock):作为时钟信号源的管脚或端口 ? 库(Library):直接与工艺相关的一组单元的集合 图 1.1 RTL 逻辑综合的直观概念和简要流程Design Compiler 实验 第 2 页,共 24 页检查检查.synopsys_dc.setup 文件 文件 DC 使用名为“.synopsys_dc.setup”的启动文件, 用来指定综合工具所需要的一些初始化 信息。
启动时,DC 会以下述顺序搜索并装载相应目录下的启动文件: 1)、DC 的安装目录; 2)、用户的 home 目录; 3)、当前启动目录 1. 将实验文件拷至自己的工作目录: u un ni ix x% % c cd d ~ ~ u un ni ix x% % c cp p – –r r / /c ca ad d/ /L La ab bs s/ /s sy yn no op ps sy ys s/ /d dc c/ /D DC C_ _1 1_ _2 20 00 04 4. .1 12 2 . ./ / 2. 进入 risc_design 文件夹用文本编辑器或者文本编辑命令 vi 打开.synopsys_dc.setup 文 件 u un ni ix x% % c cd d D DC C_ _1 1_ _2 20 00 04 4. .1 12 2/ /r ri is sc c_ _d de es si ig gn n u un ni ix x% % l ls s – –a a 3. 检查以下语句是否在.synopsys_dc.setup 文件中。
set target_library “core_slow.db“ set link_library “* core_slow.db“ set symbol_library “core.sdb“ set sh_enable_line_editing true ? target_library 用于设置综合时所要映射的库,target_library 中包含有单元电路的延迟信 息, DC 综合时就是根据 target_library 中给出的单元电路的延迟信息来计算路径的延迟 ? link_library 是链接库,它是 DC 在解释综合后网表时用来参考的库一般情况下,它和 目标库相同;当使用综合库时,需要将该综合库加入链接库列表中 注意:在 link_library 的设置中必须包含’*’, 表示 DC 在引用实例化模块或者单元电路时 首先搜索已经调进 DC memory 的模块和单元电路,如果在 link library 中不包含’*’,DC 就不会使用 DC memory 中已有的模块,因此,会出现无法匹配的模块或单元电路的警 告信息(unresolved design reference)。
? symbol_library 为指定的符号库symbol_library 是定义了单元电路显示的 Schematic 的 库用户如果想启动 design_analyzer 或 design_vision 来查看、分析电路时需要设置 symbol_library ? synthetic_library 是 DesignWare 综合库,在初始化 DC 的时候,不需要设置标准的 DesignWare 库 standard.sldb 用于实现 HDL 描述的运算符,对于扩展的 DesignWare,需 要在 synthetic_library 中设置,同时需要在 link_library 中设置相应的库以使得在链接的 时候 DC 可以搜索到相应运算符的实现 ? search_path 指定了综合工具的搜索路径 图1.2给出了实验将要用到的文件夹risc_design的结构 实验的HDL源代码(source code) 已经被转换为 ddc 格式,保存在子文件夹 unmapped 下注意:在所有实验中,都必须在文 件夹下 risc_design 启动 Design Compiler。
西安交通大学微电子学实验室 第 3 页,共 24 页启动启动 design vision 1. 在 risc_design 目录下启动 design vision留意 LOG 区域的信息”Starting shell in XG mode…” risc_design>synopsys.setup risc_design>design_vision-xg 2. 选择菜单 File—>Setup,检查库是否设置正确点击 Cancel 关闭窗口 图 1.2 文件夹 risc_design 的结构 图 1.3 design vision 图形用户界面(GUI) Design Compiler 实验 第 4 页,共 24 页3. 在启动design vision 的 Terminal 窗口, 输入以下命令进一步确认库设置变量(library setup variable) design_vision-xg-t> printvar target_library design_vision-xg-t> printvar link_library design_vision-xg-t> printvar symbol_library design_vision-xg-t> printvar search_path 读入文件 读入文件 1. 选 择 菜 单 File — >Read 或 者 直 接 点 击, 双 击 文 件 夹 unmapped/ , 选 中PRGRM_CNT_TOP.ddc 并 打 开 。
在 Hier.1 窗 口 你 将 看 到 PRGRM_CNT_TOP, I_PRGRM_FSM, I_PRGRM_DECODE, I_PRGRM_CNT 的图标 2. 选择菜单 File—>Link Design—>OK,查看 LOG 区域有无 warning 或 error 信息 3. 在 design vision 图形用户界面下方或在启动 design vision 的 Terminal 窗口,输入以下命 令,观察 LOG 区域 图 1.5 Hier.1 窗口 图 1.4 库设置对话框 西安交通大学微电子学实验室 第 5 页,共 24 页design_vision-xg-t> list_designs design_vision-xg-t> list_libs 熟悉熟悉 Designs-, Symbol-, Schematic-视图 视图 1. Designs 视 图 : 左 键 单 击 选 中 PRGRM_CNT_TOP , 在 窗 口 右 下 方 将 观 察 到 :。
2. Symbol 视图:单击工具栏黄色图标,进入 Symbol 视图 3. Schematic 视图:单击工具栏黄色图标,进入 Schematic 视图 4. 现在图形用户界面有三个窗口,最大化其中的一个,点击 中不同的按钮,可以显示不同的窗口 5. 显 示Hier.1窗 口 , 在Logic Hierarchy窗 口 分 别 选 中I_PRGRM_FSM, 图 1.6 Symbol 视图 图 1.7 Schematic 视图 Design Compiler 实验 第 6 页,共 24 页I_PRGRM_DECODE, I_PRGRM_CNT,单击工具栏黄色图标和,显示它们的Symbol 和 Schematic 视图 6. 除 PRGRM_CNT_TOP Schematic 视图外,关闭其它视图窗口双击标有 PRGRM_CNT 的块(BLOCK),点击工具栏图标回到 PRGRM_CNT_TO。
