相关阅读
Synopsyshttps://blog.csdn.net/weixin_45791458/category_12812219.html?spm=1001.2014.3001.5482
对于Synopsys的EDA工具(如Design Compiler、PrimeTime、IC Compiler)等,设计对象(Design Objects)是组成整个设计的抽象表示(其实设计本身也是一种设计对象),本文就将介绍一些常见的设计对象。
单元
单元指的是那些在设计中被实例化的模块,一个模块可以多次实例化以创建多个不同的单元。如果该模块是用户定义的,则相应的单元被称为层次单元(Hierarchical Cell);如果该模块来自逻辑库,则相应的单元被称为叶单元(Leaf Cell),关于叶单元的更详细介绍,参考下面的博客。
静态时序分析:Leaf Cell(叶单元)https://chenzhang.blog.csdn.net/article/details/140306133
使用get_cells命令可以得到一个单元集合(Collection),以用于其他SDC命令;使用report_cell命令可以报告单元信息;使用list_attributes -class cell -application命令可以显示一个单元可以拥有的属性(Attribute),这些属性用于记录单元的详细信息;使用get_attribute命令可以得到单元的任意一个属性值。
时钟
时钟指的是在设计中模拟周期、不确定度、抖动等因素的对象,使用create_clock命令或create_generated命令可以分别创建时钟和生成时钟,关于这两者的更详细介绍,参考下面的博客。
静态时序分析:ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则(一)https://chenzhang.blog.csdn.net/article/details/139998035
使用get_clocks命令可以得到一个时钟集合,以用于其他SDC命令;使用report_clock命令可以报告时钟信息;使用list_attributes -class clock -application命令可以显示一个时钟可以拥有的属性,这些属性用于记录时钟的详细信息;使用get_attribute命令可以得到时钟的任意一个属性值。
设计
设计指的是被读取的模块,如单元描述中说的那样,一个设计可以在另一个设计中实例化为单元。使用get_designs命令可以得到一个设计集合,以用于其他SDC命令;使用report_design命令可以报告设计信息;使用list_attributes -class design -application命令可以显示一个设计可以拥有的属性,这些属性用于记录设计的详细信息;使用get_attribute命令可以得到设计的任意一个属性值。
线网
线网用于连接单元之间引脚,使用get_nets命令可以得到一个线网集合,以用于其他SDC命令;使用report_net命令可以报告线网信息;使用list_attributes -class net -application命令可以显示一个线网可以拥有的属性,这些属性用于记录线网的详细信息;使用get_attribute命令可以得到线网的任意一个属性值。
引脚
引脚指的是设计中单元的引脚,它的方向可以是输入、输入和输入输出(双向)。使用get_pins命令可以得到一个引脚集合,以用于其他SDC命令;使用list_attributes -class pin -application命令可以显示一个引脚可以拥有的属性,这些属性用于记录引脚的详细信息;使用get_attribute命令可以得到引脚的任意一个属性值。
端口
端口指的是设计的端口,它的方向可以是输入、输入和输入输出(双向)。使用get_ports命令可以得到一个端口集合,以用于其他SDC命令;使用report_port命令可以报告端口信息;使用list_attributes -class port -application命令可以显示一个端口可以拥有的属性,这些属性用于记录端口的详细信息;使用get_attribute命令可以得到端口的任意一个属性值。
时序组
时序组用于将一些时序路径组合为一个整体,计算代价函数和时序报告是根据时序组进行的,关于这时序组的更详细介绍,参考下面的博客。
静态时序分析:时序组(Path Group)的概念https://chenzhang.blog.csdn.net/article/details/145471386
使用get_path_groups命令可以得到一个时序组集合,以用于其他SDC命令;使用report_path_group命令可以报告时序组信息;使用list_attributes -class path_group -application命令可以显示一个时序组可以拥有的属性,这些属性用于记录时序组的详细信息;使用get_attribute命令可以得到时序组的任意一个属性值。
时序路径
时序路径是由时序弧构成的路径,静态时序分析会分别对每条有约束的时序路径进行时序检查(例如建立时间检查、保持时间检查、移除时间检查、恢复时间检查、最大延迟检查、最小延迟检查、门控时钟检查、数据到数据检查、最小脉冲宽度检查等),关于这时序路径的更详细介绍,参考下面的博客。
静态时序分析:典型与非典型时序路径的约束详解(一)https://chenzhang.blog.csdn.net/article/details/136521221
使用get_timing_paths命令可以得到一个时序路径集合,以用于其他SDC命令;使用list_attributes -class timing_path -application命令可以显示一个时序路径可以拥有的属性,这些属性用于记录时序路径的详细信息;使用get_attribute命令可以得到时序路径的任意一个属性值。
单元时序弧
单元时序弧是单元引脚之间的时序弧,使用get_timing_arcs命令可以得到一个单元时序弧集合,以用于其他SDC命令;使用list_attributes -class timing_arc -application命令可以显示一个单元时序弧可以拥有的属性,这些属性用于记录单元时序弧的详细信息;使用get_attribute命令可以得到单元时序弧的任意一个属性值。
库
库指的是被读取的逻辑库,一般情况下,target_library变量和link_library变量中指定的库会被自动读取,而无需显式读取,关于这两者的更详细介绍,参考下面的博客。
Design Compiler:目标(target)库、链接(link)库、符号(symbol)库、综合(synthetic)库和物理(physical)库的详细解析https://chenzhang.blog.csdn.net/article/details/143029536
使用get_libs命令可以得到一个库集合,以用于其他SDC命令;使用report_lib命令可以报告库信息;使用list_attributes -class lib -application命令可以显示一个库可以拥有的属性,这些属性用于记录库的详细信息;使用get_attribute命令可以得到库的任意一个属性值。
库单元
库单元指的是被读取的逻辑库中的单元,与单元不同的是,库单元表示库中未实例化的单元。使用get_lib_cells命令可以得到一个库单元集合,以用于其他SDC命令;使用report_lib命令并指定一个库单元名作为参数可以报告库单元信息;使用list_attributes -class lib_cell -application命令可以显示一个库单元可以拥有的属性,这些属性用于记录库单元的详细信息;使用get_attribute命令可以得到库单元的任意一个属性值。
库单元引脚
库单元引脚是库单元的引脚,与库单元不同的是,库单元引脚的细粒度更高,并描述了引脚特定信息。使用get_lib_pins命令可以得到一个库单元引脚集合,以用于其他SDC命令;使用report_lib_pins命令可以报告库单元引脚信息(仅限Library Compiler);使用list_attributes -class lib_pin -application命令可以显示一个库单元引脚可以拥有的属性,这些属性用于记录库单元引脚的详细信息;使用get_attribute命令可以得到库单元引脚的任意一个属性值。
库单元时序弧
库单元时序弧是库单元引脚之间的时序弧,使用get_lib_timing_arcs命令可以得到一个库单元时序弧集合,以用于其他SDC命令;使用report_lib_timing_arcs命令可以报告库单元时序弧信息(仅限Library Compiler);使用list_attributes -class lib_timing_arc -application命令可以显示一个库单元时序弧可以拥有的属性,这些属性用于记录库单元时序弧的详细信息;使用get_attribute命令可以得到库单元时序弧的任意一个属性值。