用户工具

站点工具


edastudy:tessent:memory_bist

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
edastudy:tessent:memory_bist [2025/06/11 08:52] – [表] user01edastudy:tessent:memory_bist [2026/10/12 08:49] (当前版本) – [2.11 bisr_segment_order] user01
行 213: 行 213:
 一般来说memory compiler生成出来的memory每个port的操作频率都是一样,所以memory本身应该也能够承受高频的测试。 一般来说memory compiler生成出来的memory每个port的操作频率都是一样,所以memory本身应该也能够承受高频的测试。
  
 +
 +===== - 使用TCK时钟来测试memory =====
 +可能是为了慢速调试,不使用高频时钟,而使用tck时钟去做memory bist读写测试。
 +
 +出pattern方式:
 +
 +方式一: 直接配置OCC的inject_tck为1, TCK直接注入到时钟通路,跑mbist测试。
 +
 +方式二: Pattern(MemoryBist_P1)/tck_clock_only为on
 +
 +注:不能用于ATPG测试。
  
 ===== - mbist memory分组 ===== ===== - mbist memory分组 =====
-**方法一:**+**方法一:**  <color #ed1c24>推荐方式</color>
  
 <code tcl> <code tcl>
行 236: 行 247:
  
 手动修改spec,进行手动分组。 手动修改spec,进行手动分组。
 +
 +
 +===== - 时钟定义 =====
 +memory要做mbist测试, 那连到memory port的clock需要先在tcl用 add_clocks 定义
 ====== - mbisr ====== ====== - mbisr ======
  
行 404: 行 419:
 测试第一次时,将fuse ram内容清空,写fuse。 测试第一次时,将fuse ram内容清空,写fuse。
  
-测试第二次,运用第一次测试得出来的fuse进行上电分发,(fuse值不要烧到fuse)\\ +测试第二次,运用第一次测试得出来的fuse进行上电分发,(fuse值不要烧到fuse),即bisr chain上还是保留的是带repair的信息,这时直接进行repair analysis\\ 
-测试,得结果后,先把fuse ram内容清空,写fuse.+得结果后,先把fuse ram内容清空,写fuse.
  
 此时最终的fuse值就得出来了。 此时最终的fuse值就得出来了。
行 413: 行 428:
  
  
-^ fuse初始值    ^ 不造错            ^ 造L列错                           ^ 造R列错                           ^ 造L列R列错                        ^ +^ fuse初始值    ^ 不造错            ^ 造L列错                               ^ 造R列错                               ^ 造L列R列错                            ^ 
-| 全0           | PASS, fuse值不变  | PASS, fuse值带L列修复             | PASS, fuse值带R列修复             | PASS, fuse值带L列R列修复          | +| 全0           | PASS, fuse值不变  | PASS, fuse值带L列修复                 | PASS, fuse值带R列修复                 | PASS, fuse值带L列R列修复              | 
-| 带L列修复     | PASS, fuse值不变  | PASS, fuse值不变                  | PASS, fuse值跟带L列R列修复值一样  | PASS, fuse值跟带L列R列修复值一样  | +| 带L列修复     | PASS, fuse值不变  | PASS, fuse值不变                      | **PASS, fuse值跟带L列R列修复值一样**  | **PASS, fuse值跟带L列R列修复值一样**  | 
-| 带R列修复     | PASS, fuse值不变  | PASS, fuse值跟带L列R列修复值一样  | PASS, fuse值不变                  | PASS, fuse值跟带L列R列修复值一样  | +| 带R列修复     | PASS, fuse值不变  | **PASS, fuse值跟带L列R列修复值一样**  | PASS, fuse值不变                      | **PASS, fuse值跟带L列R列修复值一样**  | 
-| 带L列R列修复  | PASS, fuse值不变  |                                   |                                   |                                   |+| 带L列R列修复  | PASS, fuse值不变  | PASS, fuse值不变                      | PASS, fuse值不变                      | PASS, fuse值不变                      |
 ===== - fusebox interface ===== ===== - fusebox interface =====
 ==== - external fusebox ==== ==== - external fusebox ====
行 509: 行 524:
  
 如果需要某些mem_init不做mbisr 或 mbist的时候,某设置需要在check_design_rules之前设置。 如果需要某些mem_init不做mbisr 或 mbist的时候,某设置需要在check_design_rules之前设置。
 +
 +
 +===== - repair controller时钟定义 =====
 +
 +repair_clock_connection : pin_or_port_name ; // 这个port or pin必须要先用add_clocks定义时钟,不然flow会报错。
  
 ====== - memory lib ====== ====== - memory lib ======
edastudy/tessent/memory_bist.1749603139.txt.gz · 最后更改: 2025/06/11 08:52 由 user01

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki