ARM 提供的基于SVA的axi3 protocol checker主要组成部分是:
1) 读 CAM
2) 写 CAM
3) WID Array
4) Lock 状态机
5) verilog Function 包括 CheckBurst, CheckStrb, ReadDataMask, ByteShift, ByteCount
下面先介绍一下读CAM:如图
CAM的操作行为规定如下,每发现一个有效地读就把它压栈(push), 当完成读时(最后一笔读数据返回)时从前到后查找对应ARID的RBusrtCAM,当发现第一个match的项目时,出栈。后面的项目依次前进一个单元。同时push和pop的情况也要考虑。
写CAM也是类似的:
CAM的操作行为规定如下,每发现一个有效地写就把它压栈(push), 当完成写时(BVALID&BREADY时)从前到后查找对应AWID的WBusrtCAM,当发现第一个match的项目时,出栈。后面的项目依次前进一个单元。当然还有同时进栈和出栈的情况要考虑。