Innovus Multi Bit Flip Flop(MBFF)实现 - 详细教程

科技   2024-10-16 18:18   上海  


本文选自知识星球,同时星球还有分享自己编写的 3万字-129页的低功耗技术合集 精编版,更多干货知识以及后端笔记、视频教程等,欢迎加入星球进行查看。




星球上线了基于GPT4和个人IC设计知识库的IC设计 AI机器人 ,且最近将模型升级为了GPT-4 128K模型,也加入了更多IC知识库,星球成员可以免费使用!!AI机器人24小时随时随地都能立刻回答用户的提问哦,效果非常棒!可以同时在电脑、手机、平板等多个平台上使用。最近几期的封面全部都是用机器人去创作的。
AI机器人还有绘图功能哦,最近几期的封面都是用AI机器人绘制的。
AI机器人的所有功能介绍如下:
基于GPT4和个人IC设计知识库的IC设计机器人v1.0正式上线
同时星球QQ群还有分享高达56万+字的个人数字后端设计笔记,更多后端以及IR和EM相关的内容见知识星球,欢迎加入。


Innovus Multi Bit Flip Flop(MBFF)实现

- 详细教程

星球原文链接:

https://t.zsxq.com/veM07


前面讲解了MBFF的基本原理和详细的优缺点,主要就是能降低Power,但是会Timing优化而言就丧失了一定的自由度。

低功耗设计技术--Multi-Bit Flip-Flop(MBFF)


后边也分享了在ICC2和FC中MBFF的具体实现方式和各种控制以及如何报告MBFF的比例和报告的解读、做完MBFF之后的形式验证。

FC/ICC2教程 - MBFF的实现与不同阶段对MBFF Merge和Split的控制


下面讲解一下Innovus中具体的实现方式、各种控制选项、如何报告MBFF的比例以及报告解读、做完MBFF之后的形式验证以及遇到问题的解决方法。


Innovus可以在preCTS优化开始的时候就做MBFF的Merge,根据Timing的情况去决定是否Split。

 

1: MBFF的流程与控制选项

 

Legacy UI
Common UI
source placed_DB.enc
setLimitedAccessFeature <ask Cadence rep> 1
setOptMode -multiBitFlopOpt true   
 
# options: true | false | mergeOnly | splitOnly
false:      By default
true:       Enables merging & splitting of flops
mergeOnly:  Only merging of flops is enabled
splitOnly:  Only splitting of MBFFs is enabled
read_db placed_DB.enc.dat
set_limited_access_feature <ask Cadence rep> 1
set_db opt_multi_bit_flop_opt true   
 
# options: true | false | mergeOnly | splitonly
false:      By default
true:       Enables merging & splitting of flops
mergeOnly:  Only merging of flops is enabled
splitOnly:  Only splitting of MBFFs is enabled
 MBFF Flow is enabled only during the following design stages:
 
place_opt_design
optDesign -preCTS | -postCTS
 MBFF Flow is enabled only during the following design stages:
 
place_opt_design
opt_design -pre_cts | -post_cts

 

Feature的名字这里不方便展示,可以问自己公司的AE去获得这个Feature。

  

2: MBFF在不同阶段的行为

Innovus的MBFF 的Merge和Split是优化、转换的一部分,工具的行为是依赖于PR的不同阶段的。

 

preCTS:

  • 努力去提高每个Flop的比特数
  • 对于Timing critical的部分去做MBFF的Split来优化Timing

 

postCTS:

  • 考虑到它会对Clock tree产生一定的影响,所以这个阶段不支持对MBFF做Merge
  • 从Innovus 18.1和以后的版本开始,工具支持对MBFF做Split来优化Timing

 

postRoute:

  • 不支持MBFF的Merge和Split。

 

3: 在Merge MBFF的时候的命名转换

在Flop Merge的时候,相关Instance的名字会通过双下划线合并在一起。

示例:

abc + def -> abc___def

hier1/hier2/q_reg[0] + hier1/hier2/q_reg[1] -> hier1/hier2/q_reg[0]__q_reg[1]

     

限制:在不同Hierarchy之间Merge name是不行的

 

4: 在Split MBFF的时候的命名转换

在做MBFF的Split的时候,如果MBFF的名字里面含有双下划线,那么会根据双下划线拆分名字

示例: 

abc___def -> abc, def

 

如果MBFF的命名里面没有双下划线,那么工具做Split的时候会加上__0/__1这样的索引。

示例:

hier1/hier2/q_reg[0:4] -> hier1/hier2/q_reg[0:4]__0, hier1/hier2/q_reg[0:4]__1, hier1/hier2/q_reg[0:4]__3, hier1/hier2/q_reg[0:4]__4

xxx -> xxx__0, xxx__1 (和上面不一样的地方在于这个MBFF的名字里面没有位宽信息)

 

注意:

当一个MBFF被拆分时,Innovus应该保持每一位的顺序,比如一个2位的MBFF abc被拆分成abc_0和abc_1时,原始MBFF的第0位输入/输出应该接到abc_0的输入/输出,原MBFF的第1位输入/输出应该接到abc_1的输入/输出。 

 

5: 如何限制Instance的名字不要太长?

 …(完整内容见星球原文)…


6: 导出MBFF的映射文件

  …(完整内容见星球原文)…


7: 如何避免一些Flop被Merge或者Split?

   …(完整内容见星球原文)…


后续做完MBFF之后的形式验证以及遇到问题的解决方法会在星球里面陆续更新。


参考文献:

https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V00000679k7UAA&pageName=ArticleContent


星球相关推文:

Innovus tcl脚本分享 - 报告Multi Bit Flip Flop(MBFF)的Summary和解读

星球链接:https://t.zsxq.com/V6SLB


Timing修复技巧(一) - 禁用MBFF + Path Group + weight + Path margin

星球链接:https://t.zsxq.com/DsQno


FC教程-如何查看MBFF的比例与报告解读?

星球链接:https://t.zsxq.com/B4Tri


Fusion Compiler/ICC2教程 - MBFF名字的控制与如何指定某些Flop不做MBFF Merge

星球链接:https://t.zsxq.com/11Txo


FC/ICC2教程-使能MBFF之后的Formality验证

星球链接:https://t.zsxq.com/PUggn


FC/ICC2教程-如果和MBFF相关的部分有Match或者Verify的Fail怎么办?

星球链接:https://t.zsxq.com/oTDr4




星球简介


目前星球中一共分享了20本+系统性的、整理成册的笔记,高达56万字+,2024年星球将分享更多私人笔记,逐步完善整个IC设计生态。
以后知识星球也会陆续会开放:
《Timing/DRV修复的专题笔记》 《ICC2 flow教程》 《Makefile在IC设计中的应用》和 《RedHawk教程笔记》 等等。
目前已上传的笔记有:
  • 低功耗设计技术总结 - 3万字,129页
  • IR drop的分析与修复总结 - 4.3千字,20页
  • 数字后端理论及实践-ICC干货笔记 - 11万字,423页
  • 数字后端理论及实践-Innouvs教程(第4版)- 5.7万字,316页
  • ICC2教程-星球精编版 - 2万字,125页
  • 数字后端理论及实践-Innouvs教程(第5版)- 11.8万字,635页
  • 面试笔试题整理 面试笔试经验分享(第1版)- 1.6万字,48页
  • 面试笔试题整理 面试笔试经验分享(第2版)- 2.3万字,87页
  • ICC2 ICC与Innovus的命令对照(第1版)
  • Tcl与DesignCompiler教程(第1版)- 6.1万字,183页
  • DRC规则讲解、DRC的检查与修复(第1版)- 7.3千字,26页
  • Congestion的分析与修复专题(第1版)- 1.2万字,41页 
  • Perl-Tk教程(第1版)- 1.6万字 73页
  • 星球精华推文分类整理合集(第1版)- 1.8万字,75页
  • 星球精华推文分类整理合集(第2版)- 4.4万字,160页
  • 面试笔试题整理 面试笔试经验分享(第3版)- 2.7万字,96页
  • 星球精华推文分类整理合集(第3版)- 6.6万字,240页
  • 时序分析与sdc专题笔记(第1版) - 3.1万字,115页
  • 星球精华推文分类整理合集(第4版)- 8.4万字,296页
  • 面试笔试题整理 面试笔试经验分享(第4版)- 3.2万字,103页
  • 更多教程、笔记持续更新中。。。 


集成电路设计及EDA教程
知识 前端 后端 DFT 低功耗 验证 EDA 1rtl检查:LEDA 2仿真:VCS 3逻辑综合:DC 4形式验证:Formality 5布局布线:ICC 6STA:PT 7功耗分析:PTPX 8DRC LVS:Calibre
 最新文章