一文看懂multi-bit cell

很多同学问小编景芯SOC为啥用multi-bit cell,今天就特别讲讲Multi-bit flip-flop。景芯soc A72项目要求大家掌握multibit cell的用法,本项目CPU里面的mb高达95%,选择合适的multibit cell得到超高的CPU利用率。

从Cadence user guide可以查阅到如下描述:Multi-bit flip-flop (MBFF) flow provides power optimization benefits with a minimum impact on timing. This flow is called as a part of the preCTS optimization stage.

所谓multi-bit cell,可以理解成把多个完全相同的cell合并在一个cell里,如下图所示,集成2bit的multi-bit cell的clock inverter是共享的,那么可以节省2个clock inverter的面积、功耗。同时由于flip-flop数量减少,时钟互联线也减少,即减少了clock net length、capacitance、clock inverter更利于总功耗的降低。

图片

有一点非常重要,MBFF对SBFF的合并使用目的是降低功耗,但是前提是保证timing,若timing不满足,MBFF是应该被要求拆分成SBFF,SBFF更方便resize、move等操作。

芯片功耗很大一部分在时钟树上,通过multi-bit cell技术我们可以获得如下图所示的功耗改观:

图片

此外,通常scan DFF由于带了scan mux电路,其面积会更大,而Multi-bit flip-flop (MBFF)合并单bit寄存器后,可以更明显降低面积,以scan DFF为例,single bit 和multi bit的逻辑关系一般如下:

图片

在晶体管级别的版图设计过程中,会采用优化晶体管连接,晶体管共用等手段来节约面积,因此multi-bit cell比同等bit数目的single-bit cell的版图面积总和要小一些。假设一个1-bit DFF的面积为 

图片

 ,那么一个2-bit DFF的面积一般会比 

图片

 小一些,4-bit DFF的面积会比 

图片

 小更多。

在Cadence INNOVUS中可以用如下命令查看MBFF信息:

  • reportMultiBitFFs -all

图片

  • reportMultiBitFFs -statistics

图片

  • reportMultiBitFFs -cell MB2SDFCNQOPPSBD1BWP24P90ELVT

图片

MBFF结构在功耗上带来的好处主要体现在以下几个方面,整体而言,就是减少了clock net length、capacitance、clock inverter。

1)clock pin capacitance减少从而降低clock switching power

由下图可知,虽然2bit MBFF较1bit flip-flop的clock pin cap改观不大,但当design中有大量multi-bit DFF来替代single-bit DFF时,DFF数量大量降低,芯片时钟树上整体pin cap的下降是非常明显的。cap越小switching power也越小,动态功耗降低。

图片

2)时钟树buffer数量减少,降低switching和leakage power

由于multi-bit DFF中每个DFF的clock pin cap相对于single-bit DFF有一些减小,那么在multi-bit design中一个相同的buffer可以驱动更多的MDFF,当然最主要还是DFF数量的减少,从而显著减少时钟树上的buffer数量和面积,进一步降低时钟树上的功耗。

图片

3)时钟树绕线资源减少,时钟树寄生RC从而降低dynamic power

MBFF大量使用时,相对于single-bit design来说,芯片standard cell数量大幅下降,而且在很多时候DFF的摆放也可能会更加集中,时钟树绕线将节省大量走线资源,进而减少整个时钟网络的寄生RC。

下图展示了single-bit DFF与multi-bit DFF的绕线差异,可以看出右侧的MBFF绕线明显更少,时钟整体的寄生RC得到减少,从而降低功耗。

图片

尽管multi-bit有以上诸多优点,但是在实际应用中并不总能得到最好的结果。其主要原因在于以下几个方面:

a) single-bit到multi-bit的转化有诸多条件限制,很多时候design实际的multi-bit cell比率不高。

b) multi-bit cell摆放不合理可能会引起congestion问题、timing问题,反而会增加更多的组合逻辑的power从而抵消clock tree上带来的功耗降低的效果。

比如,2bit single-bit DFF本来被place在不同位置,若合同为2bit的multi-bit DFF后,routing连线可能反而更长,增加了路径延迟,工具会采用buffering、sizing的优化方式优化时序,若依然不能满足timing,那么multi-bit cell不如拆分成single-bit cell,因为single-bit cell可以更方便resize、move。

c) IR/EM方面的考虑可能会故意让multi-bit cell互相摆放的远一些,从而无法达到减少clock net length寄生RC从而降低功耗的效果。

“12nm 2.5GHz频率 hierarchy UPF DVFS低功耗A72后端培训”

图片

2.5GHz 12nm 景芯SoC A72 upf DVFS 后端实战训练营!

项目手把手一对一辅导!随到随学!

课程采用hierarchy/partition flow,先完成单核A72实战,然后完成A72 TOP实战!训练营简介:

  • Instance:315万

  • Gate count:2600万

  • Frequency:  2.5GHz

  • Power domain:7个,hierarchy UPF设计

  • EDA工具有VCS/Fusion Compiler/VCLP

  • EDA工具有innovus/Starrc/PT/Voltus/formality/LEC/Calibre

  • EDA工具有Redhawk-sc全网首发python版

图片

  • 授课形式:视频+文档+上机实践,真实项目flow,一对一答疑!

  • ICer加班太多,项目采用视频模式,随到随学!

景芯A72训练营您将掌握以下知识:

  • 掌握hierarchy UPF文件编写,掌握Flatten UPF文件编写、UPF验证。本项目采用hierarchy UPF方式划分了7个power domain、voltage domain。

  • 掌握power switch cell,包括SWITCH TRICKLE、SWITCH HAMMER。掌握低功耗cell的用法,选择合适的isolation cell、level shifter等低功耗cell。

  • 掌握Power gating,Clock gating设计技术。

  • 掌握Multi-VT设计技术,本项目时钟树都是ULVT,动态功耗小,skew小。

  • 掌握DVFS技术,ss0p9 2.5GHz、ss0p72 2.0GHz,,其中sram不支持ss0p63。要做ss0p63的话,给sram vddm单独一个0p7v的电源即可。

    图片

  • 掌握multibit cell的用法,本项目CPU里面的mb高达95%,选择合适的multibit cell得到超高的CPU利用率。INNOVUS里面一般不做mb的merge和split。所以前后一样的,一般综合做multibit的merge split。

图片

  • 根据TOP Floorplan DEF进行CPU子系统的partition以及pin assignment。

  • Top的Power stripe的规划及其push down。

  • SpecifyBlackBox,将CPU core镜像partition。

  • 手动manual cut the BlackBox的方法,掌握复杂的floorplan设计方法经验。

  • VerifyPowerDomain,检查低功耗划分以及UPF的正确性。

  • Pin assignment,根据timing的需求进行合理的pin脚排布,并解决congestion问题。

  • 掌握Timing budget。

  • 掌握利用Mixplace实战CPU的自动floorplan,掌握AI的floorplan方法学。

图片

  • 掌握Fusion compiler DCG,利用fusion compiler来完成DCG综合,进一步优化timing与congestion。

  • 掌握hierarchy ICG的设计方法学,实战关键ICG的设置与否对timing的重大影响。

  • 掌握Stapling技术,实战power switch cell的布局和特殊走线的方法学,掌握CPU子系统的powerplan规划及实现,保证CPU子系统和顶层PG的alignment。

    图片

  • 掌握CPU子系统和TOP的时序接口优化。掌握TOP isolation cell的placement以及isolation cell input电学特性检查。

  • 掌握TOP和CPU子系统的clock tree Balance优化处理,common clock path处理。时钟树结构trace和时钟树评价。

  • CPU子系统的DRC/LVS检查

  • TOP系统的DRC/LVS检查

  • Hierarchy & Flatten LVS检查原理及实现方法

  • 静态时序分析&IR-Drop

  • DMSA flow

  • 根据Foundry的SOD(signoff doc)的Timing signoff标准建立PT环境。

  • Star RC寄生抽取及相关项检查

  • Timing exception分析,包括set_false_path、set_multicyle_path解析。

  • PT timing signoff的Hierarchical和Flatten Timing检查

  • PT和PR timing的差异分析、Dummy insertion和with dummy的Timing分析

  • IR-Drop分析

    图片

训练营部分文档:

图片

Flow:Partition Flow

图片

时钟结构分析:

图片

复位结构分析:

图片

12nm 2.5GHz的A72实战训练营需要特别设置Latency,TOP结构如下,参加过景芯SoC全流程训练营的同学都知道CRG部分我们会手动例化ICG来控制时钟,具体实现参见40nm景芯SoC全流程训练项目,本文介绍下12nm 2.5GHz的A72实战训练营的Latency背景,欢迎加入实战。

时钟传播延迟Latency,通常也被称为插入延迟(insertion delay)。它可以分为两个部分,时钟源插入延迟(source latency)和时钟网络延迟(Network latency)。

图片

大部分训练营同学表示平时都直接将Latency设置为0了,那latency值有什么用呢?其实这相当于一个target值,CTS的engine会根据你设置的latency值来插入buffer来实现你的latency target值。

下图分为1st Level ICG和2nd Level ICG,请问这些ICG为什么要分为两层?

请问,为什么不全部把Latency设置为0?2nd Level ICG的latency应该设置为多少呢?

图片

latency大小直接影响clock skew的计算。时钟树是以平衡为目的,假设对一个root和sink设置了400ps的latency值,那么对另外的sink而言,就算没有给定latency值,CTS为了得到较小的skew,也会将另外的sink做成400ps的latency。请问,为何要做短时钟树?因为过大的latency值会受到OCV和PVT等因素的影响较大,并有time derate的存在。

图片

分享个例子,比如,Cortex-A72低功耗设计,DBG domain的isolation为何用VDDS_maia_noncpu供电而不是TOP的VDD?

图片

答:因为dbg的上一级是noncpu,noncpu下面分成dbg和两个tbnk。

再分享个例子,比如,Cortex-A72低功耗设计,这个switch cell是双开关吗?答:不是,之所以分trickle和hammer,是为了解决hash current大电流,先开trickle,然后再开hammer。

图片

再分享个例子,比如,Cortex-A72课程的低功耗例子:请问,如果iso cell输出都要放parent,输入放self,那么下面-applies_to_outputs对应的-location为何是self?

图片

答:这个需要了解CPU的内部设计架构,tbnk掉电 VDDS_maia_noncpu也必然掉电,pst如下,所以-applies_to_outputs对应的-location是可以的,那么注意下debug domain呢?

图片

实际上,没有tbnk到debug domain的信号,因此脚本如下:

图片

再分享个例子,比如,Cortex-A72课程的低功耗例子:为何non_cpu的SRAM的VDD  VDDM都接的可关闭电源?SRAM的VDD  VDDM分别是常开和retention电源吧?

图片

答:本来是VDDM作为retention电源设计的,VDD关掉后 VDDM可以供电作为retention使用,但是此处没有去做memory的双电源,sram当成单电源使用,不然sram无法彻底断电。

再分享个例子,比如,Cortex-A72课程有学员的Cortex-A72 maia_cpu LVS通过, 但是MAIA顶层LVS比对不过,我们来定位一下。

以FE_OFN4326_cfgend_cpu1_o为例,点击下图FE_OFN4326_cfgend_cpu1_o:

图片

找到calibredrv错误坐标:(1949,139)

对应到innovus去看坐标:(1949,139)

看到maia_cpu的pin脚过于密集,造成顶层连接pin脚时候会无法绕线,从而导致innovus从maia_cpu上面走线,形成short。尽管maia_cpu带了blockage,但是invs没有足够的连接pin的routing resource,也就只能在maia_cpu上面去try了。

图片

修改办法很简单,具体操作option参见知识星球。

图片

保存db,重新LVS,比对通过。

图片

我们来对比下A72项目与A7项目的资源。A72 Gate数目是A7的13倍!如果都采用28nm制程,A72的面积应该是1180790um^2,实际A72采用12nm制程面积是486100um^2,1180790/486100=2.4,符合摩尔定律。

Cortex-A7单核:

Gates=240291 Cells=118421

Cortex-A72单核:

Gates=3125649 Cells=1207766

28nm Cortex-A7单核:

Area=90830.1 um^2

12nm Cortex-A72单核:

Area=486100.9 um^2

Cortex-A72处理器Partition Flow:

图片

Cortex-A7处理器:

图片

Faster R-CNN是一种目标检测算法,用于在图像中定位和识别物体。它是R-CNN算法的改进版本,通过引入区域提议网络(Region Proposal Network,RPN)来提高检测的速度。 Faster R-CNN的工作流程可以分为两个阶段:区域提议和物体分类。 在区域提议阶段,首先使用卷积神经网络(CNN)对输入图像进行特征提取。然后,RPN通过滑动窗口在特征图上生成一系列候选区域。每个候选区域都有一个边界框(bounding box)和一个预测得分。RPN通过一个二分类器来判断每个候选区域是否包含感兴趣的物体,并根据得分对候选区域进行排序。 在物体分类阶段,对于每个候选区域,使用RoI池化层将其映射为固定大小的特征向量。然后,这些特征向量通过全连接层进行分类和回归,得到每个候选区域的类别预测和边界框坐标调整。 整个网络采用端到端的训练方式,在训练过程中同时优化RPN和分类网络。训练时,通过计算候选区域与真实标注框之间的IoU(交并比)来确定正负样本,并使用多任务损失函数进行优化。 Faster R-CNN相比于R-CNN,通过引入RPN网络实现了端到端的训练,避免了繁琐的候选区域提取过程,大大提高了检测的速度和准确性。同时,Faster R-CNN还可以通过改变RPN的输出尺度来检测不同大小的物体。这使得Faster R-CNN成为目标检测领域的重要方法之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值