SynopsysDC中文培训实验 下载本文

内容发布更新时间 : 2024/5/13 2:30:34星期一 下面是文章的全部内容请认真阅读。

SYNOPSYS

Lab1

Setup and Synthesis Flow

缩略词:Design Compile =DC;

备注:UNIX%代表在linux终端下进行操作,其余的代表在DC下进行DC命令输入

前言:

DC(Design Compiler)是Synopsys的logical synthesis优化工具,它根据design description和constraints自动综合出一个优化了的门级电路。它可以接受多种输入格式,如硬件描述语言、原理图和netlist等,并产生多种性能报告,在缩短设计时间的同时提高读者设计性能。

基本的综合流程:

该基本综合流程包含下列步骤: 1. 发展HDL文件

输入Design Compiler的设计文件通常都是用诸如VHDL和Verilog HDL等

硬件描述语言编写。这些设计描述必须小心地编写以获得可能的最好的综合结果。在编写HDL代码时,你需要考虑设计数据的管理、设计划分和HDL编码风格。划分和编码风格直接影响综合和优化过程。 虽然流程中包含该步骤,但实际上它并不是Design Compiler的一个步骤。你不能用Design Compiler工具来编写HDL文件。 2. 指定库

通过link_,target_,symbol_,和synthetic_library命令为Design Compiler指定链接库、对象库、符合库和综合库。

链接库和对象库是工艺库,详细说明了半导体厂家提供的单元和相关信息,象单元名称、单元管脚名称、管脚负载、延迟、设计规则和操作环境等。

符号库定义了设计电路图所调用的符号。如果你想应用Design Analyzer图形用户界面,就需要这个库。

另外,你必须通过synthetic_library命令来指定任何一种特殊的有许可的设计工具库(你不需要指定标准设计工具库)。 3. 读入设计

Design Compiler使用HDL Compiler将RTL级设计和门级网表作为设计输

入文件读入。通过analyze和elaborate命令读入RTL级设计,通过read_file或read命令读入门级网表。Design Compiler支持所有主要的门级网表格式。 如果你用read_file或read命令读入RTL设计,等于实现了组合3analyze和elaborate命令的功能。

4. 定义设计环境

Design Compiler要求设计者模拟出待综合设计的环境。这个模型由外部 的操作环境(制造流程、温度和电压)、负载、驱动、扇出、线负载模型等组成。它直接影响到设计综合和优化的结果。利用图2-4中该步骤下所列的一系列命令来定义设计环境。 5. 设置设计约束

Design Compiler利用设计规则和最优化约束来控制设计的综合。厂家工

艺库提供设计规则以保证产品符合规格、工作正常。典型的设计规则约束转换时间(set_max_transition)、扇出负载(set_max_fanout)和电容(set_max_capacitance)。这些规则指定了要求的工艺,你不能违反。当然,你可以设置更严格的约束。 最优化约束则定义了时序(时钟、时钟错位、输入延时和输出延时)和面积(最大面积)等设计目标。在最优化过程中,Design Compiler试图去满足这些目标,但不会去违反任何设计规则。利用图2-4中该步骤下所列的一系列命令来定义这些约束。为能够正确地优化设计,必须设置更接近现实情况的约束。 你选择的编译策略将影响设计约束的设置。流程中的步骤5和步骤6是相互依赖的。 6. 选择编译策略

你可以用来优化层次化设计的两种基本编译策略被称为自顶向下和从下上。 在自顶向下的策略里,顶层设计和它的子设计一起进行编译。所有的环境和约束设置都根据顶层设计来定义。因此,它会自动的考虑内部模块的依赖性。但对于大型设计,这种方法并不实用,因为所有的设计必须同时贮存在内存里。 在从下到上的策略里,分别对子设计进行约束和编译。在成功编译后,这些设计都被赋予一个dont_touch参数,防止在随后的编译过程中对它们进行进一步的改变。然后这些编

译过的子设计组合成更高层次的设计,再进行编译。编译过程一直持续到顶层设计被综合。由于Design Compiler不需要同时将所有未编译的子设计装载进内存,这种方法允许你编译大型设计。然而,在每一个阶段,你必须估计每个内部模块的约束,更有代表性的是,你必须不停地编译、改进那些估计,直到所有的子设计界面都是稳定的。 每一个策略都有其优点和缺点,这取决于你设计的特殊性和设计目标。你可以选择任意一个策略来进行整个设计,或者混合使用,对每一个子设计采用最合适的策略。 7. 优化设计

利用compiler命令启动Design Compiler的综合和优化进程。有几个可选

的编译选项。初步编译,如果你想对设计面积和性能有一个快速的概念,将map_effort设置为low;默认编译,如果你在进行设计开发,将map_effort设置为medium;当在进行最后设计实现编译时,将map_effort设置为high。通常设置map_effort为medium。 8. 分析和解决设计问题

通常Design Compiler根据设计综合和优化的结果生成众多的报告。你根据诸如面积、约束和时序报告来分析和解决任何设计问题,或者改进综合结果。你可以用check命令来检查综合过的设计,也可用其他的check_命令。 9. 保存设计数据

利用write命令来保存综合过的设计。Design Compiler在退出时并不自 动保存设计。 你也可以在一个脚本文件里保存那些综合过程中用过的设计参数和约束。脚本文件是用来管理设计参数和约束的理想工具。

技术相关帮助: Linux下:

vi filename :打开或新建文件;例如:vi m.tcl (m.tcl若存在,则查看,反之为创建)创建/查看一个名为m的脚本文件。备注:按下键盘i时进入编辑插入状态;退出时不保存,按下Esc并输入“:q”;若退出时保存,按下Esc并输入“:wq”,强制退出加上!

vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

mkdir filename :新建一个文件夹。 rmdir filename :删除一个文件夹。

rm filename :删除一个文件或路径目录或文件夹; rm –r filename :删除文件夹所有的东西,不可恢复。

DC下:

在命令行中,用man+ DC命令。可以得到这个DC命令的介绍。

温馨提示:在做实验前,请务必理解对应的章节!!!

一、实验目标: