Files
eb001/tb/shinTest/gen_pkt.py

2314 lines
81 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python
#encoding=utf-8
import random
import time
from pyutils import *
from testcase import readregs
if __name__ == '__main__':
random.seed(int(time.time() * 1000))
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>嗅探数据包1正常的嗅探数据包
genPkt.clean()
genPkt.setPktType(1)
gen_file_def = "detect_pkt"
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)
#-------------------------------------------------------------------------
#>>>>>>嗅探数据包2正常的嗅探数据包
genPkt.clean()
genPkt.setPktType(1)
gen_file_def = "detect_pkt2"
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)
+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)
#-------------------------------------------------------------------------
#>>>>>>错误的数据包1
genPkt.clean()
data = list()
'''
for i in range(128):
data.append(random.randint(0, 255))
'''
data = data + [0x57, 0x17, 0xfd, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0]
genPkt.setPkt(2, data)
gen_file_def = "err_pkt1"
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)
#-------------------------------------------------------------------------
#>>>>>>错误的数据包2
genPkt.clean()
data = list()
'''
for i in range(128):
data.append(random.randint(0, 255))
'''
data = data + [0xb2, 0x4e, 0xd3, 0xe2, 0xa8, 0xd3, 0x86, 0x01, 0x44, 0x3f]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0]
genPkt.setPkt(2, data)
gen_file_def = "err_pkt2"
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)
#-------------------------------------------------------------------------
#>>>>>>错误的数据包3
genPkt.clean()
data = list()
for i in range(1024):
data.append(random.randint(0, 255))
genPkt.setPkt(2, data)
gen_file_def = "err_pkt3"
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)
#-------------------------------------------------------------------------
#>>>>>>普通数据包 sm12个读
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#genPkt.addSubPkt(0x02, 0, 0x0830, 0x2, 56, None)
genPkt.addSubPkt(0x01, 0, 0x00, 0x0, 64, None)
genPkt.addSubPkt(0x03, 0, 0xc0, 0x0, 64, None)
#genPkt.addSubPkt(10, 2, 0x300, 0x2, 4, None)
#genPkt.addSubPkt(11, 1, 0x300, 0x2, 4, None)
gen_file_def = "sm1_pkt"
sm_idx = 1
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)
#-------------------------------------------------------------------------
#>>>>>>普通数据包 sm2广播读
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#genPkt.addSubPkt(0x02, 0, 0x0830, 0x2, 56, None)
genPkt.addSubPkt(0x01, 0, 0x00, 0xd, 128, None)
#genPkt.addSubPkt(10, 2, 0x300, 0x2, 4, None)
#genPkt.addSubPkt(11, 1, 0x300, 0x2, 4, None)
gen_file_def = "sm2_pkt"
sm_idx = 2
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)
#-------------------------------------------------------------------------
#>>>>>>交换数据 SMx 两个广播写
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = bytearray(b"\0" * 10)
data[0] = 16
data[1] = 0
genPkt.addSubPkt(random.randint(0, 2048), 0, 0x0302, 0xe, 2, data) #0x030a, 0xe, 2, data)
data = bytearray(b"\0"*100)
for i in range(100):
data[i] = i + 1
genPkt.addSubPkt(random.randint(0, 2048), 0, 0x0800, 0xe, 16, data) #0x1800, 0xe, 16, data)
gen_file_def = "sm3_pkt"
sm_idx = 3
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)
#-------------------------------------------------------------------------
#>>>>>>普通数据包一个读、一个写增加5个随机包需要在文件里确认)
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#genPkt.addSubPkt(0x02, 0, 0x0830, 0x2, 56, None)
genPkt.addSubPkt(0x01, 0, 0x0840, 0x1, 56, None)
genPkt.addSubPkt(0x03, 0, 0x1040, 0x0, 56, None)
for i in range(5):
genPkt.addSubPkt(random.randint(100, 4000), 0,
random.randint(0, 65536), 0x0,
56, None)
#genPkt.addSubPkt(10, 2, 0x300, 0x2, 4, None)
#genPkt.addSubPkt(11, 1, 0x300, 0x2, 4, None)
gen_file_def = "seq_0_pkt"
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)
#-------------------------------------------------------------------------
#>>>>>>普通数据包0,用来操作sync
genPkt.clean()
genPkt.setPktType(0)
data = bytearray(b"\0"*100)
data[0] = 0 #0x0300
data[1] = 0 #0x0301
data[2] = 64 #0x302 长度1
data[3] = 0 #0x303 长度2
data[4] = 0
data[5] = 0
data[6] = 64
data[7] = 0
data[8] = 0
data[9] = 0
data[10] = 64
data[11] = 0
data[12] = 0
data[13] = 0
data[14] = 64
data[15] = 0
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(0x02, 0, 0x0300, 0x1, 4, data) #sm0
genPkt.addSubPkt(0x01, 0, 0x0308, 0x1, 4, data) #sm2
genPkt.addSubPkt(0x03, 0, 0x0310, 0x1, 4, data) #sm4
genPkt.addSubPkt(0x04, 0, 0x0318, 0x1, 4, data) #sm6
data = bytearray(b"\0"*100)
for i in range(64):
data[i] = i
data[10] = ord('B')
data[11] = ord('A')
genPkt.addSubPkt(0x02, 0, 0x0800, 0x1, 64, data)
data = bytearray(b"\0"*100)
for i in range(64):
data[i] = i
data[11] = ord('B')
data[12] = ord('A')
genPkt.addSubPkt(0x01, 0, 0x1800, 0x1, 64, data)
data = bytearray(b"\0"*100)
for i in range(64):
data[i] = i
data[12] = ord('B')
data[13] = ord('A')
genPkt.addSubPkt(0x03, 0, 0x2800, 0x1, 64, data)
data = bytearray(b"\0"*100)
for i in range(64):
data[i] = i
data[13] = ord('B')
data[14] = ord('A')
genPkt.addSubPkt(0x04, 0, 0x3800, 0x1, 64, data)
gen_file_def = "seq_1_pkt"
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)
#-------------------------------------------------------------------------
#>>>>>>普通数据包2
genPkt.clean()
genPkt.setPktType(0)
genPkt.addBeforeExc( genSlvSMWriteData(3, 1, 129)
+ genSlvSMWriteData(4, 1, 140)
+ genSlvSMWriteData(1, 1, 128)
+ genSlvSMWriteData(2, 1, 152))
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(3, 0, 0x1000, 0x0, 129, b"\0"*129)
genPkt.addSubPkt(4, 0, 0x1000, 0x0, 140, b"\0"*140)
genPkt.addSubPkt(1, 0, 0x1000, 0x0, 128, b"\0"*128)
genPkt.addSubPkt(2, 0, 0x1000, 0x0, 152, b"\0"*152)
genPkt.addSubPkt(1, 0, 0x0306, 0x0, 2, b"\0"*2)
genPkt.addSubPkt(2, 0, 0x030e, 0x0, 2, b"\0"*2)
genPkt.addSubPkt(3, 0, 0x0316, 0x0, 2, b"\0"*2)
genPkt.addSubPkt(4, 0, 0x031e, 0x0, 2, b"\0"*2)
gen_file_def = "seq_2_pkt"
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)
#-------------------------------------------------------------------------
#>>>>>>普通数据包3
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(3, 0, 0x0100, 0x2, 32, b"\0"*129)
genPkt.addSubPkt(4, 0, 0x0100, 0x2, 32, b"\0"*140)
genPkt.addSubPkt(1, 0, 0x0100, 0x2, 32, b"\0"*128)
genPkt.addSubPkt(2, 0, 0x0100, 0x2, 32, b"\0"*152)
genPkt.addSubPkt(2, 0, 0x0120, 0x2, 2, b"\x05"*32)
gen_file_def = "seq_3_pkt"
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.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(0x0, 0, random.randint(0, 65535), 0xc, 12, b'\0'*12)
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa))
gen_file_def = "sync_pkt"
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)
+genCheckInsertTimeCode()) #+genDisableInsertTimeCode())
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>设置同步信号的数据包,在波形中确认定时的有效性
genPkt.clean()
genPkt.setPktType(0)
genPkt.addBeforeExc(
'''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
+ '''_temp_time = _temp_time + 32'h2000;\n\n''')
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 100 #bytearray(b"\0" * 100)
data[0] = 0xff #地址0x120
data[2] = 0xa
data[4] = 0xa
data[6] = 0xa
data[8] = 0xa
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
data[18] = '''(_temp_time >> 16) & 8'hff'''
data[19] = '''(_temp_time >> 24) & 8'hff'''
data[24] = 0x00 #地址0x138, sync周期 4B
data[25] = 0x10 #地址0x139
data[28] = 0x81 #sync1偏移
data[29] = 0x0
data[36] = 0x20#sync3偏移
data[37] = 0x00
genPkt.addSubPkt(random.randint(0, 2048), 0, 0x120, 0xe, 0x28, data)
gen_file_def = "sync_sig_pkt"
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)
#-------------------------------------------------------------------------
#>>>>>>设置同步信号的数据包2
genPkt.clean()
genPkt.setPktType(0)
gen_file_def = "sync_sig2_pkt"
sm_idx = 3
genPkt.addBeforeExc(
'''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 100 #bytearray(b"\0" * 100)
data[0] = 0x0f #地址0x120
data[2] = 0xa
data[4] = 0xa
data[6] = 0xa
data[8] = 0xa
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
data[18] = '''(_temp_time >> 16) & 8'hff'''
data[19] = '''(_temp_time >> 24) & 8'hff'''
data[24] = 0x80 #地址0x138, sync周期 4B
data[25] = 0x00 #地址0x139
data[28] = 0x0 #sync1偏移
data[29] = 0x0
data[36] = 0x0#sync3偏移
data[37] = 0x0
genPkt.addSubPkt(0, 0, 0x120, 0xe, 0x28, data)
data = [0,] * 100 #bytearray(b"\0" * 100)
data[0] = 0x0f #地址0x120
data[2] = 0xa
data[4] = 0xa
data[6] = 0xa
data[8] = 0xa
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
data[18] = '''(_temp_time >> 16) & 8'hff'''
data[19] = '''(_temp_time >> 24) & 8'hff'''
data[24] = 0x00 #地址0x138, sync周期 4B
data[25] = 0x01 #地址0x139
data[28] = 0x0 #sync1偏移
data[29] = 0x0
data[36] = 0x0 #sync3偏移
data[37] = 0x0
genPkt.addSubPkt(3, 0, 0x120, 0x1, 0x28, data)
data = [0,] * 100 #bytearray(b"\0" * 100)
data[0] = 0x0f #地址0x120
data[2] = 0xa
data[4] = 0xa
data[6] = 0xa
data[8] = 0xa
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
data[18] = '''(_temp_time >> 16) & 8'hff'''
data[19] = '''(_temp_time >> 24) & 8'hff'''
data[24] = 0x00 #地址0x138, sync周期 4B
data[25] = 0x02 #地址0x139
data[28] = 0x0 #sync1偏移
data[29] = 0x0
data[36] = 0x0 #sync3偏移
data[37] = 0x0
genPkt.addSubPkt(4, 0, 0x120, 0x1, 0x28, data)
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)
#-------------------------------------------------------------------------
#>>>>>>设置同步信号的数据包3
genPkt.clean()
genPkt.setPktType(0)
gen_file_def = "sync_sig3_pkt"
sm_idx = 3
genPkt.addBeforeExc(
'''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 100 #bytearray(b"\0" * 100)
data[0] = 0x0f #地址0x120
data[2] = 0xa
data[4] = 0xa
data[6] = 0xa
data[8] = 0xa
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
data[18] = '''(_temp_time >> 16) & 8'hff'''
data[19] = '''(_temp_time >> 24) & 8'hff'''
data[24] = 0x80 #地址0x138, sync周期 4B
data[25] = 0x00 #地址0x139
data[28] = 0x0 #sync1偏移
data[29] = 0x0
data[36] = 0x0#sync3偏移
data[37] = 0x0
genPkt.addSubPkt(0, 0, 0x120, 0xe, 0x28, data)
data = [0,] * 100 #bytearray(b"\0" * 100)
data[0] = 0x0f #地址0x120
data[2] = 0xa
data[4] = 0xa
data[6] = 0xa
data[8] = 0xa
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
data[18] = '''(_temp_time >> 16) & 8'hff'''
data[19] = '''(_temp_time >> 24) & 8'hff'''
data[24] = 0x00 #地址0x138, sync周期 4B
data[25] = 0x01 #地址0x139
data[28] = 0x0 #sync1偏移
data[29] = 0x0
data[36] = 0x0 #sync3偏移
data[37] = 0x0
genPkt.addSubPkt(3, 0, 0x120, 0x1, 0x28, data)
data = [0,] * 100 #bytearray(b"\0" * 100)
data[0] = 0x0f #地址0x120
data[2] = 0xa
data[4] = 0xa
data[6] = 0xa
data[8] = 0xa
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
data[18] = '''(_temp_time >> 16) & 8'hff'''
data[19] = '''(_temp_time >> 24) & 8'hff'''
data[24] = 0x00 #地址0x138, sync周期 4B
data[25] = 0x02 #地址0x139
data[28] = 0x0 #sync1偏移
data[29] = 0x0
data[36] = 0x0 #sync3偏移
data[37] = 0x0
genPkt.addSubPkt(4, 0, 0x120, 0x1, 0x28, data)
data = [0,] * 100 #bytearray(b"\0" * 100)
data[0] = 0x0f #地址0x120
data[2] = 0xa
data[4] = 0xa
data[6] = 0xa
data[8] = 0xa
data[16] = '''(_temp_time & 8'hff)''' #地址0x130, sync同步点
data[17] = '''(_temp_time >> 8) & 8'hff''' #地址0x131
data[18] = '''(_temp_time >> 16) & 8'hff'''
data[19] = '''(_temp_time >> 24) & 8'hff'''
data[24] = 0x00 #地址0x138, sync周期 4B
data[25] = 0x04 #地址0x139genPkt.addBeforeExc(
data[28] = 0x0 #sync1偏移
data[29] = 0x0
data[36] = 0x0 #sync3偏移
data[37] = 0x0
genPkt.addSubPkt(2, 0, 0x120, 0x1, 0x28, data)
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.setPktType(0)
data = bytearray(b"\0" * 2)
data[0] = 0x3f
data[1] = 0xff
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(0x0, 0, random.randint(0, 65535), 0xb, 2, data)
gen_file_def = "set_addr_pkt"
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.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(0x0, 0, 0xc0, 0xd, 4, b"\0"*4)
genPkt.addSubPkt(0x1, 0, 0xc0, 0x0, 4, b"\0"*4)
genPkt.addSubPkt(0x2, 0, 0xc0, 0x0, 4, b"\0"*4)
genPkt.addSubPkt(0x3, 0, 0xc0, 0x0, 4, b"\0"*4)
genPkt.addSubPkt(0x4, 0, 0xc0, 0x0, 4, b"\0"*4)
genPkt.addSubPkt(random.randint(0, 2048), 0, 0xc0, 0xd, 4, b"\0"*4)
genPkt.addSubPkt(random.randint(0, 2048), 0, 0xc0, 0xd, 4, b"\0"*4)
genPkt.addSubPkt(random.randint(0, 2048), 0, 0xc0, 0xd, 4, b"\0"*4)
genPkt.addSubPkt(random.randint(0, 2048), 0, 0xc0, 0xd, 4, b"\0"*4)
gen_file_def = "bc_r_pkt"
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.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = bytearray(b"\0" * 2)
data[0] = 32
data[1] = 0
genPkt.addSubPkt(random.randint(0, 2048), 0, 0x0302, 0xe, 2, data)
data = bytearray(b"\0"*100)
for i in range(100):
data[i] = i + 1
genPkt.addSubPkt(random.randint(0, 2048), 0, 0x0800, 0xe, 32, data)
gen_file_def = "bc_w_pkt"
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.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = bytearray(b"\0"*100)
for i in range(4):
data[i] = i + 1
genPkt.addSubPkt(random.randint(0, 2048), 0, 0x00c0, 0xf, 4, data)
gen_file_def = "bc_rw_pkt"
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)
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU 1
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000000, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000000a, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000014, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 10, data)
gen_file_def = "ebmmu_tc1_settings"
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)
#>>>>>>读取EB-MMU的设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 40
genPkt.addSubPkt(0x01, 0, 0x0200, 0x0, 10, data)
genPkt.addSubPkt(0x02, 0, 0x0200, 0x0, 10, data)
genPkt.addSubPkt(0x03, 0, 0x0200, 0x0, 10, data)
genPkt.addSubPkt(0x04, 0, 0x0200, 0x0, 10, data)
gen_file_def = "ebmmu_tc1_seq_read"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 40
genPkt.addSubPkt(0x1000, 2, 0x0000, 0x0, 40, data)
gen_file_def = "ebmmu_tc1_read"
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)
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU 2
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x20000000, 0x0000, 0x10, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x020a, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x20000010, 0x0000, 0x10, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x020a, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x20000020, 0x0000, 0x10, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x020a, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x20000030, 0x0000, 0x10, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x020a, 0x1, 10, data)
gen_file_def = "ebmmu_tc2_settings"
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.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 40
genPkt.addSubPkt(0x01, 0, 0x0000, 0x0, 16, data)
genPkt.addSubPkt(0x02, 0, 0x0000, 0x0, 16, data)
genPkt.addSubPkt(0x03, 0, 0x0000, 0x0, 16, data)
genPkt.addSubPkt(0x04, 0, 0x0000, 0x0, 16, data)
gen_file_def = "ebmmu_tc2_seq_read"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 100
genPkt.addSubPkt(0x2000, 2, 0x0000, 0x0, 0x40, data)
gen_file_def = "ebmmu_tc2_read"
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)
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU 3
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa, 0x0000, 0x0c, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0214, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa+0xc, 0x0000, 0x0c, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0214, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa+0xc+0xc, 0x0000, 0x0c, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0214, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa+0xc+0xc+0xc, 0x0000, 0x0c, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0214, 0x1, 10, data)
gen_file_def = "ebmmu_tc3_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 150
genPkt.addSubPkt(0x1000, 2, 0x0000, 0x0, 0x0c * 4 + 0x28, data)
gen_file_def = "ebmmu_tc3_read"
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)
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU 4
genPkt.clean()
genPkt.setPktType(0)
genPkt.addBeforeExc( genSlvSMWriteData(1, 1, 0x80)
+ genSlvSMWriteData(2, 3, 0x98)
+ genSlvSMWriteData(3, 5, 0x81)
+ genSlvSMWriteData(4, 7, 0x8c))
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000058, 0x1000, 0x80, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x2000, 0x98, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80 + 0x98
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x3000, 0x81, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80 + 0x98 + 0x81
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x4000, 0x8c, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x021e, 0x1, 10, data)
gen_file_def = "ebmmu_tc4_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 550
genPkt.addSubPkt(0x1000, 2, 0x0058, 0x0, 0x80+0x98+0x81+0x8c, data)
gen_file_def = "ebmmu_tc4_read"
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)
#-------------------------------------------------------------------------
#>>>>>>用EB-MMU方式读取EB-MMU设置 5
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 550
genPkt.addSubPkt(0x1000, 2, 0x0058, 0x0, 0x80+0x98+0x81+0x8c, data)
gen_file_def = "ebmmu_tc5_read"
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)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例6
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x58 + 0x80 + 0x98 + 0x81 + 0x8c
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
addr = addr_off + 0x0
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0228, 0x1, 10, data)
data = [0,] * 2
data[0] = 0x80
data[1] = 0x00
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc6_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 0x80 * 4
for i in range(0x80 * 4):
if i < 0x80:
data[i] = i & 0xff
elif i < 0x80+0x80:
data[i] = (i + 2 - 0x80) & 0xff
elif i < 0x80+0x80+0x80:
data[i] = (i + 3 - 0x80 - 0x80) & 0xff
else:
data[i] = (i + 5 - 0x80 - 0x80 - 0x80) & 0xff
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x80 * 4, data)
gen_file_def = "ebmmu_tc6_write"
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)
+genSlvSMReadData(1, 0, 0x80)
+genSlvSMReadData(2, 0, 0x80)
+genSlvSMReadData(3, 0, 0x80)
+genSlvSMReadData(4, 0, 0x80))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例7
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x58 + 0x80 + 0x98 + 0x81 + 0x8c
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
addr = addr_off + 0x0
#print(hex(addr))
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
#print(hex(addr))
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x0)
genPkt.addSubPkt(0x2, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0228, 0x1, 10, data)
data = [0,] * 30
addr = addr + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x3, 0x0)
genPkt.addSubPkt(0x4, 0, 0x0228, 0x1, 10, data)
data = [0,] * 2
data[0] = 0x80
data[1] = 0x00
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc7_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 0x80 * 4
for i in range(0x80 * 4):
if i < 0x80:
data[i] = i & 0xff
elif i < 0x80+0x80:
data[i] = (i + 2 - 0x80) & 0xff
elif i < 0x80+0x80+0x80:
data[i] = (i + 3 - 0x80 - 0x80) & 0xff
else:
data[i] = (i + 5 - 0x80 - 0x80 - 0x80) & 0xff
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x80 * 4, data)
gen_file_def = "ebmmu_tc7_write"
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)
+genSlvSMReadData(1, 0, 0x80)
+genSlvSMReadData(2, 0, 0x80)
+genSlvSMReadData(3, 0, 0x80)
+genSlvSMReadData(4, 0, 0x80))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例8广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x80, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x80
data[1] = 0x00
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc8_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 8
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#data = [1,] * 0x80
data = [((i * 2) & 0xff) for i in range(0x80)]
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x80, data)
gen_file_def = "ebmmu_tc8_write"
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x80)
+genSlvSMReadData(2, 0, 0x80)
+genSlvSMReadData(3, 0, 0x80)
+genSlvSMReadData(4, 0, 0x80)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例9广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x0100, 0x2, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x00
data[1] = 0x01
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc9_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 9
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#data = [0xa5,] * 0x100
#data[-1] = 0x5a
data = [((i + 5) & 0xff) for i in range(0x100)]
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc9_write"
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x100)
+genSlvSMReadData(2, 0, 0x100)
+genSlvSMReadData(3, 0, 0x100)
+genSlvSMReadData(4, 0, 0x100)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例10广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x0800, 0x0100, 0x2, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x00
data[1] = 0x01
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc10_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 10两次写入em-mmu
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#data = [0xc3,] * 0x100
#data[-1] = 0x3c
data = [((i + 0x80) & 0xff) for i in range(0x100)]
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc10_write"
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.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#data = [0x81,] * 0x100
#data[-1] = 0x18
data = [((i + 0x40) & 0xff) for i in range(0x100)]
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc10b_write"
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x100)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x100)
+genSlvSMReadData(2, 0, 0x100)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genSlvSMReadData(2, 0, 0x100)
+genSlvSMReadData(3, 0, 0x100)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genSlvSMReadData(3, 0, 0x100)
+genSlvSMReadData(4, 0, 0x100)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(4, 0, 0x100)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例11检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, 0x100, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
addr_off = addr_off + 0x100
data = [0,] * 256
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, 0x100, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
addr_off = addr_off + 0x100
data = [0,] * 256
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, 0x100, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
addr_off = addr_off + 0x100
data = [0,] * 256
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, 0x100, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data)
data = [0,] * 2
data[0] = 0x00
data[1] = 0x01
genPkt.addSubPkt(0x0, 0, 0x306, 0xe, 2, data)
gen_file_def = "ebmmu_tc11_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 11两次读出eb-mmu
genPkt.clean()
genPkt.setPktType(0)
data0 = list(range(0x100))
data1 = list(range(0xff, -1, -1))
genPkt.addBeforeExc( genIFRwDataCode(1, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(1, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(2, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(2, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(3, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(3, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(4, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(4, 0x1000, True, 0x100, data0))
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0, ] * 0x100 * 4
gen_file_def = "ebmmu_tc11_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x0, 0x100 * 4, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0x0,] * 0x100 * 4
gen_file_def = "ebmmu_tc11b_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x0, 0x100 * 4, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例12检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 0x8
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 1, taddr, 0x2000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 2, taddr, 0x3000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 1, taddr, 0x2000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 2, taddr, 0x3000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 1, taddr, 0x2000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 2, taddr, 0x3000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 1, taddr, 0x2000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 2, taddr, 0x3000, sm_size, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x306, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x30e, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x316, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x31e, 0xe, 2, data)
gen_file_def = "ebmmu_tc12_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 12
genPkt.clean()
genPkt.setPktType(0)
data0 = list(range(0, sm_size))
data1 = list(range(1, sm_size + 1))
data2 = list(range(2, sm_size + 2))
data3 = list(range(3, sm_size + 3))
data4 = list(range(4, sm_size + 4))
data5 = list(range(5, sm_size + 5))
data6 = list(range(6, sm_size + 6))
data7 = list(range(7, sm_size + 7))
genPkt.addBeforeExc( genIFRwDataCode(1, 0x1000, True, sm_size, data0)
+ genIFRwDataCode(1, 0x2000, True, sm_size, data1)
+ genIFRwDataCode(1, 0x3000, True, sm_size, data2)
+ genIFRwDataCode(1, 0x4000, True, sm_size, data3)
+ genIFRwDataCode(2, 0x1000, True, sm_size, data4)
+ genIFRwDataCode(2, 0x2000, True, sm_size, data5)
+ genIFRwDataCode(2, 0x3000, True, sm_size, data6)
+ genIFRwDataCode(2, 0x4000, True, sm_size, data7)
+ genIFRwDataCode(3, 0x1000, True, sm_size, data7)
+ genIFRwDataCode(3, 0x2000, True, sm_size, data6)
+ genIFRwDataCode(3, 0x3000, True, sm_size, data5)
+ genIFRwDataCode(3, 0x4000, True, sm_size, data4)
+ genIFRwDataCode(4, 0x1000, True, sm_size, data3)
+ genIFRwDataCode(4, 0x2000, True, sm_size, data2)
+ genIFRwDataCode(4, 0x3000, True, sm_size, data1)
+ genIFRwDataCode(4, 0x4000, True, sm_size, data0)
)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0, ] * sm_size * 16
gen_file_def = "ebmmu_tc12_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x0, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例13检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 0x8
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x1000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x2000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x3000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x3000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x1000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x2000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x3000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x3000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x1000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x2000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x3000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x3000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x1000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x1000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x2000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x3000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x3000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
#print(hex(taddr), hex(addr_off))
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x306, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x30e, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x316, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x31e, 0xe, 2, data)
gen_file_def = "ebmmu_tc13_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 12
genPkt.clean()
genPkt.setPktType(0)
data0 = list(range(0, sm_size))
data1 = list(range(1, sm_size + 1))
data2 = list(range(2, sm_size + 2))
data3 = list(range(3, sm_size + 3))
data4 = list(range(4, sm_size + 4))
data5 = list(range(5, sm_size + 5))
data6 = list(range(6, sm_size + 6))
data7 = list(range(7, sm_size + 7))
genPkt.addBeforeExc( genIFRwDataCode(1, 0x1000, True, sm_size, data0)
+ genIFRwDataCode(1, 0x2000, True, sm_size, data1)
+ genIFRwDataCode(1, 0x3000, True, sm_size, data2)
+ genIFRwDataCode(1, 0x4000, True, sm_size, data3)
+ genIFRwDataCode(2, 0x1000, True, sm_size, data4)
+ genIFRwDataCode(2, 0x2000, True, sm_size, data5)
+ genIFRwDataCode(2, 0x3000, True, sm_size, data6)
+ genIFRwDataCode(2, 0x4000, True, sm_size, data7)
+ genIFRwDataCode(3, 0x1000, True, sm_size, data7)
+ genIFRwDataCode(3, 0x2000, True, sm_size, data6)
+ genIFRwDataCode(3, 0x3000, True, sm_size, data5)
+ genIFRwDataCode(3, 0x4000, True, sm_size, data4)
+ genIFRwDataCode(4, 0x1000, True, sm_size, data3)
+ genIFRwDataCode(4, 0x2000, True, sm_size, data2)
+ genIFRwDataCode(4, 0x3000, True, sm_size, data1)
+ genIFRwDataCode(4, 0x4000, True, sm_size, data0)
)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0, ] * sm_size * 16
gen_file_def = "ebmmu_tc13_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x0, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例14检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 0x8
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x30a, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x312, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x31a, 0xe, 2, data)
gen_file_def = "ebmmu_tc14_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 14
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [(i & 0xff) for i in range(sm_size * 16)]
gen_file_def = "ebmmu_tc14_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, sm_size)
+genSlvSMReadData(1, 2, sm_size)
+genSlvSMReadData(1, 4, sm_size)
+genSlvSMReadData(1, 6, sm_size)
+genSlvSMReadData(2, 0, sm_size)
+genSlvSMReadData(2, 2, sm_size)
+genSlvSMReadData(2, 4, sm_size)
+genSlvSMReadData(2, 6, sm_size)
+genSlvSMReadData(3, 0, sm_size)
+genSlvSMReadData(3, 2, sm_size)
+genSlvSMReadData(3, 4, sm_size)
+genSlvSMReadData(3, 6, sm_size)
+genSlvSMReadData(4, 0, sm_size)
+genSlvSMReadData(4, 2, sm_size)
+genSlvSMReadData(4, 4, sm_size)
+genSlvSMReadData(4, 6, sm_size)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例13检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 16
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x30a, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x312, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x31a, 0xe, 2, data)
gen_file_def = "ebmmu_tc15_settings"
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)
#>>>>>>用EB-MMU方式读取EB-MMU设置, 12
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [(i & 0xff) for i in range(sm_size * 16)]
gen_file_def = "ebmmu_tc15_write"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, sm_size)
+genSlvSMReadData(1, 2, sm_size)
+genSlvSMReadData(1, 4, sm_size)
+genSlvSMReadData(1, 6, sm_size)
+genSlvSMReadData(2, 0, sm_size)
+genSlvSMReadData(2, 2, sm_size)
+genSlvSMReadData(2, 4, sm_size)
+genSlvSMReadData(2, 6, sm_size)
+genSlvSMReadData(3, 0, sm_size)
+genSlvSMReadData(3, 2, sm_size)
+genSlvSMReadData(3, 4, sm_size)
+genSlvSMReadData(3, 6, sm_size)
+genSlvSMReadData(4, 0, sm_size)
+genSlvSMReadData(4, 2, sm_size)
+genSlvSMReadData(4, 4, sm_size)
+genSlvSMReadData(4, 6, sm_size)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>> 测试用例1 看门狗测试
genPkt.clean()
genPkt.setPktType(0)
data = 1<<1 ##使能看门狗1
data0 = [data&0xff, (data>>8)&0xff, (data>>16)&0xff, (data>>24)&0xff]
data = 0x0010 ##看门狗的超时值
data1 = [data&0xff, (data>>8)&0xff, (data>>16)&0xff, (data>>24)&0xff]
data = 0xffffffff ##清除中断
data2 = [data&0xff, (data>>8)&0xff, (data>>16)&0xff, (data>>24)&0xff]
genPkt.addBeforeExc( genIFRwDataCode(1, 0x404, True, 4, data0)
+ genIFRwDataCode(1, 0x40C, True, 4, data1)
+ genIFRwDataCode(1, 0x078, True, 4, data2)
+ genIFRwDataCode(2, 0x078, True, 4, data2)
+ genIFRwDataCode(3, 0x078, True, 4, data2)
+ genIFRwDataCode(4, 0x078, True, 4, data2)
+ genIFRwDataCode(1, 0x400, True, 4, [0xff, 0xff, 0xff, 0xff])
+ genIFRwDataCode(0, 0x074, False, 0x04)
+ genIFRwDataCode(1, 0x074, False, 0x04)
+ genIFRwDataCode(2, 0x074, False, 0x04)
+ genIFRwDataCode(3, 0x074, False, 0x04)
+ genIFRwDataCode(4, 0x074, False, 0x04)
+ genIFRwDataCode(1, 0x400, False, 0x04))
#genPkt.addBeforeExc( genIFRwDataCode(1, 0x078, True, 4, [0xff, 0xff, 0xff, 0xff]))
data = [0,] * 2
data[0] = 0x80
data[1] = 0x00
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
data = [0,] * 0x50
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(1, 0, 0x800, 0x1, 0x50, data)
gen_file_def = "wd_tc1"
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)
+genIFRwDataCode(1, 0x800, False, 0x80)
+genIFRwDataCode(0, 0x074, False, 0x04)
+genIFRwDataCode(1, 0x074, False, 0x04)
+genIFRwDataCode(2, 0x074, False, 0x04)
+genIFRwDataCode(3, 0x074, False, 0x04)
+genIFRwDataCode(4, 0x074, False, 0x04)
+genIFRwDataCode(1, 0x400, False, 0x04))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)