MCU芯片设计添加mbist、scan chain之后仿真失败如何解决

控制/MCU

1842人已加入

描述

MCU芯片设计添加了mbist、scan chain之后,仿真失败怎么办?首先diff代码,看代码改动了什么,是否改正确,然后做2-3个formal/lec检查,保证DFT实现过程不改变function 功能。此外还要注意顶层的dft端口控制信号是否在testbench中正确例化等等,比如注意jtag端口可做cpu debug,可做mbist测试,注意tdo输出选择控制。‍‍‍

回到正题,DFT插入后,由于增加了大量的mux来完成时钟、复位可控,导致中端网标中的cell有工艺库文件指定的delay参数,默认是1ns,那么会造成clk delay,比如插入两级mux就会形成2ns延时,而我们的mcu运行时钟是250mhz,时钟周期4ns,sram时钟再取个反,刚好易造成sram timing问题,sram输出x态,cpu取指令失败。

Scan

Scan

如下,cs/we等sram控制信号刚好和sram的时钟对齐,造成sram model输出x态,cpu去取指令失败,mcu boot失败。‍‍‍‍‍‍‍

Scan

可以先强行force时钟,选一个可以采样cs/we等sram控制信号的时钟给sram,好巧不好,cpu执行了一部分指令,又停止了,继续定位。‍‍‍‍‍‍‍

查看risc-v汇编指令是否正确读写:‍‍‍‍‍‍‍‍‍

Scan

发现程序末尾有x态哦,发现x态,同学们会问,指令为什么会有x态,肯定是bug或timing问题造成的吧,我们接着看:‍‍‍

Scan

而上面x态是由于cpu有16位指令,并且程序有跳转,那么为什么cpu执行指令一部分后就停止了呢? 是我把cpu取指令模块改错了?于是开始看cpu代码。。。‍‍

实际上x态后程序依然能正确执行,本质上是16位指令及程序调转的原因。接着debug。‍‍

Scan

接着定位,发现是取指令握手卡住,解决办法?后仿真怎么确保时钟对齐的问题? 答案参见全栈芯片工程师【知识星球】。

欢迎加入【全栈芯片工程师】知识星球,手把手教你设计MCU、图像传感器、ISP图像处理,从算法、前端到后端全流程设计。

实战MCU+ISP图像处理芯片版图

Scan

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分