接著上文,MCU芯片設計了mbist、scan chain之后,功能仿真失敗?
有同學問,假設我們只是force ilm_sram的時鐘使之偏斜可以不?答:仿真cpu必掛死,dlm也會有問題的,不信證明給你看。
定位到CPU指令預測跳轉,該預測為跳轉的指令進入到執行階段時候,需要根據操作數據a、b是否相等來決定是否真正跳轉,若預測錯誤即不跳轉則flush pipieline,重新取跳轉地址的指令。跳轉則繼續commit。
但是操作數a從cpu regfile取出來是x態,追蹤發現操作數a是長指令回寫到regfile的,是lsu長指令。
繼續追蹤到dlm_sram輸出x態,顯然dlm_sram也需要force一下時鐘。又有同學問,和ilm_sram一起簡單粗暴force為同一個時鐘可以不?來吧,這樣就又有新問題了。
?
發現dlm_sram想把ffc ffd ffe三地址寫0,fff想寫0x8000, 卻只有ffc ffd寫入0,ffe fff皆寫失敗,因為時鐘被force偏離了dlm_sram的要求,盡管滿足了ilm_sram。為什么不滿足dlm sram?因為各個sram的控制信號延時也不一樣啊。
因此,下圖看到sram讀出ffc的值0,其他讀出來都是x,導致pc值變成x態,取指令失敗,cpu掛起。
因此,ilm sram和dlm sram被force為統一時鐘后,也可能錯誤的,因為force的時鐘滿足了ilm sram的偏斜,卻沒能滿足dlm sram的傾斜,因為cs/we等信號延時也不一樣的。
如下圖,黃線是ilm_sram,行為ok,紅線是dlm_sram,行為fail。
實際上,解決辦法不是force,我們應該刪除force語句,具體方法參見知識星球。???????????
審核編輯:湯梓紅
-
芯片
+關注
關注
456文章
51182瀏覽量
427274 -
mcu
+關注
關注
146文章
17321瀏覽量
352650 -
cpu
+關注
關注
68文章
10904瀏覽量
213021 -
仿真
+關注
關注
50文章
4124瀏覽量
133993 -
指令
+關注
關注
1文章
611瀏覽量
35816
原文標題:MCU芯片設計了mbist、scan chain之后,功能仿真失敗(二)
文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
為什么diable dcache能讓mcu恢復正常?
請教Chipscope和boundary chain問題
幫你理解DFT中的scan technology
Arm PMC-100可編程MBIST控制器技術參考手冊
DS26522 JTAG Scan Chain Mappin

一文讀懂DC/AC SCAN測試技術

Proteus軟件仿真失敗的原因有哪些

【MCU】MDK錯誤:error in include chain (cmsis_armcc.h):expected identifier or ‘(‘

MCU芯片設計添加mbist、scan chain之后仿真失敗如何解決
怎么配置DFT中常見的MBIST以及SCAN CHAIN
是否需要補插scan chain的isolation cell?怎么插呢?

芯片設計測試中scan和bist的區別

數模混合芯片scan chain問題解析

芯片后仿真要點

評論