SoC设计除了包含多个电压域、多个时钟域外还包含了多个异步复位域。如果SoC中存在跨异步复位域时,同样经常会遇到亚稳态的问题。 举个例子,如下图:
对于有多个异步复位域的设计,如果某个异步复位在复位时,其复位的信号可能正好落在接收时钟的建立和保持时间窗口内,如下图所示,采集到的信号q2可能为亚稳态,从而造成仿真行为和真实行为的不一致。
TSMC 12nm 2.5GHz后端hierarchy实战课
上面的电路中, 两个触发器都有不同的复位源,即rst1和rst2。rst1置为低电平(复位)而rst2保持高电平(不复位)可引起目的触发器的亚稳态,并且如果目的地触发器的输出向下行被进一步使用,那么可能会有一些功能故障。因此,需要不同异步复位域之间需要进行有效隔离或同步,或者提前指定异步复位的先后顺序,以确保设计可以可靠复位,避免由于跨异步复位域而引起的亚稳态问题。
如果能保证,在rst1复位之前,rst2已经复位,或者说rst1复位的时候,rst2也一定在复位状态,这样可以保证q2信号不会出现亚稳态现象,这就是RDC中的reset assertion order, 这样可以过滤掉一些报告出来的RDC 路径,这些路径不存在亚稳态风险。
举个例子如下:rst1复位的时候,rst2一定在复位状态,这个电路就是安全的,q2不会出现亚稳态。那么假设A模块输出到B模块,那么复位顺序就是先复位下游B模块,再复位A模块,那么解复位的顺序呢?解除复位就是先解A模块复位、再解除B模块复位。
1)信号隔离法
用一个isolation siganl 来隔离信号q1, 这个隔离信号可以是我们自己生成的一个控制信号,必须要保证隔离信号在rst1复位前就置位成低电平, 这样保证q1信号不会在时钟边沿附近发生电平变化, 就可以避免q2出现亚稳态。
2)时钟隔离法
用一个isolation siganl 来隔离信号clk, 这个隔离信号也可以是我们自己生成的一个控制信号,必须要保证隔离信号在rst1复位前就置位成低电平,这样保证q1信号在时钟边沿附近的变化不会被sample, 因为clk已经被gate off了,就可以避免q2出现亚稳态。
景芯SoC v3.0芯片全流程实战
感谢铁粉大力支持,已有学会全流程的学员在公司获得晋升了,确实是好事,应学员要求,【全流程VIP训练营】正式开启! 训练营采用一对一强化辅导1年,包学会全流程,保姆式陪伴学习,终身答疑 ! 强化实战景芯SoC设计、验证、DFT、后端!包每个VIP学员都能独立设计SoC/MCU芯片全流程。景芯SoC教学版架构如下,基于TO版本做了去商业化和一定简化处理。
景芯SoC v3.0重磅升级!手把手教您搭建SoC,从入门到进阶,带您掌握熟悉架构、算法、设计、验证、DFT、后端全流程低功耗!直播视频不定期升级!让您快速超越同龄人!报名微信:13541390811
景芯全流程课程如下:
-
景芯SoC设计 视频+文档+实战+一对一辅导(视频免费)
-
景芯SoC验证 视频+文档+实战+一对一辅导(视频免费)
-
景芯SoC中端 视频+文档+实战+一对一辅导(视频免费)
-
景芯SoC后前 视频+文档+实战+一对一辅导(视频免费)
进阶课程:
-
12nm 2.5GHz A72 低功耗DVFS实战培训(价格不到同行1/2)
-
DDR4/3项目实战培训(价格不到同行1/2)
小编逐步将教程、芯片设计全流程知识公布在知识星球,包括设计、验证、DFT、后端全流程知识以及大量技术文档,如果你和我一样渴求知识,不惧怕全流程的知识爆炸,那么欢迎您加入讨论学习,共同进步!
另外小编团队提供芯片Design Service,设计服务包括:
-
提供SoC、MCU、ISP、CIS等芯片设计、验证、DFT设计服务
-
提供DDR/PCIE/MIPI/CAN/USB/ETH/QSPI/UART/I2C等IP设计
-
提供5nm、7nm、12nm、28nm、40nm、55nm、65nm、90nm等后端设计
-
提供高校、企业定制化芯片设计服务、设计培训业务
景芯SoC v3.0芯片全流程实战训练营的宗旨:
手把手教您掌握SoC算法、设计、验证、DFT、后端全流程低功耗!
景芯SoCv3.0,是一款用于【芯片全流程实战培训】的低功耗多媒体SoC!
景芯SoC系统分为三个层次的功耗管理,并集成低功耗RISC-V处理器,集成ITCM SRAM、DTCM SRAM,集成MIPI、ISP、USB、QSPI、UART、I2C、GPIO等IP,采用SMIC40工艺流片。
(一)SoC设计课程,您将学会
-
高速接口的Verilog设计实现
-
从图像算法到RTL设计实现
-
MIPI、ISP的Verilog实现与仿真
-
Lint、CDC检查及UVM验证
-
SoC子系统的C驱动仿真
-
后仿真
仅设计一门课程内容就抵得上其他培训机构的5-6门课程,价格仅其1/6
(二)SoC验证课程,您将学会
-
SoC子系统级的UVM环境搭建
-
SoC子系统级的UVC环境搭建
-
SoC子系统级的VIP环境搭建
-
SoC子系统的DMA SRAM UVM联合验证
-
SoC子系统的UART、I2C、QSPI UVM验证
仅验证一门课程内容就抵得上其他培训机构的3-4门课程,价格仅其1/6
(三)SoC中端课程,您将学会
-
DFT设计(芯片级)
-
Synthesis逻辑综合(芯片级)
-
低功耗UPF设计、CLP技术
-
formal验证等技术
仅中端一门课程内容就抵得上其他培训机构的4-5门课程,价格仅其1/6
(四)SoC后端课程,您将学会
-
低功耗设计
-
布局布线(低功耗FF flow)
-
StarRC/QRC
-
STA/Tempus
-
功耗分析
-
DRC/LVS设计
仅后端一门课程内容就抵得上其他培训机构的3-4门课程,价格仅其1/6
课程提供服务器供大家实践!带你从算法、前端、DFT到后端全流程参与SoC项目设计。请联系号主报名!联系微信:135-4139-0811
景芯SoC训练营图像处理的数据通路:
景芯SoC的CRG设计:
一键式完成C代码编译、仿真、综合、DFT插入、形式验证、布局布线、寄生参数抽取、STA分析、DRC/LVS、后仿真、形式验证、功耗分析等全流程。升级后的芯片设计工程V2.0 flow如下:
SoC一键式执行flow
MIPI DPHY+CSI2解码
数字电路中经典设计:多条通信数据Lane Merging设计实现
数字电路中经典设计:多条通信数据Lane Distribution实现
UPF低功耗设计
全芯片UPF低功耗设计(含DFT设计)
景芯SoC训练营培训项目,低功耗设计前,功耗为27.9mW。
低功耗设计后,功耗为0.285mW,功耗降低98.9%!
电压降检查:
低功耗检查:
芯片的版图设计V1.0
芯片的版图设计V2.0
低功耗设计的DRC/LVS,芯片顶层的LVS实践价值极高,具有挑战性!业界独一无二的经验分享。
ISP图像处理
-
dpc - 坏点校正
-
blc - 黑电平校正
-
bnr - 拜耳降噪
-
dgain - 数字增益
-
-
demosaic - 去马赛克
-
wb - 白平衡增益
-
ccm - 色彩校正矩阵
-
csc - 色彩空间转换 (基于整数优化的RGB2YUV转换公式)
-
gamma - Gamma校正 (对亮度基于查表的Gamma校正)
-
ee - 边缘增强
-
stat_ae - 自动曝光统计
-
stat_awb - 自动白平衡统计
CNN图像识别
支持手写数字的AI识别:
仿真结果:仿真识别上图7、2、1、0、4、1、4、9
景芯SoC 3.0 ISP:
景芯SoC V3.0 DFT方案:
如果您和小编一样渴求进步,想掌握芯片设计全流程,欢迎加入小编知识星球,疯狂成长,一起进步!早日成为芯片大佬!
景芯学员们,小编十分感谢你们对景芯的肯定、信任和支持,你们的鼓励让小编十分感激,小编一定更努力精心打磨景芯SoC实战课,我承诺,一定要做到零差评,让大家无论资深还是资浅都能从景芯训练营获得成长!
以上就是今天分享的内容,如果您和小编一样渴求进步,想掌握芯片设计全流程,欢迎加入小编知识星球,疯狂成长,一起进步!早日成为芯片大佬!
景芯SoC V3.0课程提供服务器供大家实践!手把手教您学会SoC的算法、前端、DFT、后端全流程实战。
请联系号主报名!联系微信:135-4139-0811
景芯SoC训练营图像处理的数据通路:
景芯SoC的CRG设计:
一键式完成C代码编译、仿真、综合、DFT插入、形式验证、布局布线、寄生参数抽取、STA分析、DRC/LVS、后仿真、形式验证、功耗分析等全流程。升级后的芯片设计工程V2.0 flow如下:
SoC一键式执行flow
MIPI DPHY+CSI2解码
数字电路中经典设计:多条通信数据Lane Merging设计实现
数字电路中经典设计:多条通信数据Lane Distribution实现
UPF低功耗设计
全芯片UPF低功耗设计(含DFT设计)
景芯SoC训练营培训项目,低功耗设计前,功耗为27.9mW。
低功耗设计后,功耗为0.285mW,功耗降低98.9%!
电压降检查:
低功耗检查:
低功耗设计的DRC/LVS,芯片顶层的LVS实践价值极高,具有挑战性!业界独一无二的经验分享。
丰富的教程文档
景芯训练营有同学问如何给IO添加PAD?请思考景芯SoC的IO和PAD如何实现最佳?
SoC训练营VIP学员问为何低功耗cell没有插入网表?
虽然提问题是值得鼓励的,但是我们在遇到问题时,还是先主动思考,主动解决问题,实在解决不了我们再求助,这样成长更快。
首先,小编拿到这问题,就打开log,查看log是一种IC设计美德!发现EDA工具吃进UPF文件后,报了warning如下,用到了很多ff库。
上图报错UPF指定电压是0.99V,而CELL是1.20V,电压不匹配,导致逻辑综合出来的网表没有插入MV CELL。注意,综合时,我们用的ss库,怎么会是ff库呢?打开约束脚本发现如下bug:
于是,更改约束,将ff换成ss即可。再次run一下,结果就出来了:
低功耗设计部分,设计里面我会留一点小bug在里面 非常简单,我不会公布答案,大家一定要多思考、多动手跑跑,这样才学的深刻。
培训学员请注意,景芯SoC用always on的power domain电压域的pwrdown_mux信号作为power switch cell的switch控制信号,但是设计里面有个小问题,不太算bug的bug,但对upf低功耗flow而言,毫无疑问就是bug!
培训学员请登陆服务器追踪一下pwrdown信号,注意其负载情况,RTL代码如下:
结合PR输出的netlist, 我们做个clp低功耗检查,脚本参见服务器。可以发现,clp报错说power switch的switch控制信号找不到。
不得不说,clp检查对低功耗而言多么重要,对芯片设计而言多重要!景芯SoC的价值就在把芯片设计全流程的这些细小的知识点,全部串接起来!犹豫啥?抓紧报名加入吧!
在芯片设计中端流程时,景芯SoC会插入UPF约束中的isolation等cell,但是无法插入power switch等cell,因此,作为power switch cell的控制信号pwrdown_mux在没有负载的情况下,会被裁员掉(优化掉),因此需要设置上面MUX器件为dont_touch或者使pwrdown_mux成为module的port并禁止auto_ungroup(并设置no_boundary_optimization),这样这个信号才能保留给后端,供后端实现power switch控制。请学员完成代码修改,基于全套flow环境完成如下任务:
-
lint检查、前端仿真,
-
完成中端、后端flow,
-
完成clp检查, 完成后仿真
景芯训练营有同学问,同样的floorplan,有些同学很快跑完,有些同学则遇到大量DRC问题(EDA工具不停iteration)导致工具始终无法跑完,具体什么问题呢?
首先,小编发现该同学的stripe把TM2定义为了horizontal,而熟悉景芯工艺的同学知道,TM2的preference direction是VERTICAL。
查询景芯的lef库文件也可以确认:
用错方向有多大影响呢?大家上景芯SoC的后端flow实践一下吧,实践出真知。
景芯训练营有同学问,为啥PR花了一天一夜24个小时完成布线还大量DRC错误?小编已经将设计规模尽可能减小以加速PR设计,实际上2小时就可以跑完routing,为何这么慢?原因就是低功耗单元的走线。具体原因及解决办法欢迎加入景芯训练营讨论。
其错误主要集中在M4上,请思考如何解决。
景芯训练营有同学问,power switch cell的secondPG pin(VDDG)从M1接出的,而不是M2, 请思考有什么问题?如何解决?
景芯训练营有同学问,景芯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训练营。
以上就是今天分享的内容,如果您和小编一样渴求进步,想掌握芯片设计全流程,欢迎加入小编知识星球,疯狂成长,一起进步!早日成为芯片大佬!
欢迎加入SoC MCU全流程设计交流群,先加我微信,验证岗位后进群!
SoC MCU全流程设计交流群4
SoC MCU全流程设计交流群3
SoC MCU全流程设计交流群2
SoC MCU全流程设计交流群1
欢迎加入CMOS图像传感器+ISP交流群,先加我微信,验证岗位后进群!
CMOS图像传感器+ISP交流群2
CMOS图像传感器+ISP交流群1
DDR3/4实战+SoC集成
DDR是SoC设计的关键技术,景芯SoC DDR4/3设计实战训练营将帮助您掌握DDR设计技术并成为芯片大拿。本门课程不仅教您学习DDR+PHY,还教您学会DDR的SoC集成、驱动、SoC仿真!
1)DDR课程所带的SoC系统架构如下:
2)DDR课程架构
3)DDR课程目录如下:
以上就是今天分享的内容,如果您和小编一样渴求进步,想掌握芯片设计全流程,欢迎加入小编知识星球,疯狂成长,一起进步!早日成为芯片大佬!
“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处理器: