0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单介绍optimize的内容以及它的一些实际运用

数字后端IC芯片设计 来源:未知 作者:李倩 2018-05-07 15:46 次阅读

前面主要介绍了Optimize的一些基本概念,那么今天就来讲解一下它的一些实际运用,以及我们怎么才能用好这个强大的命令!!

说到Optimize,那和它联系最紧密的就是Timing了。在做实际design中,从place到signoff,Timing violation是伴随着整个流程挥之不去的阴影。那P&R中,Timing violation的趋势是怎么样的呢?

很多人脑海里浮现的是左边呈倒金字塔形的这张吧,认为每前进一步就会修掉一些violation。其实则不然,右边那张才是更合理化的趋势图。工具P&R的核心,placement和routing,其实都不是那么的timing aware。Routing以后甚至会出现violation path的增多(因为Route之前都不care DRC)。那其实整个Timing closure的过程中,出力最大的就是Optimize。因此,我们非常有必要来了解一些传统的Optimize的注意点

1Before Optimize

正所谓"临阵磨枪,不亮也光",Optimize可是个超级命令,通常运行时间都在几个小时,甚至几十个小时以上。耗费这么大的财力物力,我们可不希望它跑得毫无价值。在开始运行place_opt之前,对design的基本情况进行一些基本检查真的是非常有必要的。整理了一下,以下几点是比较有用的:

1)跑一遍check_design,检查一下design中包括(netlist,Timing library,Floorplan)

2)检查sdc文件是否clean。是否有一些定义不合理的约束。

3)报一遍zero wireload model的timing,如果zwl timing的结果都不理想的话,试着要去调整下sdc文件等等

4)采用get_attribute [get_lib_cell *] dont_use或者report_dont_use报出当前设计中的dont use cell,一些特别weak的cell我们需要禁用。

5)检查一下有没有打开需要的active scenarios

set_scenario_status -active true

6)检查所需要的Optimize mode。

Performance(opt.timing.effort)

Power(opt.power.effort)

Density(-max_density)

2During Optimize

这个期间,是Optimize自己后台运行的过程。我们也做不了什么操作,正好来复习一下Optimize的transform。我们知道它可以做很多的动作,而工具中可以让它操作的object又有很多,这两者之间的关系在下面这张表中可以体现出来:

3After Optimize

当Optmize做完,结果不理想该肿么办呢?

Debug呗~~

提供以下几点建议:

1)从log入手:

1.查看下各个Path Group的WNS/TNS的收敛趋势。

2.查看下DRV的收敛趋势。

3.查看下Optimize过程中各个transform的detail report。包括move的instance数目,距离。包括routing conestion等等,检查下有没有异常值。

2)分析Timing情况

1. 总体概括性地检查一下critical path,而不是去看最差的一条,通常Path Group的timing变差具有共性

2. 分析一下path上的cell/net delay, 看看有没有“bad buffering,bad sizing,weak cell”这些情况

3. 检查一下Placement结果吧,看看某些区域的density是不是较大,可以采用keepout margin或者cell spacing constraint来增大cell之间的距离

4. macro是否摆放不合理,channel留太少,或者macro上的routing过差,可以采用添加合适的blockage,或者重新摆放macro位置来解决

5. 可以自己创建Path Group来优化timing,Optimize默认创建的Path Group是reg2reg, reg2cgate. 我们可以采用group_path来自己创建需要重点优化的Path。

3)通过report相关的命令来检查一些潜在的误操作或者工具的bug

report_dont_use可以报出当前design中的dont use cell

report_dont_touch可以报出当前design中的dont touch cell

4)运行incremental的optimize

它会基于当前Placement的结果来优化density,以及基于Optimize的结果来继续优化WNS和TNS

optimize的介绍就到此为止了,看似简单的一个命令其实要用好他却不容易。如何挖掘工具潜能,取得较好的优化结果,这是一个反复迭代,反复分析设计的过程。总之,多尝试,多跑跑设计,才能对工具愈发熟练。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • design
    +关注

    关注

    0

    文章

    155

    浏览量

    45682
  • timing
    +关注

    关注

    0

    文章

    7

    浏览量

    10175

原文标题:芯片诚可贵,时序价更高——Optimize(二)

文章出处:【微信号:IC_Physical_Design,微信公众号:数字后端IC芯片设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    介绍一些简单的项目

    学51单片机已经个多月,简单的操作感觉还好。 想找一些简单的项目做下,在项目中学习,求介绍
    发表于 08-18 12:35

    介绍蓝牙的一些概念

    . 声明本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:第篇:蓝牙综合介绍 ,主要介绍蓝牙的
    发表于 07-22 06:03

    介绍下UPS的一些基础知识

    机房UPS电源实际负载容量与负载量是怎么计算的?2018-09-16正文:、首先介绍下UPS的一些基础知识1、为什么用UPS?UPS的作
    发表于 11-16 07:16

    分享一些学习STM32的内容

    这里大概的罗列了一些学习STM32的内容以及学习顺序。如果是新手的话,建议边看中文手册和学习视频(般都看原子的,视频的话百度就可以了,如果实在是找不到的话,我给大家推荐
    发表于 11-22 08:19

    介绍一些MOV与ADD指令的简单例子

    因为嵌入式系统学习需要,开始学习汇编语言学习资料是B站的视频:汇编语言程序 P9目录一些简单的指令例子二、个练习
    发表于 01-07 06:39

    罗列一些学习STM32的内容以及学习顺序

    罗列一些学习STM32的内容以及学习顺序
    发表于 01-19 07:04

    关于stm32的一些简单介绍

    #序言本文章是关于stm的一些简单介绍,全部都是个人学习的一些经验总结,分享给想要自学stm32的朋友们用于入门。其中部分内容借鉴于《st
    发表于 02-24 06:30

    Allegro中网络表的导入以及回编到Capture中的一些

    Allegro中网络表的导入以及回编到Capture中的一些注意事项:网络表(Netlist)是沟通电路原理图和Layout实际板子的桥梁网络表包含的内容有零件Pin的连接线关系
    发表于 09-20 18:08 0次下载

    如何处理实际布线中的一些理论冲突的问题

    如何处理实际布线中的一些理论冲突的问题         基本上, 将模/数地分割隔离是对的。 要注意的是信号走线尽量
    发表于 03-20 13:54 625次阅读

    讨论 fmt 的基本用法以及提供的一些主要功能

    好在,有个命令可以满足至少部分的文本格式化的需求。这个工具就是 fmt。本教程将会讨论 fmt 的基本用法以及提供的一些主要功能。文中
    的头像 发表于 01-16 09:00 6289次阅读
    讨论 fmt 的基本用法<b class='flag-5'>以及</b><b class='flag-5'>它</b>提供的<b class='flag-5'>一些</b>主要功能

    Verilog HDL语言组合逻辑设计方法以及QuartusII软件的一些高级技巧

    本文档的主要内容详细介绍的是Verilog HDL语言组合逻辑设计方法以及QuartusII软件的一些高级技巧。
    发表于 07-03 17:36 20次下载
    Verilog HDL语言组合逻辑设计方法<b class='flag-5'>以及</b>QuartusII软件的<b class='flag-5'>一些</b>高级技巧

    简单介绍LoRa网关日常管理和维护的一些实用知识

    ? 本文旨在介绍LoRa网关日常管理和维护的一些实用知识。 、LoRa网关管理和维护的困难 LoRa网关由于其借助LoRa通信技术,因此通信距离长,尤其适用于比如智慧农场、智能工业等覆盖范围较大的应用场景。 在
    发表于 07-21 15:24 1478次阅读

    电脑的一些硬件问题讲解

    本文档的主要内容详细介绍的是电脑的一些硬件问题讲解。
    发表于 10-20 08:00 14次下载
    电脑的<b class='flag-5'>一些</b>硬件问题讲解

    一些简单趣味小电子制作教程

    一些简单趣味小电子制作教程
    发表于 09-26 14:05 28次下载

    介绍一些大功率IGBT模块应用中的一些技术

    PPT主要介绍了大功率IGBT模块应用中的一些技术,包括参数解读、器件选型、驱动技术、保护方法以及失效分析等。
    发表于 09-05 11:36 769次阅读