logo资料库

Design_compiler经典教程.pdf

第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
资料共24页,剩余部分请下载后查看
微电子学实验室 实验教程 ASIC 综合器软件—— Design Compiler 实验 2006-7
Design Compiler 实验 前言 Design Compiler(简称 DC)是 synopsys 公司的 ASIC 综合器产品,它可以完成将硬件 描述语言所做的 RTL 级描述自动转换成优化的门级网表。DC 得到全球 60 多个半导体厂商、 380 多个工艺库的支持。Synopsys 的逻辑综合工具 DC 占据 91%的市场份额。DC 是工业界 标准的逻辑综合工具,也是 Synopsys 最核心的产品。它使 IC 设计者在最短的时间内最佳的 利用硅片完成设计。它根据设计描述和约束条件并针对特定的工艺库将输入的 VHDL 或者 Verilog 的 RTL 描述自动综合出一个优化的门级电路。它可以接受多种输入格式,如硬件描 述语言、原理图和网表等,并产生多种性能报告,在缩短设计时间的同时提高设计性能。 本实验对 DC 软件的使用进行简单的介绍,熟悉和掌握综合器软件使用中的基本概念和 术语,了解如何对数字电路施加约束,掌握同步数字电路设计、约束和优化的方法,了解时 钟的概念,理解同步电路静态时序分析(STA)的方法和时序报告。 第 2 页,共 24 页
西安交通大学微电子学实验室 实验 1 setup 和 synthesis 流程 实验准备 有两种界面可以运行 Design Compiler: 1) 命令行界面,dc_shell-xg-t; 2) 图形用户界面(GUI),Design Vision。 本次实验主要运用 GUI 模式。图 1.1 给出了 RTL 逻辑综合的直观概念和简要流程。 图 1.1 RTL 逻辑综合的直观概念和简要流程。 在 DC 中,总共有 8 种设计对象: 设计(Design):一种能完成一定逻辑功能的电路。设计中可以包含下一层的子设计。 单元(Cell):设计中包含的子设计的实例。 参考(Reference):单元的参考对象,即单元是参考的实例。 端口(Port):设计的基本输入输出口。 管脚(Pin):单元的输入输出口。 连线(Net):端口间及管脚间的互连线。 时钟(Clock):作为时钟信号源的管脚或端口。 库(Library):直接与工艺相关的一组单元的集合。 第 1 页,共 24 页
Design Compiler 实验 检查.synopsys_dc.setup 文件 DC 使用名为“.synopsys_dc.setup”的启动文件,用来指定综合工具所需要的一些初始化 信息。启动时,DC 会以下述顺序搜索并装载相应目录下的启动文件: 1)、DC 的安装目录; 2)、用户的 home 目录; 3)、当前启动目录。 1. 将实验文件拷至自己的工作目录: uunniixx%% ccdd ~~ uunniixx%% ccpp ––rr //ccaadd//LLaabbss//ssyynnooppssyyss//ddcc//DDCC__11__22000044..1122 ..// 2. 进入 risc_design 文件夹。用文本编辑器或者文本编辑命令 vi 打开.synopsys_dc.setup 文 件。 uunniixx%% ccdd DDCC__11__22000044..1122//rriisscc__ddeessiiggnn uunniixx%% llss ––aa 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。 第 2 页,共 24 页
西安交通大学微电子学实验室 图 1.2 文件夹 risc_design 的结构 启动 design vision 1. 在 risc_design 目录下启动 design vision。留意 LOG 区域的信息”Starting shell in XG mode…” risc_design>synopsys.setup risc_design>design_vision-xg 图 1.3 design vision 图形用户界面(GUI) 2. 选择菜单 File—>Setup,检查库是否设置正确。点击 Cancel 关闭窗口。 第 3 页,共 24 页
Design Compiler 实验 3. 在启动 design vision 的 Terminal 窗口,输入以下命令进一步确认库设置变量(library setup 图 1.4 库设置对话框 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 的图标。 图 1.5 Hier.1 窗口 2. 选择菜单 File—>Link Design—>OK,查看 LOG 区域有无 warning 或 error 信息。 3. 在 design vision 图形用户界面下方或在启动 design vision 的 Terminal 窗口,输入以下命 令,观察 LOG 区域。 第 4 页,共 24 页
西安交通大学微电子学实验室 design_vision-xg-t> list_designs design_vision-xg-t> list_libs 熟悉 Designs-, Symbol-, Schematic-视图 1. Designs 视 图 : 左 键 单 击 选 中 PRGRM_CNT_TOP , 在 窗 口 右 下 方 将 观 察 到 : 。 2. Symbol 视图:单击工具栏黄色图标 ,进入 Symbol 视图。 图 1.6 Symbol 视图 3. Schematic 视图:单击工具栏黄色图标 ,进入 Schematic 视图。 4. 现在图形用户界面有三个窗口,最大化其中的一个,点击 图 1.7 Schematic 视图 5. 显 示 Hier.1 窗 口 , 在 Logic Hierarchy 窗 口 分 别 选 中 I_PRGRM_FSM, 中不同的按钮,可以显示不同的窗口。 第 5 页,共 24 页
Design Compiler 实验 I_PRGRM_DECODE, I_PRGRM_CNT,单击工具栏黄色图标 和 ,显示它们的 Symbol 和 Schematic 视图。 6. 除 PRGRM_CNT_TOP Schematic 视图外,关闭其它视图窗口。双击标有 PRGRM_CNT 的块 (BLOCK),点击工具栏图标 回到 PRGRM_CNT_TOP Schematic 视图。 用 Script 文件加约束 1. 打开 PGRRM_CNT_TOP Symbol 视图。 2. 选 择 菜 单 File — >Execute Script... , 弹 出 对 话 框 。 选 中 /scripts 文 件 夹 下 的 example.tcl 文件,选中 Echo commands 选项,然后点击 Open。 图 1.8 用 Script 文件加约束对话框 example.tcl 文件中设置了以下内容: 1) 时钟周期 4ns,时钟歪斜(skew)0.35ns; 2) 除时钟 Clk 端口(port)外,其它所有输入端口由库单元 fdef1a2 驱动; 3) 除时钟 Clk 端口外,其它所有输入端口最大输入延迟(max input delay)为 2.0ns; 4) 所有输出端口最大输出延迟为 2.0ns; 5) 所有输出端口负载为 15×ssc_core_slow/and2a1/A,表示负载是 ssc_core_slow 库中 and2a1 单元的管脚 A 负载的 15 倍; 6) 互连线负载模型为 5KGATES; 7) 最大面积为 2000。电路的面积单位有可能是 2 输入与非门、晶体管或 um2。目标 库到底用哪种面积单位,需要咨询库的供应商。ssc_core_slow 中单元 and2a1 的面 积是 12.54。 第 6 页,共 24 页
分享到:
收藏