本文转自:自己的微信公众号《集成电路设计及EDA教程》

机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA

AOCV

AOCV全称:Advanced OCV,28nm及以下工艺节点开始逐渐使用的STA方法。与之前的OCV(设置全局的timing derate值)相比能显著降低时序分析的悲观程度,使得时序分析结果更加接近真实结果。

GBA与PBA

AOCV有两种模式,如下:

GBA (Graph-Based Analysis) : 一个Cell的delay,取多个输入的input transition的最差值去查表;

PBA (Path-Based Analysis):一个Cell的delay,不同path,分别按照input transition的真实值计算查表;

两者的区别如下图所示:

因此GBA的Timing会过于悲观,但是好处是计算保守,试想在最差情况下Timing如果满足的话,PBA mode下timing会更满足(如下图所示,GBA mode的包络线将所有PBA的点全部囊括在内)。

PBA mode与GBA mode相比,减少了分析的悲观程度,让分析结果更加接近真实的情况(现在的POCV等手段都是为了这个目的)。因此PBA mode的分析结果更加真实,一般用来Signoff timing用。

那你可能会问,PBA mode更加精确的话为什么还会去用GBA mode呢?

那是因为GBA mode有一个优点:计算速度快。

所以GBA和PBA是一个速度和精度的trade off。

下图给出了对数坐标下PBA与GBA模式下运行时间的比值,用的EDA工具是商用Signoff STA工具,工艺是28nm FDSOI。横坐标是设计的复杂程度,从4K flip-flop 40K个单元到 350K flip-flop 990K个单元。

从上图可知,随着设计复杂度的增加,PBA的运行时间的增加程度比指数增长还要快。

下图给出了GBA mode与PBA mode下两者在path arrival time上的对比结果,最差情况下偏差可达110ps。

那么问题来了,考虑到PBA mode运行时间的恐怖程度与GBA分析结果的悲观程度,有没有什么好的方法,能减小GBA的悲观程度,同时又不牺牲运行时间呢?这就是本推文要介绍的内容—如何基于GBA的timing结果去预测PBA timing?

实现思路

训练阶段:同时将GBA和PBA时序分析的结果作为特征提取和模型训练的输入对模型进行Training。

测试/应用阶段:

根据GBA时序分析的结果去预测PBA结果。

具体细节和算法见参考文献:

《Using Machine Learning to Predict Path-Based Slack from Graph-Based Timing Analysis》

文章早期尝试了多元自适应回归样条(Multivariate Adaptive Regression Splines, MARS)模型。结果: 90%的endpoint的PBA slack预测值与PBA slack真实值之间偏差在5ps以内。如下图所示:

MARS介绍:

https://github.com/KeKe-Li/tutorial/blob/master/assets/src/RAM/RAM.0.4.md

从上图可以看出这种思路是可行的,且效果较好,但是该模型存在一些问题,文章提出了一个基于决策树和时序路径中stage bigrams电气和物理特征的模型。并取得了不错的结果。

结果

下图是真实的GBA/机器学习预测的PBA结果与真实的PBA结果的对比曲线:

从图中可以看出与传统的GBA分析结果相比,基于GBA和机器学习的方法在一定程度上降低了GBA模式的悲观程度,且与真实的PBA分析结果的线性度更高,GBA和PBA之间的结果离散程度比较大。虽然该成果的效果不是非常明显,但是思路非常新颖,扩展了我们的视野,相信以后在该方面会有更大的突破。

尾注

研究生阶段做过ML的算法和芯片,上述内容部分基于参考文献、已有的ML经验、IC设计经验,还有一些胡思乱想,哈哈哈,希望在脚踏实地做IC的同时也能采用一些大胆新颖的想法来让IC设计变得更有效率,把活儿干的更漂亮,同时让自己更加出色。

多分享,多点赞;

您的支持是我更新的动力,谢谢您的关注,更多资料请移步公众号《集成电路设计及EDA教程》

网易云课堂视频课程

链接:https://study.163.com/course/introduction/1005909004.htm

Calibredrv教程-提高流程自动化

##  为了方便大家交流讨论  ##

##  建了一个QQ群  ##

## 集成电路设计及EDA教程  ##

## 加群请备注:EDA  ##

##  群二维码如下  ##

# 本公众号有个红包和资料福利微信群  #

#  集成电路设计及EDA教程福利群  #

#  为了避免乱七八糟的人加进来  #

#  可以先加我微信,我拉你进群  #

#  加我微信 请备注下面问题的答案  #

#       ASIC的全称       #

机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA的更多相关文章

  1. Perl Tk在IC设计中的应用、Windows、Linux平台下的安装-各种错误的摸索解决

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <Perl Tk在IC设计中的应用.Windows.Linux平台下的安装-各种错误的摸索解决> Perl在IC设计中有 ...

  2. IC 设计中DFT的Boundary Scan功能

    在很大规模的IC设计中,往往会有一些各种各样的bug出现,不论是在前期design的过程,还是在post silicon流片回来chip的flaw,都会导致chip的功能的失败,时钟频率无法达到期望频 ...

  3. 数字IC前后端设计中的时序收敛(二)--Setup违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  4. 数字IC前后端设计中的时序收敛(五)--Max Transition违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  5. 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  6. 数字IC前后端设计中的时序收敛(一)前言

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 为了纪念,同时 ...

  7. VerilogHDL概述与数字IC设计流程学习笔记

    一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...

  8. IC设计:CMOS器件及其电路

    作为一个微电子专业的IC learner,这个学期也有一门课:<微电子器件>,今天我就来聊聊基本的器件:CMOS器件及其电路.在后面会聊聊锁存器和触发器. ·MOS晶体管结构与工作原理简述 ...

  9. IC设计推荐书籍

    IC设计推荐书籍 听语音 | 浏览:779 | 更新:2014-07-19 10:52 1 2 3 4 5 6 7 分步阅读 接触IC设计这一行已经有7年的时间了,前面4年是大学本科,用来学习知识,现 ...

随机推荐

  1. 解决springmvc报错,java.lang.IllegalArgumentException:No converter found for return value of type: class .......

    1.背景 最近在自学java中的三大框架 ssm,在 springmvc 与 mybatis 整合过程中用到 json 数据交互.因为看的视频的是比较早的嘛,一些配置.jar包什么的,要么跟 jdk ...

  2. UCI 人口收入数据分析(python)

    一.项目介绍 UCI上有许多免费的数据集可以拿来练习,可以在下面的网站找寻 http://archive.ics.uci.edu/ml/datasets.html 这次我使用的是人口收入调查,里面会有 ...

  3. jSignature签字板保存为图片

    这是本人的第一篇博客,还不会使用.有些简陋,勿怪! 今天要讲的是使用jquery插件jSignature做一个手写板签字的功能,并将签字笔迹保存为图片. 第一步:环境准备 jquery.jSignat ...

  4. 前端页面表格排序 jQuery Table 基础

    通常来说, 排序的方式有两种, 一种是我们在查询的时候就排好序,然后将数据渲染到前台页面上, 但是这样做有个弊端,就是在争对做好了缓存处理的系统, 在查询相同数据的时候进行排序,可能不能成功, 因为进 ...

  5. MapInfo常见数据格式

    在MapInfo 中所指的表是单纯的数据表或是图形与数据的结合.一个典型的MapInfo表将主要由*.tab.*.dat.*.wks.*.dbf.*.xls.*.map.*.id.*.ind文件格式组 ...

  6. 【转】8 个效果惊人的 WebGL/JavaScript 演示

    英文原文:9 IMPRESSIVE WEBGL JAVASCRIPT EFFECT SHOWCASE,翻译:iteye WebGL 是一种 3D 绘图标准,这种绘图技术标准允许把 JavaScript ...

  7. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第一节:HTTP协议数据采集

    首先欢迎您来到本书的第二境,本境,我们将全力打造一个实际生产环境可用的爬虫应用了.虽然只是刚开始,虽然路漫漫其修远,不过还是有点小鸡冻:P 本境打算针对几大派生类做进一步深耕,包括与应用的结合.对比它 ...

  8. 自定义博客cnblogs样式的必备前端小知识——css

    css样式相关小知识 文字超出一行显示省略号 overflow: hidden; /*自动隐藏文字*/ text-overflow: ellipsis; /*文字隐藏后添加省略号*/ white-sp ...

  9. LeetCode 第七题--整数反转

    1. 题目 2.思路 1. 题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 ...

  10. Java入门 - 语言基础 - 18.正则表达式

    原文地址:http://www.work100.net/training/java-regular-expression.html 更多教程:光束云 - 免费课程 正则表达式 序号 文内章节 视频 1 ...