MBIST和BISR
https://blog.csdn.net/liubin1222/article/details/103995449
https://zhuanlan.zhihu.com/p/161185302
进行内存修复需要两步:首先在可修复内存测试期间,由MBIST控制器诊断出的故障。第二步是修复内存,确认修复签名。可修复的存储器都有带修复签名的寄存器。
MBIST (Memory Built-In Self Test)是一种自测试和修复机制。通过有效的算法检测典型内存单元中可能存在的所有故障,包括卡死(SAF)、过渡延迟故障(TDF)、耦合(CF)或邻域模式敏感故障(NPSF)。使用内置的时钟、地址和数据生成器以及读/写控制器逻辑就可以生成需要的测试向量(test patterns)。
内存内建自我修复 (BISR,Memory Built-in Self Repair):
memory在SoC中占据很大面积,并且排列紧密(smaller feature size)。因此存储器对芯片良率又重要影响。为了避免良率过低带来的损失,通常会在存储单元中添加冗余或备用的行和列,以便将故障单元重新映射到冗余单元。存储器修复包括行修复,列修复或两者的组合。
在stuck-at故障模型中,最常见的故障模型是single stuck-at (SSA) 模型。SSA指的是这个故障stuck-at 0或者1. stuck-at 0的话我们通常考虑发生故障的地方直接接地端。stuck-at 1的话,通常是接到了VDD,也就是供电端。
循环移位和强制转换
强制转换的前面的数据类型不能有括号,即便是logic [31:0]
循环移位可以使用两个相同的大小拼接然后逻辑移位取低位实现。
logic [31:0] a, y;
logic [5:0] b;
y = logic [31:0]'({a,a} >> b)
verdi操作
verdi 波形折叠
nWave 窗口下 View => Compress Time Range 然后填好时间后点Insert 就可以看到对应时间内的波形已经被折叠了
Grid Option
- 选中一个要统计的信号
- 点击菜单 View - Grid Option
- 如下图,勾选 Grid on,按需选择统计依据的信号沿,如上升沿
- 勾选 Grid Count with Start Number,默认是0,也可以按需设置
快捷键
m将选中的波形移动到最后
k创建子bus
o打开新的波形
a active某个波形
e 时间线指导波形结尾
x 框出中线和虚线的宽度并将虚线自动同步到虚线的相对位置
ctrl+s 选中一段已知时间范围内,信号未翻转的部分
tipview打开,当光标移动到hover
新思vip需要disable auto recording
因为很多协议是乱序的,不能使用uvm自带的事务记录,而是采用的手动记录。sequence是在后台发送,不会等到返回item_done才结束。
vim设置某行高亮
https://yianwillis.github.io/vimcdoc/doc/builtin.html#matchadd()
:highlight显示可用的高亮形式
call matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]]) 和 matchadd() 相同,但需要位置列表 {pos} 而非匹配模式。比 matchadd() 更快,因为无需处理正则表达式并设置缓冲区行边界以 重画屏幕。主要用于需要快速增加或删除匹配的场合,如匹配括号的高 亮。
python模拟find命令
import os
import glob # 可以利用通配符进行文件的搜索获取
goal_dir = r'D:\demo'
# 遍历指定文件夹下所有文件或文件夹
for file in glob.glob(goal_dir+'/*'):
print(file)
# 遍历指定文件夹下的所有文件夹里的所有文件或文件夹,/*/*可以根据文件夹层数自主设定
for file in glob.glob(goal_dir+'/*/*'):
print(file)
# 遍历文件夹下所有txt文件,返回一个列表
file = glob.glob(os.path.join(goal_dir, "*.txt"))
print(file)
标签:修复,stuck,auto,glob,BISR,故障,vip,文件夹,file
From: https://www.cnblogs.com/bai2022/p/18120342