- 博客(83)
- 资源 (7)
- 收藏
- 关注
原创 一文看懂multi-bit cell
比如,2bit single-bit DFF本来被place在不同位置,若合同为2bit的multi-bit DFF后,routing连线可能反而更长,增加了路径延迟,工具会采用buffering、sizing的优化方式优化时序,若依然不能满足timing,那么multi-bit cell不如拆分成single-bit cell,因为single-bit cell可以更方便resize、move。再分享个例子,比如,Cortex-A72低功耗设计,这个switch cell是双开关吗?
2024-08-14 23:35:42
699
原创 景芯SoC DDR子系统
这是因为fly-by拓扑结构中CK、Address、Command信号的复用(DQS信号是通过CK信号产生),数据DQ信号是非复用的,这就导致DQ与DQS信号之间是异步关系,即Command到达不同颗粒存在先后顺序,而不同mem颗粒返回读数据则必然存在先后差异,所以需要对DQS Gate信号进行training,将其调整到规定的窗口区间。初始化之后,DATX8中的主延迟线(MDL)会持续的以选择的延迟时间为单位测量DDR的时钟,直到由于温度变化导致周期发生变化。
2024-08-07 21:53:25
626
原创 景芯SoC训练营DFT debug
大家记住,修改代码一定要慎之又慎,不能随意改,而且改了代码一定要做lint、spyglass,保证语法OK,仿真OK。景芯VIP学员说看了几遍还是正确指定了时钟,没有头绪。我们知道,在下图EN端输出X时,DFF的clk端将是X,于是就会产生C1的 violation,那么如果或门换成与门呢?遇到这个问题第一反映一定是确认时钟,于是小编让学员去排查add_clock是否指定了时钟,指定的时钟位置是否正确。如果EN是X,那么与门依然输出X到DFF的clk,造成DFF无法上链,也会造成覆盖率下降。
2024-07-08 21:42:36
350
原创 还分不清电平中断、边沿中端?
在芯片设计中端流程时,景芯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控制。
2024-06-25 23:51:50
880
原创 景芯SoC A72 12nm TOP的时钟树分析(二)
innovus的ctslog中的Clock DAG信息可以报出来CTS主要运行步骤的关键信息,比如clustering,balancing做完后的clock tree的长度,clock tree上所用的buffer、inverter,icg cell数量,clock skew等信息。
2024-06-20 23:26:18
908
原创 AXI三板斧之Outstanding、Out-of-order、interleaving
out-of-order,连续发送地址1和地址2,然后连续发送地址1要写入的数据和地址2要写入的数据,如果地址1对应的slave是busy,数据暂时无法写入,而地址2对应的slave是idle,那么数据可以先写入slave2,即先完成后发的地址2的操作,再完成地址1的写操作,这就是out-of-order。比如,可以连续发送地址1和地址2,然后连续发送地址1要写入的数据和地址2要写入的数据,最后依次等待地址1的响应和地址2的响应。请问,AXI Outstanding特性相比AHB的时序特性提高在哪里?
2024-06-19 21:11:09
732
原创 景芯SoC A72的时钟树分析
innovus的ctslog中的Clock DAG信息可以报出来CTS主要运行步骤的关键信息,比如clustering,balancing做完后的clock tree的长度,clock tree上所用的buffer、inverter,icg cell数量,clock skew等信息。可以看到cell、sink的counts,也可以看到BUF、ICG的数量,接下来我们来看看景芯SoC A72 TOP的CLOCK ID和BUF个数的变化吧。先看下景芯SoC A72项目的cts latency变化过程。
2024-06-13 23:06:25
1313
原创 先进工艺的DPT技术
总不能只接一个via吧。所以前后一样的,一般综合做multibit的merge split。掌握Stapling技术,实战power switch cell的布局和特殊走线的方法学,掌握CPU子系统的powerplan规划及实现,保证CPU子系统和顶层PG的alignment。以上就是今天分享的内容,如果您和小编一样渴求进步,想掌握芯片设计全流程,欢迎加入小编知识星球,疯狂成长,一起进步!以上就是今天分享的内容,如果您和小编一样渴求进步,想掌握芯片设计全流程,欢迎加入小编知识星球,疯狂成长,一起进步!
2024-06-04 12:45:08
1103
原创 详解寄存器模型reg_model的auto_predict
DUT的配置寄存器的值是实际值,reg_model有镜像值、期望值的概念。镜像值:存放我们认为此时DUT里寄存器的实际值。期望值:存放我们期望DUT寄存器被赋予的值。那么怎么更新reg_model里面的镜像值呢?有三种方式更新reg_model里面的镜像值。
2024-06-01 15:02:09
669
原创 为什么要用虚拟时钟Virtual clock?
但是,芯片timing sign off阶段会偶尔遇到IO时序少量违例,比如,输入reg的hold违例、输出reg的setup违例,本质原因是EDA时序分析工具会在输出输入外部假定一个理想化的不带clock propagation time的寄存器做时序分析。在约束set_input_delay/set_output_delay时,可以指定真实时钟CLKP,也可以指定虚拟时钟vCLKP,并且创建与CLKP同频率的虚拟时钟vCLKP时,无需指定时钟端口,参考脚本如下:。
2024-05-24 18:00:43
849
原创 一文看懂OSC和PLL区别
对于LC振荡电路来说,一般产生的正弦波频率较高,若要产生频率较低的正弦振荡,势必要求振荡回路要有较大的电感和电容,这样不但元件体积大、笨重、安装不便,而且制造困难、成本高。而振荡器通常产生固定频率的信号,振荡器的频率通常由其设计决定。PLL的设计和实现通常比振荡器复杂,功耗更高,成本更高,PLL常用于需要精确频率控制和低相位噪声的应用,而振荡器则用于对频率精度要求不高的场合。每种振荡器都有其特定的应用场景,选择哪种振荡器取决于所需的频率范围、频率稳定性、相位噪声、成本和电路的复杂性等因素。
2024-05-22 21:34:00
1157
原创 UPF里面设置的power switch和powerswitch.tcl设置的power switch有什么区别?
首先,powerswitch需要在upf里定义,然后后端在innovus里添加switch,-1801PowerSwitchRuleName也是根据upf里面switch的名字来添加的。景芯训练营UPF里面设置的power switch和powerswitch.tcl设置的power switch有什么区别?而景芯A72项目的powerswitch.tcl是我们实现power switch添加并打上power的实践脚本,下图是景芯对hierarchy设计的单核cpu的upf定义:maia_cpu.upf。
2024-05-21 23:31:34
268
原创 轻松玩转2.5GHz 12nm双核CPU实战—Black Box
而 FN,FS,FW,FE 则代表 Flip North,Flip South,Flip West,Flip East,表示反转以后的方向,对应着Mirror Y(沿Y轴翻转),Mirror X(沿X轴翻转),Mirror XR90,Mirror YR90。另一种写法分别称为 Rotate 0,Rotate 180,Rotate 90,Rotate 270。另外,大家总是问方向怎么定?数字后端关于方向的定义有 N,S,W,E 就是大家熟悉的 North, South, West, East。
2024-05-15 21:52:17
299
原创 UVM寄存器模型——手写Ralf问题debug
uvm_reg_block 则 属于比较大的单位,其中可以包含多个 uvm_reg,也可以包含多个 uvm_reg_block,block一般可以涵盖模块级 DUT 中的全部寄存器。其中m_reset用来储存寄存器的复位值,m_mirrored用来存储寄存器的镜像值,m_desired 用来存储期望值,这三个变量都属于本地变量,不能够直接从外部进行 访问,需要使用寄存器模型提供的方法,常用的访问方法如下表所示。这就要求寄存器模型有和真实寄存器类似的结构、相同的属性以及一定的访问方法,这样才方便理解和使用。
2024-05-15 21:41:44
785
原创 不懂数字后端Box List、Polygon的意思?
在后端innovus中会经常生成box,比如创建一个blockage,定义芯片的形状等。所以,学会通过坐标来表示一个box是最基本的知识点。
2024-05-14 20:32:18
560
原创 太劲爆了,MCU上5nm工艺了!
R52典型制造工艺是16纳米,最高时钟频率大约1.6GHz,性能一般是2.72DMIPS/MHz,S32N55的R52频率是1.2GHz,算力就是16*1200*2.72=52KDMIPS,景芯训练营A72的CPU最高频率做到了2.5GHz,未来MCU将会卷向高端工艺、高频、低功耗的场景,大家努力冲!闪存的制造工艺扩展到40nm以下非常困难,不仅要考虑各种参数和成本,同时很难集成到非常复杂的高K金属栅极技术中。瑞萨和NXP:都选择了STT-MRAM。意法半导体:选择了PCM(相变存储器)
2024-05-10 19:52:58
545
原创 SoC系统中AXI4 AXI3兼容性及exclusive access
然后manager发送一笔写事务,transaction ID是0,然后subordinate检查该笔transaction ID是否记录在monitor中,检查后发现该地址被记录在monitor的table中,因此独占访问写操作成功,返回EXOKAY响应,同时由于地址0xA000已经被写入修改了,monitor将所有地址为0xA000的独占记录移除。在AXI3中,USER信号没有具体规定,而在AXI4中,USER信号的位宽和用法被进一步定义和标准化,以支持更广泛的应用。显然AXI4更严谨。
2024-05-09 11:27:55
1117
原创 低功耗UPF设计的经典案列分享
时钟树是以平衡为目的,假设对一个root和sink设置了400ps的latency值,那么对另外的sink而言,就算没有给定latency值,CTS为了得到较小的skew,也会将另外的sink做成400ps的latency。所以前后一样的,一般综合做multibit的merge split。再分享个例子,比如,Cortex-A72课程的低功耗例子:请问,如果iso cell输出都要放parent,输入放self,那么下面-applies_to_outputs对应的-location为何是self?
2024-05-06 20:20:31
1214
原创 芯片低功耗VCLP
时钟树是以平衡为目的,假设对一个root和sink设置了400ps的latency值,那么对另外的sink而言,就算没有给定latency值,CTS为了得到较小的skew,也会将另外的sink做成400ps的latency。所以前后一样的,一般综合做multibit的merge split。再分享个例子,比如,Cortex-A72进阶版本课程的低功耗例子:请问,如果iso cell输出都要放parent,输入放self,那么下面-applies_to_outputs对应的-location为何是self?
2024-04-13 14:50:35
1257
原创 景芯2.5GHz A72训练营dummy添加(一)
比如,金属密度不一致会导致高低不平,机械研磨(平坦化)的时候,密度过大的地方会把不想磨掉的磨掉,密度小的地方想磨掉的又磨不掉,PO和OD也会有密度要求,制程越小密度问题越明显。另外,添加dummy后,在化学蚀刻时,可以使得金属腐蚀得更均匀,保护走线不被过度腐蚀而断掉。时钟树是以平衡为目的,假设对一个root和sink设置了400ps的latency值,那么对另外的sink而言,就算没有给定latency值,CTS为了得到较小的skew,也会将另外的sink做成400ps的latency。
2024-04-08 21:39:52
1840
原创 成为图像SoC大牛有多难?
H.265(也称为HEVC,High Efficiency Video Coding)是一种用于视频压缩的高效编码标准,相较于之前的H.264标准,它提供了更高的数据压缩率和更好的视频质量。为了成为高级架构师,以上知识内容只是基本面,首先要掌握上述技能和知识,结合实际项目经验和持续学习,十年板凳冷,才能够成为一名成功的IPC芯片架构师,并在智能监控和物联网领域做出贡献。前两张图是传统ISP能够达到的一般效果和最佳效果,第三张图是AI ISP达到的处理效果,可以看到,AI ISP已经远超传统ISP的性能。
2024-04-06 11:06:04
753
原创 字传输不变的3种大小端处理方式
对于大端转小端(2'b00),最高有效字节(MSB)被移动到最低有效字节(LSB)的位置,而最低有效字节被移动到最高有效字节的位置。对于小端转大端(2'b01),数据保持不变,因为我们假设输入已经是按照预期的格式排列的。大端,最高字节存储在最低的内存地址,小端则是最低有效字节存储在最低的内存地址。在Verilog中实现大端(Big-Endian)和小端(Little-Endian)之间的转换通常涉及到对多字节数据的操作。这个例子中,我们假设要转换的数据是一个32位的数字。
2024-04-01 21:53:32
240
原创 一文看懂DDR1到DDR5的演变
DDR5内存作为最新的标准,不仅在性能上有显著提升,还引入了一些新功能,如On-Die ECC,以适应未来计算的需求。】的低功耗ISP图像处理SoC,采用低功耗RISC-V处理器,内置ITCM SRAM、DTCM SRAM,集成包括MIPI、ISP、USB、QSPI、UART、I2C、GPIO、以太网MAC控制器等IP,采用SMIC40工艺设计流片。提供后端设计服务,工艺包括7nm、12nm、28nm、40nm、55nm、65nm、90nm、110nm、180nm等,提供投片渠道。业界独一无二的经验分享。
2024-03-31 16:04:22
2151
原创 这两个比较经典的LVS问题怎么解?
在芯片设计中端流程时,景芯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控制。
2024-03-31 16:03:22
1240
原创 SoC芯片的DVFS技术详解
DVFS技术是数字后端设计中重要的低功耗技术之一。通过动态调整工作电压和频率,可以有效降低芯片的功耗,延长设备的使用寿命,并减少能源消耗。然而,DVFS技术的实施需要克服时序收敛的复杂性和工作负载预测的准确性等挑战。通过合理的策略和精确的控制,DVFS技术能够在保证性能的同时,实现功耗的优化。“2.5GHz频率 hierarchy DVFS低功耗A72培训”编辑一. 培训内容:2.5GHz hierarchy DVFS低功耗 A72实战。
2024-03-29 20:53:58
2823
原创 数字芯片retention cell
注意,景芯SoC休眠掉电时,将关键数据保存在SRAM,SRAM采用双电源设计,这样设计不仅节省了面积,还降低了设计复杂度。】的低功耗ISP图像处理SoC,采用低功耗RISC-V处理器,内置ITCM SRAM、DTCM SRAM,集成包括MIPI、ISP、USB、QSPI、UART、I2C、GPIO、以太网MAC控制器等IP,采用SMIC40工艺设计流片。大量使用有什么影响?提供后端设计服务,工艺包括7nm、12nm、28nm、40nm、55nm、65nm、90nm、110nm、180nm等,提供投片渠道。
2024-03-23 14:23:36
1320
原创 Verilog case/casez/casex的区别
在芯片设计中端流程时,景芯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控制。
2024-03-18 12:52:49
1555
原创 详解POCV/SOCV的时序报告
时钟树是以平衡为目的,假设对一个root和sink设置了400ps的latency值,那么对另外的sink而言,就算没有给定latency值,CTS为了得到较小的skew,也会将另外的sink做成400ps的latency。再分享个例子,比如,Cortex-A72进阶版本课程的低功耗例子:请问,如果iso cell输出都要放parent,输入放self,那么下面-applies_to_outputs对应的-location为何是self?正如下log提示所说,检查log是非常好的工程师习惯。
2024-02-26 17:29:21
926
原创 DC与DCT DCG的区别
时钟树是以平衡为目的,假设对一个root和sink设置了400ps的latency值,那么对另外的sink而言,就算没有给定latency值,CTS为了得到较小的skew,也会将另外的sink做成400ps的latency。再分享个例子,比如,Cortex-A72进阶版本课程的低功耗例子:请问,如果iso cell输出都要放parent,输入放self,那么下面-applies_to_outputs对应的-location为何是self?正如下log提示所说,检查log是非常好的工程师习惯。
2024-02-22 13:46:22
1903
原创 芯片跨时钟域设计(二)
在芯片设计中端流程时,景芯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控制。
2024-01-31 18:46:19
1329
原创 12nm工艺,2.5GHz频率,低功耗Cortex-A72处理器培训
答:这个需要了解CPU的内部设计架构,tbnk掉电 VDDS_maia_noncpu也必然掉电,pst如下,所以-applies_to_outputs对应的-location是可以的,那么注意下debug domain呢?再分享个例子,比如,Cortex-A72进阶版本课程的低功耗例子:请问,如果iso cell输出都要放parent,输入放self,那么下面-applies_to_outputs对应的-location为何是self?进阶课程是hierarchy低功耗设计,价格较贵,暂时不推。
2024-01-31 18:43:53
1630
原创 低功耗设计之Retention cell
正常情况下,Retention flip-flop和普通的flip-flop功能一样,但是会在SAVE信号有效时候将flip-flop输出锁存在Save-latch中,当电源关掉时,由于Save-latch是由backup电源供电,Save-latch能锁存SAVE保存的信号;答:RETN是由BUF驱动,且BUF由VDDG VSSG供电,VDD VSS掉电后,RETN需要保持有效,具体由PMU模块设计,景芯SoC提供了PMU设计。请问,RETN的供电谁来决定?formal验证等技术。DFT设计(芯片级)
2024-01-24 16:22:46
991
原创 芯片设计—低功耗isolation cell
假如电源的工作电源为1.2V,当B模块关断电压后,B模块输出到A模块的信号(X态)可能为0~1.2V中任意电压,如果X处在中间电平0.6V,若这个信号送给电压常开域中的一个反相器,就会导致这个反相器的PMOS和NMOS都导通,就会存在一个短路电流从电源流经PMOS、NMOS再到地,造成功耗浪费。因此,当A模块电压常开,B模块电压可关断,在B模块关断电压后,B模块输出到A模块的信号需要用isolation cell进行电压钳位(clamp 0或者clamp 1信号),这样就避免了X态的传播。
2023-11-24 11:09:11
2081
原创 景芯SoC 芯片全流程培训
【全网唯一】景芯SoC是一款用于芯片全流程培训的低功耗ISP图像处理SoC,采用低功耗RISC-V处理器,内置ITCM SRAM、DTCM SRAM,集成包括MIPI、ISP、CNN、QSPI、UART、I2C、GPIO、百兆以太网等IP,采用SMIC40工艺设计流片。一键式完成C代码编译、仿真、综合、DFT插入、形式验证、布局布线、寄生参数抽取、PT分析、DRC/LVS、后仿真、形式验证、功耗分析等全流程。仿真结果:仿真识别上图7、2、1、0、4、1、4、9。stat_awb - 自动白平衡统计。
2023-09-01 14:00:26
979
原创 【无标题】RC抽取工艺文件(三)Layer map错误
qrclayermap的作用是把Innovus里的层和qrcTechFile里的层对应起来。Innovus的层信息来自LEF或OA tech library,其使用字符串MET1, VIA1等代表层。qrcTechFile里也使用字符串代表层,但和Innovus的字符串不同,需要用这个qrclayermap把两者对应起来。在后端实践中发现log中有如下告警,layermap的层次名字不对!开始定位。可见,检查EDA工具的log是非常重要的。如何找对正确的Layermap关系.
2022-05-09 15:45:49
5010
1
原创 RISC-V SoC设计—SRAM定制
超低功耗、小面积RISC-V CPU需要ILM SRAM、DLM SRAM。本SoC设计指标:ILM SRAM:64KB,LD/ST指令可访问,即可作为data sram。DLM SRAM:256KB+64KB共计384KB SRAMMemory Compiler定制采用Artisan公司提供的Memory Compiler定制如下number of words:RAM深度number of bits:RAM宽度Library Compiler
2022-05-09 11:32:39
2609
5
原创 ECC纠错算法(二)
ECC纠错算法汉明码实现原理汉明码(Hamming Code)是广泛用于内存纠错的编码。汉明码不仅可检错,还可纠错。(只能发现和纠正一位错误,对于两位或者两位以上的错误无法纠正)。我们约定一串编码里1的个数是偶数个,那么这串编码里携带的信息就是对的,否则就是错的。我们可以在开头对这串编码加一位校验码实现奇偶校验。比如:我们想传输10010这串码,那么在传输的时候,就传010010,其中在开头的0就是校验位。我们想传输10000这串码,那么在传输的时候,就传110000,其中在开头
2021-11-16 11:08:09
8322
sdf_3.0.pdf
2020-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人