Synopsys:设计对象 📅 发布时间:2026/9/8 19:21:49 👁 浏览次数: 相关阅读Synopsyshttps://blog.csdn.net/weixin_45791458/category_12812219.html?spm1001.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命令可以得到单元的任意一个属性值。层次单元会继承其对应的设计上设置的属性值如dont_touch属性。时钟时钟指的是在设计中模拟周期、不确定度、抖动等因素的对象使用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命令可以得到库单元时序弧的任意一个属性值。写在最后除了本文中提到的这些常见的设计对象Synopsys的特定工具中还存在其他设计对象比如Design Compiler中还存在低功耗设计中会用到的power_domain、supply_net、supply_set、supply_port、power_switch。很多设计对象都有object_class属性部分设计对象没有比如bound、placement_keepout和wiring_keepout用以表明其类型用户可以对该属性进行查询。