日常记录(32)验证计划与TB、NEADTree、TAB管理

验证计划参照

# 验证计划

根据验证计划安排testcase进行验证。



## 1 时钟

### 1.1 时钟频率

最小值、典型值、最大值、随机值(可选)

### 1.2 复位

上电复位,运行中复位、检查fifo是否复位(如果有)


## 2 DUT相关

### 2.1 读写

#### 2.1.1)size不同

8bit、16bit、32bit

#### 2.1.2)bank不同

bank0读写,bank1不变。

bank0不变,bank1读写。

bank0,bank1交叉读写。

#### 2.1.3)full range读写测试

#### 2.1.4)边界值读写测试

最小地址、最大地址、bank0最大地址,bank1最小地址


### 2.2 运算

#### 2.2.1 移位运算

逻辑左移、右移、算数左移、右移

#### 2.2.2 算数运算

加减乘除取余,



## 3 中断



## 4 调试



## 5 寄存器


## 6 corner

### 6.1 混合size的读写测试

8bit写,16bit、32bit读

### 6.2 ahb协议测试

hready、htrans、hburst

  

TB简单验证mem读写。

Makefile文件

FILES = 例如:top.sv arb.sv arb_if.sv test.sv
FLAGS = 例如:-sverilog -debug_all

run:	simv
	./simv -l simv.log

gui:	simv
	./simv -gui

simv:	${FILES}
	vcs ${FLAGS} ${FILES}


DIR = $(shell basename `pwd`)
tar:	clean
	cd ..;tar cvf ${DIR}.tar ${DIR}

clean: 	
	@rm -rf csrc simv* *.tcl *.vpd .res* ucli* .ucli* *.old *.txt *.db 
	@rm -rf *.log *~ */*~ .*/*~

  

Python脚本

import os

dut="memory.sv"
tb="memory_tb.sv"
top="memory_top.sv"

with open("filelist.f", mode="w") as f:
    f.write(tb)
    f.write('\n')
    f.write(dut)
    f.write('\n')
    f.write(top)
    f.write('\n')


filelist=os.listdir()
filelist=filter(lambda x:x.split(".")[-1] == "sv" , filelist)
for eachfile in filelist:
    if eachfile == dut:
        continue
    if eachfile == tb:
        continue
    if eachfile == top:
        continue
    with open("filelist.f", mode="a") as f:
        f.write(eachfile)
        f.write('\n')

  

结构图

https://gitee.com/bai-mengwei/sv_mem_tb

  

 

 

 

完整测试平台回顾

http://t.zoukankan.com/yllinux-p-13199014.html

 

 

NEADTree

 

 

 

TAB管理

 

posted @ 2022-01-06 10:12  大浪淘沙、  阅读(84)  评论(0)    收藏  举报