当前位置: 首页 > news >正文

Design Compiler:物理约束

Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.2014.3001.5482


        在使用拓扑模式进行物理综合时,可以提供物理约束,例如:晶圆面积(die area)、核心区域(core area)及其形状、端口位置(port location)、宏单元位置(macro location)、避开区(keepout margin)、布局阻挡区(placement blockage)、预布线(preroute)、边界(bound)等。

        这些物理约束可以以多种形式提供,本文就将对此进行简要介绍。

IC Compiler

        首先在IC Compiler中进行设计规划(design planning),随后使用write_def或write_floorplan命令保存布图规划。

        如果使用write_def命令,则需要注意有些物理约束可能无法保存在DEF文件中,例如create_voltage_area命令、create_rp_group命令、create_bound命令的-dimension选项、create_placement_blockage命令的-no_register、-no_rp_group、-no_pin、-buffer_only和-no_hard_macro选项、set_ignored_layers命令、set_preferred_routing_direction命令。如果需要恢复这些物理约束,需要额外进行设置。在Design Compiler中可以使用extract_physical_constraints命令提取物理约束并将其应用在当前设计中。

        如果使用write_floorplan命令,则需要注意有些物理约束可能无法保存在Tcl文件中,比如set_keepout_margin命令。如果需要恢复这些物理约束,需要额外进行设置。在Design Compiler中可以使用read_floorplan命令在当前设计中设置物理约束,也可以使用source命令,但使用该命令时会报告一些并不适用于Design Compiler的错误和警告,read_floorplan命令会过滤这些无用的错误和警告。

        Design Compiler Graphical支持使用floorplan exploration功能,即调用IC Compiler进行布图规划,并将结果直接返回给Design Compiler。

IC Compiler II

        首先在IC Compiler II中进行设计规划,随后使用write_def或write_floorplan命令保存布图规划。

        如果使用write_def命令,则需要注意有些物理约束可能无法保存在DEF文件中,例如create_voltage_area命令、create_rp_group命令、create_bound命令的-dimension选项、create_placement_blockage命令的-type选项、set_ignored_layers命令、set_preferred_routing_direction命令。如果需要恢复这些物理约束,需要额外进行设置。在Design Compiler中可以使用extract_physical_constraints命令提取物理约束并将其应用在当前设计中。

        如果使用write_floorplan命令,IC Compiler II会在指定目录下生成DEF文件和Tcl文件,DEF文件通常包含数量较多的对象,直接用Tcl文件来恢复这些对象会非常耗时;Tcl文件则包含了不能在DEF文件中描述的物理约束以及一条read_def命令用于加载前述DEF文件。在Design Compiler中可以使用read_floorplan命令在当前设计中设置物理约束,也可以使用source命令,但使用该命令时会报告一些并不适用于Design Compiler的错误和警告,read_floorplan命令会过滤这些无用的错误和警告。

        Design Compiler Graphical支持使用floorplan exploration功能,即调用IC Compiler II进行布图规划,并将结果直接返回给Design Compiler。

用户自定义物理约束

        在第一轮综合时,可以使用默认物理约束或自定义物理约束,下面是支持的物理约束命令。

  • set_aspect_ratio
  • set_utilization
  • create_die_area
  • create_site_row
  • set_port_side
  • create_terminal
  • set_cell_location
  • create_placement_blockage
  • create_voltage_area
  • create_bounds
  • create_route_guide
  • create_net_shape
  • create_user_shape
  • set_pin_physical_constraints
  • create_pin_guide
  • create_via_master
  • create_via
  • create_track
  • set_keepout_margin
  • compute_polygons

        

Jupiter XT(过时)

        Jupiter XT曾经是专门的布图规划工具,设计规划完成后可以使用derive_physical_constraints命令将布图规划保存在Tcl文件中。

保存设计

保存为二进制格式

        使用write_file -format ddc命令或write_milkyway命令可将设计保存为二进制格式,被保存的设计中不仅包含了网表、逻辑约束,还包括物理约束和标准单元的粗布局(coarse placement)信息。

        需要注意的是,默认情况下,这些物理约束和标准单元的粗布局信息只能被Design Compiler再次读取,用于增量综合(如果使用write_milkyway命令保存,设计甚至无法重新被再次读取)。设计传递给IC Compiler时,只有其中的网表、逻辑约束会被读取。

        但是如果使用了Design Compiler Graphical的Synopsys Physical Guidance(SPG)技术,标准单元的粗布局信息可以被传递给IC Compiler,且根据物理约束生成的签名也会被读取,以确保布图规划的一致性。通过SPG技术综合后保存的二进制设计会包含一个名为dct_spg_flow_done的只读属性,可以查询该属性确定该设计是否通过SPG技术创建。

保存为ASCII格式

        使用write_file -format verilog命令可将设计保存为ASCII格式,被保存的设计只包含了网表,不包含逻辑约束、物理约束和标准单元的粗布局信息。

        可以在Design Compiler中使用write_def或write_floorplan命令保存物理约束,如果使用了Design Compiler Graphical的Synopsys Physical Guidance(SPG)技术,DEF文件中还会包含标准单元的粗布局信息。

保存为供IC Compiler II使用的ASCII格式

        使用write_file -format verilog命令可将设计保存为ASCII格式,被保存的设计只包含了网表,不包含逻辑约束、物理约束和标准单元的粗布局信息。

        可以在Design Compiler中使用write_def或write_floorplan -format icc2命令保存物理约束,如果使用了Design Compiler Graphical的Synopsys Physical Guidance(SPG)技术,DEF文件中还会包含标准单元的粗布局信息。

        最方便的是使用write_icc2_files命令,该命令会调用许多命令(包括write_file命令、write_saif命令、write_floorplan -format icc2命令、save_upf命令、write_timing_context命令)生成所有IC Compiler II需要使用的文件,包括网表、SAIF文件、DEF文件和Tcl文件、UPF文件、SCANDEF文件、SDC文件等。

http://www.lryc.cn/news/607256.html

相关文章:

  • 【Linux】Linux下基本指令
  • 校园土壤墒情自动监测站:土壤小卫士
  • shell脚本的语法使用及例题
  • 10.Linux 用户和组的管理
  • 数据结构——查找(一、什么是查找?)
  • 嵌入式 C 语言入门:函数封装与参数传递学习笔记 —— 从定义到内存机制
  • Vue+Cesium 基础搭建
  • LT3045EDD#TRPBF ADI亚德诺半导体 线性稳压器 电源管理应用设计
  • 优化算法专栏——阅读导引
  • 【OneAPI】网页搜索API和网页正文提取API
  • 让 OAuth 授权码流程更安全的 PKCE 技术详解
  • linux下非Docker模式部署Xinference并部署Rerank模型
  • 最新docker国内镜像源地址大全
  • DreamBoards 借助 DreamHAT+ 雷达插件为 Raspberry Pi 提供 60GHz 毫米波雷达
  • 基于STM32+FPGA工业打印机运动控制卡的核心解决方案
  • Spring Boot微服务性能优化实践指南:从配置到监控
  • MT Photos图库部署详解:Docker搭建+贝锐蒲公英异地组网远程访问
  • 无人机模式的切换
  • PendingIntent相关流程解析
  • 我的博客系统测试报告
  • PHP转Java笔记
  • 前端图片懒加载的深度指南:从理论到实战
  • 浏览器环境segmentit实现中文分词
  • windows内核研究(软件调试-调试事件采集)
  • 性能测试-性能测试中的经典面试题一
  • Nginx跨域问题与 MIME 类型错误深度排错指南:解决 MIME type of “application/octet-stream“ 报错
  • CAN通信协议
  • 从零到英雄:掌握神经网络的完整指南
  • 大模型开发框架LangChain之构建知识库
  • YOLOv8/YOLOv11 C++ OpenCV DNN推理