日常记录(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管理

Le vent se lève! . . . il faut tenter de vivre!
Le vent se lève! . . . il faut tenter de vivre!

浙公网安备 33010602011771号