edastudy:tessent:memory_bist
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| edastudy:tessent:memory_bist [2025/06/11 08:54] – [表] user01 | edastudy: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)/ | ||
| + | |||
| + | 注:不能用于ATPG测试。 | ||
| ===== - mbist memory分组 ===== | ===== - mbist memory分组 ===== | ||
| - | **方法一: | + | **方法一: |
| <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值就得出来了。 | ||
| 行 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.1749603291.txt.gz · 最后更改: 2025/06/11 08:54 由 user01