增加bug56的分支, 主站发送4个字节的00,从站异常的反应
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
`timescale 1 ns / 1 ps
|
`timescale 1 ns / 1 ps
|
||||||
|
|
||||||
`define ENABLE_REG_RW_TEST
|
`define ENABLE_REG_RW_TEST
|
||||||
`define ENABLE_DET_TEST
|
//`define ENABLE_DET_TEST
|
||||||
`define ENABLE_SET_ADDR_TEST
|
//`define ENABLE_SET_ADDR_TEST
|
||||||
`define ENABLE_INT_INIT_TEST
|
//`define ENABLE_INT_INIT_TEST
|
||||||
|
`define ENABLE_DET_ERR_TEST
|
||||||
//`define ENABLE_SM1_SEND_TEST
|
//`define ENABLE_SM1_SEND_TEST
|
||||||
//`define ENABLE_SMx_SEND_TEST
|
//`define ENABLE_SMx_SEND_TEST
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@
|
|||||||
//`define ENABLE_BC_W_TEST
|
//`define ENABLE_BC_W_TEST
|
||||||
//`define ENABLE_BC_RW_TEST
|
//`define ENABLE_BC_RW_TEST
|
||||||
|
|
||||||
`define ENABLE_SYNC_TEST
|
//`define ENABLE_SYNC_TEST
|
||||||
//`define ENABLE_SYNC_SIG0_TEST
|
//`define ENABLE_SYNC_SIG0_TEST
|
||||||
//`define ENABLE_SYNC_SIG1_TEST
|
//`define ENABLE_SYNC_SIG1_TEST
|
||||||
//`define ENABLE_RESET_TEST
|
//`define ENABLE_RESET_TEST
|
||||||
@@ -29,7 +30,7 @@
|
|||||||
//`define ENABLE_EBMMU_TC6_TEST
|
//`define ENABLE_EBMMU_TC6_TEST
|
||||||
//`define ENABLE_EBMMU_TC7_TEST
|
//`define ENABLE_EBMMU_TC7_TEST
|
||||||
|
|
||||||
`define ENABLE_WD_TC1_TEST
|
//`define ENABLE_WD_TC1_TEST
|
||||||
|
|
||||||
module ShinTopSpiTb(
|
module ShinTopSpiTb(
|
||||||
|
|
||||||
@@ -914,6 +915,19 @@ initial begin
|
|||||||
end
|
end
|
||||||
`endif
|
`endif
|
||||||
|
|
||||||
|
`ifdef ENABLE_DET_ERR_TEST
|
||||||
|
begin:DET_ERR_TEST
|
||||||
|
//嗅探
|
||||||
|
_t_start = $realtime;
|
||||||
|
#1000
|
||||||
|
$fdisplay(spidata_file, "\n\n测试用例:发送嗅探包,需要在波形文件里检查");
|
||||||
|
|
||||||
|
`include "detect_err_pkt.vh"
|
||||||
|
|
||||||
|
_t_end = $realtime;
|
||||||
|
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
|
||||||
|
end
|
||||||
|
`endif
|
||||||
|
|
||||||
`ifdef ENABLE_SM1_SEND_TEST
|
`ifdef ENABLE_SM1_SEND_TEST
|
||||||
begin:SM1_SEND_TESTCASE
|
begin:SM1_SEND_TESTCASE
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
#encoding=utf-8
|
#encoding=utf-8
|
||||||
import random
|
import random
|
||||||
|
import copy
|
||||||
|
|
||||||
class GenPkt(object):
|
class GenPkt(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@@ -10,12 +11,14 @@ class GenPkt(object):
|
|||||||
self.pkt_type = 0
|
self.pkt_type = 0
|
||||||
self.pkt_sub_pkt = 0
|
self.pkt_sub_pkt = 0
|
||||||
self.sub_pkt = list()
|
self.sub_pkt = list()
|
||||||
|
self.pkt_data = None
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
self.pkt_buf = list() #bytearray(b'\0' * 2048)
|
self.pkt_buf = list() #bytearray(b'\0' * 2048)
|
||||||
self.pkt_type = 0
|
self.pkt_type = 0
|
||||||
self.pkt_sub_pkt = 0
|
self.pkt_sub_pkt = 0
|
||||||
self.sub_pkt = list()
|
self.sub_pkt = list()
|
||||||
|
self.pkt_data = None
|
||||||
|
|
||||||
def setPktType(self, type):
|
def setPktType(self, type):
|
||||||
if (type != 0) and (type != 1):
|
if (type != 0) and (type != 1):
|
||||||
@@ -23,6 +26,16 @@ class GenPkt(object):
|
|||||||
else:
|
else:
|
||||||
self.pkt_type = type
|
self.pkt_type = type
|
||||||
|
|
||||||
|
def setPkt(self, type, data = None):
|
||||||
|
if (type != 0) and (type != 1):
|
||||||
|
if type == 2:
|
||||||
|
self.pkt_type = 2
|
||||||
|
self.pkt_data = copy.copy(data)
|
||||||
|
else:
|
||||||
|
print('Error...set type failed:', type)
|
||||||
|
else:
|
||||||
|
self.pkt_type = type
|
||||||
|
|
||||||
def addBeforeExc(self, str):
|
def addBeforeExc(self, str):
|
||||||
self.sub_pkt.append([1, str])
|
self.sub_pkt.append([1, str])
|
||||||
|
|
||||||
@@ -58,7 +71,7 @@ class GenPkt(object):
|
|||||||
print("pkt_len:%d, data_len:%d"%(pkt_len, pkt_len - 4))
|
print("pkt_len:%d, data_len:%d"%(pkt_len, pkt_len - 4))
|
||||||
|
|
||||||
i = 4
|
i = 4
|
||||||
if self.pkt_type == 1:
|
if (self.pkt_type == 1):
|
||||||
pkt_len = 4
|
pkt_len = 4
|
||||||
'''
|
'''
|
||||||
self.pkt_buf[0] = 0
|
self.pkt_buf[0] = 0
|
||||||
@@ -70,6 +83,12 @@ class GenPkt(object):
|
|||||||
self.pkt_buf.append(self.pkt_type & 0x3)
|
self.pkt_buf.append(self.pkt_type & 0x3)
|
||||||
self.pkt_buf.append(0x3f)
|
self.pkt_buf.append(0x3f)
|
||||||
self.pkt_buf.append(0xff)
|
self.pkt_buf.append(0xff)
|
||||||
|
elif (self.pkt_type == 2):
|
||||||
|
pkt_len = len(self.pkt_data)
|
||||||
|
|
||||||
|
for d in self.pkt_data:
|
||||||
|
self.pkt_buf.append(d)
|
||||||
|
#print("-----------------------------", filename, self.pkt_type, pkt_len, self.pkt_buf)
|
||||||
else:
|
else:
|
||||||
#for i in range(pkt_len):
|
#for i in range(pkt_len):
|
||||||
'''
|
'''
|
||||||
@@ -263,7 +282,7 @@ def genSlvSMWriteData(dev, sm, data_len, data = None):
|
|||||||
|
|
||||||
if (data != None) and (len(data) != 0) and (len(data) < data_len):
|
if (data != None) and (len(data) != 0) and (len(data) < data_len):
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
if (data == None) or (len(data) == 0):
|
if (data == None) or (len(data) == 0):
|
||||||
data = list()
|
data = list()
|
||||||
for i in range(data_len):
|
for i in range(data_len):
|
||||||
@@ -301,6 +320,19 @@ if __name__ == '__main__':
|
|||||||
gen_file_def = "detect_pkt"
|
gen_file_def = "detect_pkt"
|
||||||
sm_idx = 0
|
sm_idx = 0
|
||||||
|
|
||||||
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||||
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||||
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
||||||
|
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||||
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#>>>>>>错误的嗅探数据包
|
||||||
|
genPkt.clean()
|
||||||
|
genPkt.setPkt(2, [0, 0, 0, 0])
|
||||||
|
gen_file_def = "detect_err_pkt"
|
||||||
|
sm_idx = 0
|
||||||
|
|
||||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||||
+genTrgTransPktCode(gen_file_def, sm_idx)
|
+genTrgTransPktCode(gen_file_def, sm_idx)
|
||||||
|
|||||||
Reference in New Issue
Block a user