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

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

3天内不再提示

一般APR常用到的类型有哪些

鸿芯微纳 来源:鸿芯微纳 作者:鸿芯微纳 2021-12-11 09:36 次阅读

03 Place

Floorplan完成之后,我们差不多完成PR工作的中的大部分手动工作,进入纯粹的run job时间。而影响place的行为主要由parameter决定。这里引入AG的Parameter系统,在Parameter的体系里,所有影响工具表现的设定都可以找到,一般APR常用到的类型有以下几种

各种parameter的调教基本也是一个PR工程师的修养,好比雷神之锤在索尔手里是附魔武器,在美队手里是物理武器,跑到斯塔克手里是不可举起的武器一样,parameter的不同最终影响物理芯片的性能、面积、功耗(PPA),而这部分通常的工具厂商会提供整套的不同工艺节点下的通用设定来应付常规设计。AG也有对应的设定在AGflow中,此处给自己挖个坑,AGflow的玩法在稍后开新篇介绍。

搞定guide/parameter的设置后,基本上直接一个超级命令就可以跑完,现在的PR工具都喜欢用组合命令来更贴合流程,AG叫place_optimize,基本就是先place_cell ,然后调用opt engine 针对当前stage做优化。单独从流程方面来讲,placement跟吃一碗拉面没有任何区别,要不要葱花(设定是否允许filler1)、要不要加面(power effort要high还是low)、牛肉要不要另加(特定时序路径的path group是否设定slack adj)、加不加辣子(有没有cell group,要不要加padding)。最后report_ta去产生当前place阶段需要的所有timing report做时序分析。

在检查place结果时经常会发出标准三联问:为啥工具加了这么多buffer?这buffer的作用是啥?那个步骤给加进去的?一个简单清晰的命名规则会比较容易定位到出错的位置。AG的opt engine内的命名大致是这样的:

除了命名规则,report_placement–check可以帮助检查当前place的数据是否存在DRC问题;place 菜单下的Display Density/Congestion Map可以快速看出是否有拥塞超标的区域,用来判断是否需要在place开始前设立density的guide;Floorplan菜单下的Browse module功能可以自动给各个模块标识不同的颜色,在place迭代中会比较容易根据时序报告总结出需要group在一起的模块或逻辑。

Module browser

Density Map

完成了Place后,有了可接受的时序结果后,就可以进入下一步,CTS了

04 CTS

CTS是clocktree synthesis的简称,时钟树综合的工作就是规划下图CK1-4的点一直到两个DFF的CP端的buffer tree的部分,这部分clock tree有fanout、transation、cap以及不同clock之间的skew要求。

这活看起来很简单,不就是解决DRV分配Fanout,能做平的都做平么?为啥要单独分出一步来做?理想很骨感,现实很丰满。请看真实的clock tree结构

看出最大的区别了么?没错!就是sink的规模,解释原理的时候总是用寥寥数个sink的结构讲这讲那,但实际case中的sink数量,经常会成上万,甚至上到十万级别。此时人工分析或构建clock tree已经不可能,希望工具去Carry全场。现今工具处理clock tree的方式一般都是基于skew group的方式去建立时钟树,优点是综合的规模是以skew group为单位,skew group可以同时作为一个单一时钟的tree、一个多个clock的联合tree、或者只是某个clock下的sub-tree的形式同时存在,这些灵活多变的组合可以有效优化了balance的group的规模,获得更好的QoR.

而传统时钟树以clock为单位,会考虑所有sink的balance问题,必然会拉长时钟树,而且在处理多个时钟穿过的路径时,会因为频率不同而做出妥协,让快的时钟树故意拉长来跟慢的时钟作平衡。

时钟树的建立过程直接画脑图展示:

对于一个PR工程师来说总希望做出的时钟树latency-短、skew-小 级数-少,所以在完成后还要借助工具做一些CTS质量的检查

再次附上debug之宝,CTS阶段的naming rule

Tree做完之后,基本又是调用opt engine去做各类需要的优化,AG里的post_cts_opt默认会带上setup和hold一起去修正,如有特别需求的,例如不在postcts修hold,请在opt的parameter里关掉hold opt 相关的参数。查询parameter有个比较方便的方式,利用list_app_var opt *hold*可以打印出所有带有hold关键字的opt相关的parameter。下一回就要进入最后的绕线阶段了。

原文标题:用国产EDA工具做芯片是什么样的体验

文章出处:【微信公众号:鸿芯微纳】欢迎添加关注!文章转载请注明出处。

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

    关注

    447

    文章

    47821

    浏览量

    409207
  • 数据
    +关注

    关注

    8

    文章

    6514

    浏览量

    87610
  • DRC
    DRC
    +关注

    关注

    2

    文章

    143

    浏览量

    35771

原文标题:用国产EDA工具做芯片是什么样的体验

文章出处:【微信号:giga-da,微信公众号:鸿芯微纳】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    汽车单片机与一般单片机什么区别?

    汽车单片机与一般单片机什么区别?如果小白入手的需要怎么操作?
    发表于 01-26 08:35

    求助,汽车上的单片机一般都是哪些类型的呢?

    汽车上的单片机一般都是那个类型的呢?
    发表于 01-26 08:19

    伺服电机效率一般是多少?

    伺服电机效率一般是多少?选型时也得考虑到这个问题吧? 变频电机一般都标功率因素,指的就是电机实际的输出功率吧? 异步伺服效率 88%; 同步伺服效率 100%,采用绝对值编码器时效率下降10%-20%.
    发表于 12-28 06:46

    usb外置声卡什么用途?和一般声卡什么区别?

    usb外置声卡什么用途,和一般声卡什么区别
    发表于 11-10 06:31

    请问电机的噪音一般哪些情况引起的?

    请问电机的噪音一般哪些情况引起的?
    发表于 11-08 06:19

    电感什么作用吗?一般电路上需要用到电感吗?

    电感什么作用吗?一般电路上需要用到电感吗?
    发表于 11-07 08:13

    一般在什么情况下需要用到simulink?

    使用simlink生成嵌入式的代码,一般在什么情况下需要用到simulink,simulink的教程,谁有提供
    发表于 11-06 08:06

    UPS在切换的时候都采用什么方式,对于一般的用电器什么影响?

    UPS在切换的时候都采用什么方式,对于一般的用电器什么影响,一般都是怎么处理的
    发表于 11-01 06:42

    求助,请问汽车上的单片机一般都是那个类型的?

    单片机小白请教大师,汽车上的单片机一般都是那个类型的呢?
    发表于 10-25 08:22

    电容器击穿电压是多少一般什么限制?

    电容器击穿电压是多少一般什么限制
    发表于 10-18 06:18

    单片机对常用的湿度传感器采样,采样频率一般设置成多少?

    单片机对常用的湿度传感器采样 我们的采样频率一般设置成多少
    发表于 10-12 07:57

    常用直线模组的类型

    常用直线模组的类型
    的头像 发表于 07-29 17:45 1017次阅读
    <b class='flag-5'>常用</b>直线模组的<b class='flag-5'>类型</b>

    fpga开发一般用什么软件?

    fpga开发一般用什么软件?
    发表于 05-30 20:54

    STM32单片机一般几种调试方式?

    STM32单片机一般几种调试方式?
    发表于 05-26 18:21

    rt1052的ocram一般放什么类型的数据?

    rt1052的ocram一般放什么类型的数据?
    发表于 05-22 09:25