DC学习-第五章

Design Compiler在主存中管理设计,支持多种操作如读取、列出、设置当前设计、连接、编辑和保存设计。设计可以是层次化的,包含子设计和库组件。它通过analyze和elaborate命令读取HDL源文件,使用link命令解析引用。设计对象可通过相对或绝对路径指定,可以使用change_link命令改变连接。编辑设计包括创建、复制、重命名设计,以及解分组和时序约束处理。设计转换涉及translate命令,从一种工艺转换到另一种。设计的属性用于描述对象特性,可以设置和查看。
摘要由CSDN通过智能技术生成

5使用主存中的设计
Design Compiler从设计文件中将设计读入到主存中。多个设计可以同时驻存于主存中。在设计读入后,你可以以多种方式来改变它,譬如对其自设计进行分组和解除分组或者改变子设计的引用。
本章包含了一下部分:
 设计的术语
 读取设计
 列出主存中的设计
 设置当前设计
 连接设计
 列出设计对象
 指定设计对象
 创建设计
 复制设计
 重命名设计
 改变设计层次
 编辑设计
 不同工艺库间设计的转换
 从主存中移除设计
 保存设计
 使用属性
设计术语
不同的公司会对他们自己的设计和组件有不同的术语。本节描述了Synopsys综合工具使用的术语。
关于设计
设计是执行逻辑功能的电路描述。设计可以使用多种设计格式,譬如VHDL或者verilog HDL。
逻辑级设计表现为布尔方程组。门级设计,譬如网表,表现为互相连接的单元。
设计可以单独的存在和单独的编译,或者它们可以被用作更大的设计的子设计。设计可以是打平的或者是层次化的。
打平的设计
打平的设计时指没有子设计只有一个结构层次。它们子包含库单元。
层次化设计
层次化设计会包含一个或多个设计作为子设计。每个子设计可以进一步包含自身的子设计,来创建多层的设计层次。包含子设计的设计被称为父设计。
设计对象
图5-1 显示了名为TOP的设计的设计对象。Synopsys命令,属性和约束都指向特定的设计对象。
图5-1 设计对象

设计
一个设计由实例,线,端口和引脚组成。它可以包含子设计和库单元。在图5-1中,TOP,ENCODER和REGFILE都是设计。激活的设计(处于工作状态的设计)被称为当前设计。大部分命令都是作用于当前设计的,也就是说,它们是在当前设计的上下文中国运行。
引用
一个引用是指一个库部件或者可以用于构建一个更大的电路的设计。一个引用的结构可以是简单的逻辑门或是一个更复杂的设计(一个RAM核或者CPU)。一个设计可以对一个引用进行多次使用;每次使用都是一个实例。
引用可以使你在不影响其他设计中的单元的前提下,对单个设计的每个单元(譬如NAND门)进行优化。一个设计中的引用和其他设计中的相同的引用是独立的。在图5-1中,INV,ENCODER和REGFILE都是引用。
实例和单元
一个实例是载入到主存的引用电路的一次使用;每一个实例都有一个单独的名字。一个设计可以包含多个实例;每个指向同一个引用的实例都有不同的名字以便互相区分。一个实例也可以被称为单元。
一个设计在另一个设计中的实例称为层次化实例。一个设计中库单元的实例称为leaf cell。一些命令工作在当前设计的层次化实例上下文中。当前实例为特定实例命令定义了激活的实例。在图5-1中,U1,U2,U3和U4都是实例。
Ports(端口)
端口是设计的输入和输出。端口方向只能被指定为输入,输出或者inout。
Pins(引脚)
引脚是设计中单元的输入和输出。子设计的端口便是父设计的pins。
Nets
Nets是连接端口和引脚和引脚互联的线。
设计,实例和引用之间的关系
图5-2 显示了设计,实例和引用之间的关系。
图5-2 实例和引用

EXREF设计办了两个引用:NAND2和MULTIPLIER。NAND2被例化了三次,MULTIPLIER被例化了一次。
NAND2的三个实例的名字为U1,U2,和U3。在EXREF设计中NAND2和MULTIPLIER的引用和其他设计中的相同的引用是相互独立的。
关于解析引用的信息,请参考“连接设计”。
报告引用
你可以用report_reference命令来报告关于当前实例或当前设计中所有引用的信息。使用-hierarchy选项来显示在当前实例或当前设计的夸层次信息。
使用引用对象
当你使用get_references名时,Design Compiler返回有特定引用的实例的集合,并对这些实例进行操作。
举个例子,下面的命令返回当前设计的有引用AN2实例的集合:

使用以下命令来查看引用名:

读取设计
Design Compiler可以以表5-1中列出的格式读取设计。
表5-1 支持的输入格式

读取设计文件的命令
Design Compiler提供下面的方式来读取设计文件:
 analyze和elaborate命令
 read_file命令
使用analyze和elaborate命令
analyze命令会进行以下操作:
 读取HDL源文件
 检查错误(单不会为设计建立generic 逻辑)
 以HDL无关的中间格式创建HDL库对象
 在你指定的位置存储中间文件
如果analyze报告了错误,需要在HDL源文件中修改这些错误并且再一次运行analyze。
按照如下的方式使用analyze命令的选项:
表5-2 使用analyze命令选项

elaborate命令会进行以下操作:
 将设计从analysis过程中产生中间文件翻译成工艺无关的设计(GTECH)
 允许源代码定义的参数值的改变
 允许VHDL结构的选择
 将代码中HDL算数操作符替换为DesignWare部件
 自动执行link命令,用于解析设计引用
按以下的方式使用elaborate命令的选项:
表5-3 使用elaborate命令选项

更多关于analyze和elaborate命令的信息,请参考man pages和HDL Compiler for Verilog User Guide 或者HDL Compiler for VHDL User Guide。
使用read_file命令
read_file命令会进行以下操作:
 读取几种不同的格式
 执行与analyze和elaborate命令相同的操作
 为VHDL创建.mr和.st中间文件
 不会自动执行link命令(参考“连接设计”)
 不会为Verilog创建任何中间文件(但是,你可以通过将hdlin_auto_save_templates变量设置true来让read_fil命令创建中间文件)
对于主存中的设计,Design Compiler使用path_name/design.ddc的命名规则。其中path_name是读取初始文件的目录,design是设计的名字。如果你稍后要读取有相同文件名的设计,Design Compiler会覆盖之前的设计。为了防止这种情况发生使用read_file命令的-single_file选项。
如果你不指定设计的格式,read_file命令会基于文件的拓展名来推断格式。如果使用了未知的拓展名,工具会假设是.ddc格式。支持自动推断的拓展名是不去人大小写的。read_file命令允许读取除.ddc格式外的压缩文件,ddc格式在内部写入时就被压缩了。为了能让工具为压缩文件自动推断文件格式,使用下面的命名结构:..gz。
支持下面的格式:
 ddc格式:使用.ddc拓展名
 db格式:使用.db,.sldc,.sdc,.db.gz,sldb.gz和.sdb.gz拓展名
 Verilog格式:使用.v,.verilog,.v.gz和.verilog.gz拓展名
 SystemVerilog:使用.sv,.sverilog,.svn.gz和.sverilog.gz拓展名
 VHDL:使用.vhdl,.vhdl,vhd.gz和.vhdl.gz拓展名
表5-4 使用read_file命令选项

表5-5 总结了使用read_file命令和使用analyze加elaborate命令来读取设计文件的不同之处
图5-5 read_file对比analyze和elaborate命令

读取HDL设计
使用下面任一种方式来读取HDL设计文件:
 analyze和elaborate命令
为了使用这种方法,一由下而上的顺序analyze顶层设计和所有子设计,然后以自顶向下的方式elaborate顶层设计和那些需要为参数赋值或重写的子设计。
例如,输入

 read_file命令
例如,输入

 read_verilog或者read_vhdl命令
例如,输入

你也可以使用read_file –format VHDL和read_file –format verilog命令。
读取.ddc文件
使用read_ddc命令或者read_file -format ddc命令来读取.ddc 文件的设计数据。例如,

注意:
.ddc文件时向后兼容(你可以打开更早版本软件生成的ddc文件)的而非向前兼容的(你无法打开更新版本软件生成的ddc文件)。
读取.db文件
虽然你可以使用.db格式,但是还是建议使用.ddc格式。为了读取.db文件。使用read_db命令或者read_file –format db命令。
例如,

.db文件的版本就是创建该文件的Design Compiler的版本。对于一个将要被读入到Design Compiler的.db文件。器版本必须不晚于你所使用的Design Compiler的版本。如果你试图读取一个有晚于你使用Design Compiler版本的Design Compiler生成.db文件,会出现error信息。Error信息提供了版本不匹配的细节。
列出主存中的设计
使用list_designs命令可以列出载入到内存中的设计的名字。

设计A后的星号(*)表示A是当前设计。
使用-show_file选项可以列出与每个设计名相对应的主存文件名。

设计A后的星号(*)表示A是当前设计。文件B.ddc包含了设计B和设计C
设置当前设计
你可以通过下面的方式来设置当前设

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值