“ 12nm工艺,2.5GHz频率,低功耗Cortex-A72处理器培训”
本项目是真实项目实战培训,低功耗UPF设计,后端参数如下:
工艺:12nm
频率:2.5GHz
资源:2000_0000 instances
为了满足更多学员的诉求,我们将A72 12nm低功耗后端课程分为两个版本:
1、基础版本,价格是知名机构的的1/5,全国最低价!
2、进阶版本(含低功耗设计,7个power domain的hierarchy UPF设计)
进阶版本的低功耗设计如下:7个power domain
Flow:Partition Flow
时钟结构分析:
复位结构分析:
我们来对比下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低功耗设计,DBG domain的isolation为何用VDDS_maia_noncpu供电而不是TOP的VDD?
答:因为dbg的上一级是noncpu,noncpu下面分成dbg和两个tbnk。进阶课程是hierarchy低功耗设计,价格较贵,暂时不推。现在主推A72基础版本课程,打垮动则1-2万的后端培训价格!
再分享个例子,比如,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,比对通过。
景芯SoC—全芯片UPF后端实战
景芯SoC培训的全芯片UPF低功耗设计(含DFT设计)
景芯SoC训练营培训项目,低功耗设计前,功耗为27.9mW。
低功耗设计后,功耗为0.285mW,功耗降低98.9%!
7天冲刺PR训练营有同学问如何给IO添加PAD?请思考景芯SoC的IO和PAD如何实现最佳?
7天冲刺PR训练营有同学问,同样的floorplan,有些同学很快跑完,有些同学则遇到大量DRC问题(EDA工具不停iteration)导致工具始终无法跑完,具体什么问题呢?
首先,小编发现该同学的stripe把TM2定义为了horizontal,而熟悉景芯工艺的同学知道,TM2的preference direction是VERTICAL。
查询景芯的lef库文件也可以确认:
用错方向有多大影响呢?大家上景芯SoC的后端flow实践一下吧,实践出真知。
7天冲刺PR训练营有同学问,为啥PR花了一天一夜24个小时完成布线还大量DRC错误?小编已经将设计规模尽可能减小以加速PR设计,实际上2小时就可以跑完routing,为何这么慢?原因就是低功耗单元的走线。具体原因及解决办法欢迎加入景芯训练营讨论。
其错误主要集中在M4上,请思考如何解决。
7天冲刺PR训练营有同学问,power switch cell的secondPG pin(VDDG)从M1接出的,而不是M2, 请思考有什么问题?如何解决?
7天冲刺PR训练营有同学问,景芯SoC培训营同学遇到Corner Pad LVS不过怎么处理?
完成景芯SoC培训的前端设计仿真、DFT后,我们来到后端flow,本教程教你一键式跑完数字后端flow。
生成脚本命令如下:
tclsh ./SCRIPTS/gen_flow.tcl -m flat all
生成flow脚本之前需要配置setup.tcl等相关参数,具体参见【全网唯一】【全栈芯片工程师】提供自研的景芯SoC前端工程、DFT工程、后端工程,带你从算法、前端、DFT到后端全流程参与SoC项目设计。
景芯SoC训练营的同学问,为何innovus读取做好的floorplan def文件报Error? 首先看log:
Reading floorplan file - ./data_in/DIGITAL_TOP.def (mem = 1595.0M).
#% Begin Load floorplan data ... (date=10/23 22:38:01, mem=1579.3M)
**ERROR: (IMPFP-710): File version unknown is too old.
以前EDI的时期,我们可以通过定义fp_file的方式来加载floorplan:
set vars(fp_file) "./data_in/DIGITAL_TOP.def"
但是现在innovus升级并放弃了fp_file的加载方式,当然也可以用老版本的EDI9.1及以前版本来加入fp_file,然后转存为新版本,这方式明显没有必要。正如下log提示所说,检查log是非常好的工程师习惯。
Input floorplan file is too old and is not supported in EDI 10.1 and newer.
You can use EDI 9.1 and before to read it in, then save again to create new version.
小编的直觉告诉我,先去看看同学保存的def文件是哪个def版本?
同学保存方式如下:
那么请问如何解决?请大家加入景芯训练营实践。
景芯SoC用了很多异步FIFO,关注异步RTL实现的同学,可以抓取异步FIFO出来看一下版图连线:
查看下所有异步FIFO cell的面积;
dbget [dbget top.insts.pstatus unplaced -p].area
查下所有异步FIFO的cell的名字:
dbget [dbget top.insts.pstatus unplaced -p].name
那么怎么抓出异步路径来观察版图走线呢?如何让report_timing呢?更多内容参见知识星球和SoC训练营。