Merge branch 'feature/newSpi' of github.com:whutddk/RISCV-MAC-SWICH into feature/newSpi
This commit is contained in:
30
Makefile
30
Makefile
@@ -5,6 +5,12 @@ ISR_MARCH=-march=rv32i -mabi=ilp32
|
||||
APP_MARCH=-march=rv32i -mabi=ilp32
|
||||
ISR_CFLAGS=-O2
|
||||
APP_CFLAGS=-O2
|
||||
|
||||
SPI_TYPE ?= -spi 0
|
||||
TRANS_CODE ?=
|
||||
DEVCLK ?= --dev1 0 90 --dev2 0 -90
|
||||
CDRCLK ?= --clk 0 40
|
||||
|
||||
ifeq "$(RVCCVERSION)" "12.2.0"
|
||||
ISR_MARCH=-march=rv32izicsr -mabi=ilp32
|
||||
APP_MARCH=-march=rv32izicsr -mabi=ilp32
|
||||
@@ -12,31 +18,13 @@ endif
|
||||
|
||||
.PHONY: compile tb wave
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
shin:
|
||||
rm -f ./generated/shin/*
|
||||
rm -f ./generated/SimCDR/*
|
||||
sbt "test:runMain test.testShinModule"
|
||||
|
||||
testShin:
|
||||
python3 ./tb/shinTest/gen_pkt.py
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
iverilog -Wall \
|
||||
-o ./tb/build/shinTest.iverilog \
|
||||
-y ./generated/shin \
|
||||
-I ./generated/shin \
|
||||
-D RANDOMIZE_REG_INIT \
|
||||
-D IVERILOG_COMPILE \
|
||||
./tb/shinTest/ShinTopSpiTb.v
|
||||
vvp -N ./tb/build/shinTest.iverilog -lxt2 -fst || true
|
||||
python3 ./tb/shinTest/check_testcase.py
|
||||
|
||||
testShin8b10b:
|
||||
python3 ./tb/shinTest/gen_pkt.py -8b10b
|
||||
python3 ./tb/shinTest/gen_pkt.py ${SPI_TYPE} ${TRANS_CODE}
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
iverilog -Wall \
|
||||
@@ -50,7 +38,7 @@ testShin8b10b:
|
||||
python3 ./tb/shinTest/check_testcase.py
|
||||
|
||||
testShinClk:
|
||||
python3 ./tb/shinTest/gen_pkt_clk.py --dev1 0 92 --dev2 0 -92 -8b10b
|
||||
python3 ./tb/shinTest/gen_pkt_clk.py ${DEVCLK} ${SPI_TYPE} ${TRANS_CODE}
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
iverilog -Wall \
|
||||
@@ -64,7 +52,7 @@ testShinClk:
|
||||
python3 ./tb/shinTest/check_testcase.py
|
||||
|
||||
testCDR:
|
||||
python3 ./tb/shinTest/gen_sim_cdr_clk.py --clk 0 40
|
||||
python3 ./tb/shinTest/gen_sim_cdr_clk.py ${CDRCLK}
|
||||
iverilog -Wall \
|
||||
-o ./tb/build/simCDR.iverilog \
|
||||
-y ./generated/SimCDR \
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
OUTPUT = shin_test
|
||||
CPU_COUNT := $(shell nproc)
|
||||
SPI_TYPE ?= -spi 0
|
||||
TRANS_CODE ?=
|
||||
DEVCLK ?= --dev1 0 90 --dev2 0 -90
|
||||
|
||||
VCS = vcs -sverilog +v2k -timescale=1ns/1ps \
|
||||
-full64 \
|
||||
@@ -14,7 +17,7 @@ VCS = vcs -sverilog +v2k -timescale=1ns/1ps \
|
||||
SIM = ./${OUTPUT} -l run.log
|
||||
|
||||
testShin_vcs:
|
||||
python3 ./shinTest/gen_pkt.py
|
||||
python3 ./shinTest/gen_pkt.py ${SPI_TYPE} ${TRANS_CODE}
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
@echo "Available CPUs: ${CPU_COUNT}"
|
||||
@@ -22,71 +25,13 @@ testShin_vcs:
|
||||
${SIM}
|
||||
python3 ./shinTest/check_testcase.py
|
||||
|
||||
|
||||
testShin8b10b_vcs:
|
||||
python3 ./shinTest/gen_pkt.py -8b10b
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
@echo "Available CPUs: ${CPU_COUNT}"
|
||||
${VCS} -f ./shinTest_vcs.f
|
||||
${SIM}
|
||||
python3 ./shinTest/check_testcase.py
|
||||
|
||||
|
||||
testShinClk_vcs:
|
||||
python3 ./shinTest/gen_pkt_clk.py --dev1 0 90 --dev2 0 -90
|
||||
python3 ./shinTest/gen_pkt_clk.py ${DEVCLK} ${SPI_TYPE} ${TRANS_CODE}
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
${VCS} -f ./shinTestClk_vcs.f
|
||||
${SIM}
|
||||
python3 ./shinTest/check_testcase.py
|
||||
mv spi_trans_data.txt generated/spi_trans_data1.txt
|
||||
mv generated/wave.vcd generated/wave1.vcd
|
||||
\
|
||||
python3 ./shinTest/gen_pkt_clk.py --dev1 45 180 --dev3 70 -180 -8b10b
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
${VCS} -f ./shinTestClk_vcs.f
|
||||
${SIM}
|
||||
python3 ./shinTest/check_testcase.py
|
||||
mv spi_trans_data.txt generated/spi_trans_data2.txt
|
||||
mv generated/wave.vcd generated/wave2.vcd
|
||||
\
|
||||
python3 ./shinTest/gen_pkt_clk.py --dev1 45 185 --dev3 25 -185
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
${VCS} -f ./shinTestClk_vcs.f
|
||||
${SIM}
|
||||
python3 ./shinTest/check_testcase.py
|
||||
mv spi_trans_data.txt generated/spi_trans_data3.txt
|
||||
mv generated/wave.vcd generated/wave3.vcd
|
||||
\
|
||||
python3 ./shinTest/gen_pkt_clk.py --dev1 60 186 --dev3 15 -186
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
${VCS} -f ./shinTestClk_vcs.f
|
||||
${SIM}
|
||||
python3 ./shinTest/check_testcase.py
|
||||
mv spi_trans_data.txt generated/spi_trans_data4.txt
|
||||
mv generated/wave.vcd generated/wave4.vcd
|
||||
\
|
||||
python3 ./shinTest/gen_pkt_clk.py --dev1 80 187 --dev2 30 -187
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
${VCS} -f ./shinTestClk_vcs.f
|
||||
${SIM}
|
||||
python3 ./shinTest/check_testcase.py
|
||||
mv spi_trans_data.txt generated/spi_trans_data5.txt
|
||||
mv generated/wave.vcd generated/wave5.vcd
|
||||
\
|
||||
python3 ./shinTest/gen_pkt_clk.py --dev1 70 188 --dev3 223 -188 -8b10b
|
||||
mkdir -p generated/log
|
||||
rm -rf generated/log/*
|
||||
${VCS} -f ./shinTestClk_vcs.f
|
||||
${SIM}
|
||||
python3 ./shinTest/check_testcase.py
|
||||
mv spi_trans_data.txt generated/spi_trans_data6.txt
|
||||
mv generated/wave.vcd generated/wave6.vcd
|
||||
|
||||
|
||||
testShinMany_vcs:
|
||||
|
||||
@@ -1,35 +1,5 @@
|
||||
`timescale 1 ns / 1 ps
|
||||
|
||||
`define ENABLE_REG_RW1_TEST "generated/log/reg_rw1_tc.log"
|
||||
//`define ENABLE_ENCRYPTION
|
||||
//`define ENABLE_DET1_TEST "generated/log/det1_tc.log"
|
||||
//`define ENABLE_DET2_TEST "generated/log/det2_tc.log"
|
||||
//`define ENABLE_SET_ADDR_TEST "generated/log/set_addr_tc.log"
|
||||
//`define ENABLE_INT_INIT_TEST "generated/log/int_init_tc.log"
|
||||
//`define ENABLE_DET_ERR1_TEST "generated/log/det_err1_tc.log"
|
||||
//`define ENABLE_SMx_SEND1_TEST "generated/log/sm_send1_tc.log"
|
||||
//`define ENABLE_SMx_SEND2_TEST "generated/log/sm_send2_tc.log"
|
||||
//`define ENABLE_SMx_SEND3_TEST "generated/log/sm_send3_tc.log"
|
||||
//`define ENABLE_ERR_PKT1_TEST "generated/log/err_pkt1_tc.log"
|
||||
//`define ENABLE_ERR_PKT2_TEST "generated/log/err_pkt2_tc.log"
|
||||
//`define ENABLE_ERR_PKT3_TEST "generated/log/err_pkt3_tc.log"
|
||||
|
||||
//`define ENABLE_EXCHG_DATA_SEQ0_TEST "generated/log/exchg_data_seq0_tc.log"
|
||||
//`define ENABLE_EXCHG_DATA_SEQ1_TEST "generated/log/exchg_data_seq1_tc.log"
|
||||
//`define ENABLE_EXCHG_DATA_SEQ2_TEST "generated/log/exchg_data_seq2_tc.log"
|
||||
//`define ENABLE_EXCHG_DATA_SEQ3_TEST "generated/log/exchg_data_seq3_tc.log"
|
||||
|
||||
//`define ENABLE_BC_R_TEST "generated/log/bc_r_tc.log"
|
||||
//`define ENABLE_BC_W_TEST "generated/log/bc_w_tc.log"
|
||||
//`define ENABLE_BC_RW_TEST "generated/log/bc_rw_tc.log"
|
||||
|
||||
//`define ENABLE_SYNC_TEST "generated/log/sync_tc.log"
|
||||
//`define ENABLE_SYNC_SIG0_TEST "generated/log/sync_sig0_tc.log"
|
||||
//`define ENABLE_SYNC_SIG1_TEST "generated/log/sync_sig1_tc.log"
|
||||
//`define ENABLE_RESET_TEST "generated/log/reset_tc.log"
|
||||
|
||||
//`define ENABLE_WD1_TEST "generated/log/wd1_tc.log"
|
||||
|
||||
module ShinTopSpiTb(
|
||||
|
||||
);
|
||||
@@ -415,7 +385,11 @@ initial begin
|
||||
reset <= 0;
|
||||
|
||||
//#20000000
|
||||
#1000000000
|
||||
#1000000000
|
||||
`ifdef USING_OSPI
|
||||
#1000000000
|
||||
#1000000000
|
||||
`endif
|
||||
//#5000000
|
||||
|
||||
$display("Time Out !!!");
|
||||
@@ -566,7 +540,6 @@ end
|
||||
//DEV_NUM
|
||||
//ALL_DEV_NUM
|
||||
wire isQspi = (idx >= 0 && idx <= (`ALL_DEV_NUM - 1)) || idx >= (`ALL_DEV_NUM * 2);
|
||||
wire isAQspi = (idx >= (`ALL_DEV_NUM * 3));
|
||||
wire [11:0] nextByteCnt = byteCnt + 1;
|
||||
|
||||
//输出
|
||||
@@ -634,7 +607,7 @@ end
|
||||
|
||||
//mst slv0~slv3的 内部qspi调用即设置
|
||||
//sidx为0~4;外部spi为5~9,外部qspi为10~15
|
||||
task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,input [16:0] sidx );
|
||||
task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength, input [16:0] sidx );
|
||||
begin
|
||||
txBuf[0] <= saddress[15:8];
|
||||
txBuf[1] <= saddress[7:0];
|
||||
@@ -686,7 +659,6 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
|
||||
)
|
||||
) begin
|
||||
|
||||
|
||||
for (integer _k = 0; _k < 4; _k++) begin
|
||||
if (scmd == 0) begin
|
||||
$fwrite(spidata_file, "%02h ", txBuf[_k + _pos]);
|
||||
@@ -849,21 +821,21 @@ always @(negedge io_int_sig[4]) begin
|
||||
end
|
||||
|
||||
//`define USING_IQSPI
|
||||
//`define USING_ESPI
|
||||
//`define USING_EQSPI
|
||||
`define USING_AQSPI
|
||||
//`define USING_OSPI
|
||||
//`define USING_OQSPI
|
||||
//`define USING_AQSPI
|
||||
|
||||
`ifdef USING_IQSPI
|
||||
`define INTERFACE_IDX 0//internal spi
|
||||
`define ARRAY_IDX_OFF 3
|
||||
`endif
|
||||
|
||||
`ifdef USING_ESPI
|
||||
`ifdef USING_OSPI
|
||||
`define INTERFACE_IDX (`ALL_DEV_NUM)//internal spi
|
||||
`define ARRAY_IDX_OFF 3
|
||||
`endif
|
||||
|
||||
`ifdef USING_EQSPI
|
||||
`ifdef USING_OQSPI
|
||||
`define INTERFACE_IDX (`ALL_DEV_NUM * 2)//internal spi
|
||||
`define ARRAY_IDX_OFF 3
|
||||
`endif
|
||||
@@ -943,30 +915,6 @@ task wait_comm_finished(input [16:0] dev_idx);
|
||||
st = $realtime;
|
||||
is_run = 1;
|
||||
|
||||
`ifdef enable_wait_clear_int
|
||||
txBuf[0] = 8'h00;
|
||||
txBuf[1] = 8'h78;
|
||||
txBuf[2] = `SPI_WRITE;
|
||||
txBuf[3] = 8'h03;
|
||||
txBuf[4] = 8'h00;
|
||||
txBuf[5] = 8'h00;
|
||||
txBuf[6] = 8'h00;
|
||||
|
||||
length = 8'h07;
|
||||
idx = dev_idx;
|
||||
|
||||
#5
|
||||
@(negedge sck)
|
||||
isReq <= 1;
|
||||
@(posedge sck) #5
|
||||
isReq <= 0;
|
||||
|
||||
@( negedge isBusy) #1000
|
||||
begin
|
||||
|
||||
end
|
||||
`endif
|
||||
|
||||
while (is_run == 1) begin
|
||||
txBuf[0] = 8'h00;
|
||||
txBuf[1] = 8'h74;
|
||||
@@ -1019,162 +967,6 @@ initial begin
|
||||
|
||||
#1000
|
||||
|
||||
`ifdef ENABLE_REG_RW1_TEST
|
||||
/*---------------------------------------------------------------------------------------------------------
|
||||
测试用例
|
||||
1. 从IP中读取寄存器,上电后的寄存器期望值为0
|
||||
---------------------------------------------------------------------------------------------------------*/
|
||||
begin:READ_REG_TESTCASE
|
||||
`BEGIN_TESTCASE(`ENABLE_REG_RW1_TEST);
|
||||
_t_start = $realtime;
|
||||
$fdisplay(spidata_file, "测试用例:从IP中读取寄存器,上电后的寄存器期望值为0");
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(0)) );
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(1)) );
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(2)) );
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(3)) );
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(4)) );
|
||||
_t_end = $realtime;
|
||||
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
|
||||
`END_TESTCASE(`ENABLE_REG_RW1_TEST);
|
||||
end
|
||||
`endif
|
||||
|
||||
begin:SETTING_INTERFACE
|
||||
if ((`INTERFACE_IDX) == `ALL_DEV_NUM) begin
|
||||
$fdisplay(spidata_file, "\n\n从SPI配置使用SPI接口访问EasyBus");
|
||||
txBuf[3] = 8'h01;
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||
end else if ((`INTERFACE_IDX) == (`ALL_DEV_NUM * 2)) begin
|
||||
$fdisplay(spidata_file, "\n\n从SPI配置使用2 QSPI接口访问EasyBus");
|
||||
txBuf[3] = 8'h02;
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||
end else if ((`INTERFACE_IDX) == (`ALL_DEV_NUM * 3)) begin
|
||||
$fdisplay(spidata_file, "\n\n从SPI配置使用ASPI接口访问EasyBus");
|
||||
txBuf[3] = 8'h03;
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||
end else begin
|
||||
$fdisplay(spidata_file, "\n\n从SPI配置使用0 QSPI接口访问EasyBus");
|
||||
txBuf[3] = 8'h00;
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||
end
|
||||
end
|
||||
|
||||
`ifdef ENABLE_INT_INIT_TEST
|
||||
begin:CHECK_INTERRUPT_SIG
|
||||
$fdisplay(spidata_file, "\n\n测试用例:检查设备的INTERRUPT信号");
|
||||
|
||||
@(posedge clock) begin
|
||||
if (io_int_sig[0]) $fdisplay(spidata_file, "**MST Interrupt.");
|
||||
if (io_int_sig[1]) $fdisplay(spidata_file, "**SLV0 Interrupt.");
|
||||
if (io_int_sig[2]) $fdisplay(spidata_file, "**SLV1 Interrupt.");
|
||||
if (io_int_sig[3]) $fdisplay(spidata_file, "**SLV2 Interrupt.");
|
||||
if (io_int_sig[4]) $fdisplay(spidata_file, "**SLV3 Interrupt.");
|
||||
end
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-清中断");
|
||||
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+3] = 8'h80;
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
|
||||
|
||||
end
|
||||
|
||||
begin:CHECK_INTERRUPT_CFG_REG
|
||||
$fdisplay(spidata_file, "\n\n测试用例:检查设备的INTERRUPT信号设置寄存器");
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-设置中断");
|
||||
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-设置中断");
|
||||
txBuf[`ARRAY_IDX_OFF+0] = 8'h0F;
|
||||
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||
|
||||
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+1] = 8'hFF;
|
||||
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
|
||||
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-中断改为脉冲模式");
|
||||
txBuf[`ARRAY_IDX_OFF+0] = 8'h10;
|
||||
txBuf[`ARRAY_IDX_OFF+1] = 8'h8A;
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(4)) );
|
||||
end
|
||||
`endif
|
||||
|
||||
`include "tc_runlist.vh"
|
||||
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
`timescale 1 ns / 1 ps
|
||||
|
||||
`define ENABLE_REG_RW1_TEST "generated/log/reg_rw1_tc.log"
|
||||
|
||||
|
||||
module ShinTopSpiTb(
|
||||
|
||||
);
|
||||
@@ -12,12 +9,13 @@ module ShinTopSpiTb(
|
||||
|
||||
reg [15:0] multiCLK;
|
||||
|
||||
|
||||
`include "dev_predef.vh"
|
||||
|
||||
`ifdef DEFINE_SLAVE_DEVICE
|
||||
`define DEV_NUM 4 //slave num
|
||||
`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master
|
||||
`define SPI_CSN_NUM (`ALL_DEV_NUM * 3)
|
||||
`define SPI_CSN_NUM (`ALL_DEV_NUM * 4)
|
||||
|
||||
`define HW_SERIAL 0 //48'h31303050584c //(48'h4c5850303031)
|
||||
`define IQSPI_PINS(N) (`N*4+3):(`N*4)
|
||||
@@ -61,7 +59,7 @@ module ShinTopSpiTb(
|
||||
wire qspi_sck;
|
||||
wire [3:0] qspi_mosi;
|
||||
//wire [40-1:0] qspi_miso;
|
||||
wire [(`ALL_DEV_NUM * 4 * 2 - 1):0] qspi_miso;
|
||||
wire [(`ALL_DEV_NUM * 4 * 3 - 1):0] qspi_miso;
|
||||
|
||||
integer spidata_file;
|
||||
integer c_line;
|
||||
@@ -135,6 +133,12 @@ ShinTop s_ShinTop_Mst(
|
||||
.io_oqspi_miso(`EQSPI_MISO(0)),
|
||||
.io_oqspi_isDirIn(),
|
||||
.io_oqspi_csn(`EQSPI_CSN(0)),
|
||||
|
||||
.io_aqspi_sck(qspi_sck),
|
||||
.io_aqspi_mosi(qspi_mosi),
|
||||
.io_aqspi_miso(`AQSPI_MISO(0)),
|
||||
.io_aqspi_isDirIn(),
|
||||
.io_aqspi_csn(`AQSPI_CSN(0)),
|
||||
|
||||
.io_isSoftReset(isSoftReset[0]),
|
||||
.io_interrupt(io_int_sig[0]),
|
||||
@@ -375,6 +379,11 @@ initial begin
|
||||
#8000000000000
|
||||
#8000000000000
|
||||
|
||||
`ifdef USING_OSPI
|
||||
#8000000000000
|
||||
#8000000000000
|
||||
`endif
|
||||
|
||||
$display("Time Out !!!");
|
||||
$fclose(spidata_file);
|
||||
//$stop;
|
||||
@@ -599,7 +608,23 @@ always @(posedge sck) begin
|
||||
end else begin
|
||||
bitCnt <= bitCnt + 1;
|
||||
end
|
||||
|
||||
if ( idx >= (`ALL_DEV_NUM * 3) ) begin
|
||||
if( &bitCnt ) begin
|
||||
byteCnt <= byteCnt +1;
|
||||
transCnt <= transCnt + 1;
|
||||
if( (txBuf[2] & 8'h80) === 8'h80 & nextByteCnt >= 5) begin
|
||||
rxBuf[byteCnt] <= exChangeRegi;
|
||||
//$display("spi read out %x", exChangeRegi);
|
||||
end
|
||||
if( (txBuf[2] & 8'h80) === 8'h80 & nextByteCnt >= 4) begin
|
||||
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
||||
end else begin
|
||||
exChangeRegi <= 0;
|
||||
end
|
||||
end else begin
|
||||
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
||||
end
|
||||
end else begin
|
||||
if( &bitCnt ) begin
|
||||
byteCnt <= byteCnt +1;
|
||||
transCnt <= transCnt + 1;
|
||||
@@ -615,6 +640,7 @@ always @(posedge sck) begin
|
||||
end else begin
|
||||
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
||||
end
|
||||
end
|
||||
end else begin
|
||||
isBusy <= #500000 1'b0;
|
||||
spi_csn[idx] <= #500000 1'b1;
|
||||
@@ -631,9 +657,15 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength, i
|
||||
begin
|
||||
txBuf[0] <= saddress[15:8];
|
||||
txBuf[1] <= saddress[7:0];
|
||||
txBuf[2] <= scmd;
|
||||
if (sidx >=(`ALL_DEV_NUM * 3)) begin
|
||||
txBuf[2] <= (scmd | slength[12:8]);
|
||||
txBuf[3] <= slength[7:0];
|
||||
length <= slength + 4;
|
||||
end else begin
|
||||
txBuf[2] <= scmd;
|
||||
length <= slength + 3;
|
||||
end
|
||||
|
||||
length <= slength + 3;
|
||||
idx <= sidx;
|
||||
|
||||
#500000
|
||||
@@ -645,9 +677,17 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength, i
|
||||
@( negedge isBusy) #100000000
|
||||
begin
|
||||
//$fwrite(spidata_file, "------------%5t------------\n", $realtime);
|
||||
$fwrite(spidata_file, "T:%t \tdev:%4d, addr:0x%02h%02h, %s, len:%4d\n",
|
||||
$realtime, ((sidx >= `ALL_DEV_NUM)? ((sidx >= (`ALL_DEV_NUM * 2))? (sidx - (`ALL_DEV_NUM * 2)):(sidx - `ALL_DEV_NUM)):sidx), txBuf[0], txBuf[1],
|
||||
((txBuf[2] == 0)? "Write":" Read"), slength);
|
||||
$fwrite(spidata_file, "T:%t \tdev:%4d(%4d), addr:0x%02h%02h, %s, len:%4d (0x%02h%02h)\n",
|
||||
$realtime,
|
||||
sidx % (`ALL_DEV_NUM), sidx,
|
||||
txBuf[0],
|
||||
txBuf[1],
|
||||
(((txBuf[2] & 8'h80) == 0)? "Write":" Read"),
|
||||
slength,
|
||||
txBuf[2], txBuf[3]);
|
||||
|
||||
if (sidx >=(`ALL_DEV_NUM * 3)) begin _pos = 4; end
|
||||
else begin _pos = 3; end
|
||||
|
||||
if ( ((saddress == 16'h0800)
|
||||
|| (saddress == 16'h1000)
|
||||
@@ -656,9 +696,15 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength, i
|
||||
|| (saddress == 16'h2800)
|
||||
|| (saddress == 16'h3000)
|
||||
|| (saddress == 16'h3800)
|
||||
|| (saddress == 16'h4000))
|
||||
&& ((sidx == 0) || (sidx == `ALL_DEV_NUM) || (sidx == (`ALL_DEV_NUM * 2)))) begin
|
||||
_pos = 3;
|
||||
|| (saddress == 16'h4000)
|
||||
)
|
||||
&& ((sidx == 0)
|
||||
|| (sidx == `ALL_DEV_NUM)
|
||||
|| (sidx == (`ALL_DEV_NUM * 2))
|
||||
|| (sidx == (`ALL_DEV_NUM * 3))
|
||||
)
|
||||
) begin
|
||||
|
||||
for (integer _k = 0; _k < 4; _k++) begin
|
||||
if (scmd == 0) begin
|
||||
$fwrite(spidata_file, "%02h ", txBuf[_k + _pos]);
|
||||
@@ -741,9 +787,9 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength, i
|
||||
end else begin
|
||||
for (integer i=0; i<slength; i++) begin
|
||||
if (scmd == 0) begin
|
||||
$fwrite(spidata_file, "%02h ", txBuf[i + 3]);
|
||||
$fwrite(spidata_file, "%02h ", txBuf[i + _pos]);
|
||||
end else begin
|
||||
$fwrite(spidata_file, "%02h ", rxBuf[i + 3]);
|
||||
$fwrite(spidata_file, "%02h ", rxBuf[i + _pos]);
|
||||
end
|
||||
c_line = 0;
|
||||
if ((i+1)%16 == 0) begin
|
||||
@@ -820,12 +866,35 @@ always @(negedge io_int_sig[4]) begin
|
||||
$fdisplay(spidata_file, "**SLV3 INT CLEAR: %t", $realtime);
|
||||
end
|
||||
|
||||
//`define USING_IQSPI
|
||||
//`define USING_OSPI
|
||||
//`define USING_OQSPI
|
||||
//`define USING_AQSPI
|
||||
|
||||
`ifdef USING_IQSPI
|
||||
`define INTERFACE_IDX 0//internal spi
|
||||
`define ARRAY_IDX_OFF 3
|
||||
`endif
|
||||
|
||||
`ifdef USING_OSPI
|
||||
`define INTERFACE_IDX (`ALL_DEV_NUM)//internal spi
|
||||
`define ARRAY_IDX_OFF 3
|
||||
`endif
|
||||
|
||||
`ifdef USING_OQSPI
|
||||
`define INTERFACE_IDX (`ALL_DEV_NUM * 2)//internal spi
|
||||
`define ARRAY_IDX_OFF 3
|
||||
`endif
|
||||
|
||||
`ifdef USING_AQSPI
|
||||
`define INTERFACE_IDX (`ALL_DEV_NUM * 3)//internal spi
|
||||
`define ARRAY_IDX_OFF 4
|
||||
`endif
|
||||
|
||||
`define INTERFACE_IDX 0 //internal spi
|
||||
`define IF_IDX(idx) ((`INTERFACE_IDX)+(idx))
|
||||
`define IF_IQSPI(idx) ((idx))
|
||||
`define IF_OQSPI(idx) ((`ALL_DEV_NUM * 2) + (idx))
|
||||
`define IF_AQSPI(idx) ((`ALL_DEV_NUM * 3) + (idx))
|
||||
`define IF_OSPI(idx) ((`ALL_DEV_NUM) + (idx))
|
||||
`define SPI_WRITE 8'h00
|
||||
`define SPI_READ 8'h80
|
||||
@@ -865,14 +934,14 @@ end
|
||||
if (cmd == (`SPI_WRITE)) begin \
|
||||
f_write(logh, addr, cmd, len);\
|
||||
for (integer _k = 0; _k < len; _k++) begin \
|
||||
$fwrite(logh, "8'h%02h ", txBuf[3 + _k]); \
|
||||
$fwrite(logh, "8'h%02h ", txBuf[`ARRAY_IDX_OFF + _k]); \
|
||||
end \
|
||||
spi_trans(addr, cmd, len, iface); \
|
||||
end else begin \
|
||||
spi_trans(addr, cmd, len, iface); \
|
||||
f_write(logh, addr, cmd, len);\
|
||||
for (integer _k = 0; _k < len; _k++) begin \
|
||||
$fwrite(logh, "8'h%02h ", rxBuf[3 + _k]); \
|
||||
$fwrite(logh, "8'h%02h ", rxBuf[`ARRAY_IDX_OFF + _k]); \
|
||||
end \
|
||||
end \
|
||||
$fwrite(logh, "\n")
|
||||
@@ -892,37 +961,22 @@ task wait_comm_finished(input [16:0] dev_idx);
|
||||
st = $realtime;
|
||||
is_run = 1;
|
||||
|
||||
`ifdef enable_wait_clear_int
|
||||
txBuf[0] = 8'h00;
|
||||
txBuf[1] = 8'h78;
|
||||
txBuf[2] = `SPI_WRITE;
|
||||
txBuf[3] = 8'h03;
|
||||
txBuf[4] = 8'h00;
|
||||
txBuf[5] = 8'h00;
|
||||
txBuf[6] = 8'h00;
|
||||
|
||||
length = 8'h07;
|
||||
idx = `IF_IQSPI(dev_idx);
|
||||
|
||||
#500000
|
||||
@(negedge sck)
|
||||
isReq <= 1;
|
||||
@(posedge sck) #500000
|
||||
isReq <= 0;
|
||||
|
||||
@( negedge isBusy) #100000000
|
||||
begin
|
||||
|
||||
end
|
||||
`endif
|
||||
|
||||
while (is_run == 1) begin
|
||||
txBuf[0] = 8'h00;
|
||||
txBuf[1] = 8'h74;
|
||||
txBuf[2] = `SPI_READ;
|
||||
if (dev_idx >=(`ALL_DEV_NUM * 3)) begin
|
||||
txBuf[2] <= (`SPI_READ | 8'h0);
|
||||
txBuf[3] <= 8'h04;
|
||||
length = 8'h08;
|
||||
//$display("using AQspi");
|
||||
end else begin
|
||||
txBuf[2] <= `SPI_READ;
|
||||
length = 8'h07;
|
||||
//$display("using iqspi");
|
||||
end
|
||||
|
||||
length = 8'h07;
|
||||
idx = `IF_IQSPI(dev_idx);
|
||||
|
||||
idx = dev_idx;
|
||||
|
||||
#500000
|
||||
@(negedge sck)
|
||||
@@ -936,11 +990,11 @@ task wait_comm_finished(input [16:0] dev_idx);
|
||||
end
|
||||
#100000000
|
||||
//$display("%x %x", rxBuf[3], rxBuf[6]);
|
||||
if ((rxBuf[3] & 8'h02) == 8'h02)
|
||||
if ((rxBuf[`ARRAY_IDX_OFF] & 8'h02) == 8'h02)
|
||||
begin
|
||||
is_run = 0;
|
||||
end
|
||||
if ((rxBuf[6] & 8'h60) != 8'h00)
|
||||
if ((rxBuf[`ARRAY_IDX_OFF+3] & 8'h60) != 8'h00)
|
||||
begin
|
||||
$display("error occur");
|
||||
is_run = 0;
|
||||
@@ -959,154 +1013,6 @@ initial begin
|
||||
|
||||
#50000000
|
||||
|
||||
`ifdef ENABLE_REG_RW1_TEST
|
||||
/*---------------------------------------------------------------------------------------------------------
|
||||
测试用例
|
||||
1. 从IP中读取寄存器,上电后的寄存器期望值为0
|
||||
---------------------------------------------------------------------------------------------------------*/
|
||||
begin:READ_REG_TESTCASE
|
||||
`BEGIN_TESTCASE(`ENABLE_REG_RW1_TEST);
|
||||
_t_start = $realtime;
|
||||
$fdisplay(spidata_file, "测试用例:从IP中读取寄存器,上电后的寄存器期望值为0");
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(0)) );
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(1)) );
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(2)) );
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(3)) );
|
||||
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(4)) );
|
||||
_t_end = $realtime;
|
||||
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
|
||||
`END_TESTCASE(`ENABLE_REG_RW1_TEST);
|
||||
end
|
||||
`endif
|
||||
|
||||
begin:SETTING_INTERFACE
|
||||
if ((`INTERFACE_IDX) == `ALL_DEV_NUM) begin
|
||||
$fdisplay(spidata_file, "\n\n从内部QSPI配置使用外部的SPI接口访问EasyBus");
|
||||
txBuf[0+3] = 8'h01;
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||
end else if ((`INTERFACE_IDX) == (`ALL_DEV_NUM * 2)) begin
|
||||
$fdisplay(spidata_file, "\n\n从内部QSPI配置使用外部的QSPI接口访问EasyBus");
|
||||
txBuf[0+3] = 8'h02;
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||
end else begin
|
||||
$fdisplay(spidata_file, "\n\n从内部QSPI接口访问EasyBus");
|
||||
txBuf[0+3] = 8'h00;
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
|
||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||
end
|
||||
end
|
||||
|
||||
`ifdef ENABLE_INT_INIT_TEST
|
||||
begin:CHECK_INTERRUPT_SIG
|
||||
$fdisplay(spidata_file, "\n\n测试用例:检查设备的INTERRUPT信号");
|
||||
|
||||
@(posedge clock) begin
|
||||
if (io_int_sig[0]) $fdisplay(spidata_file, "**MST Interrupt.");
|
||||
if (io_int_sig[1]) $fdisplay(spidata_file, "**SLV0 Interrupt.");
|
||||
if (io_int_sig[2]) $fdisplay(spidata_file, "**SLV1 Interrupt.");
|
||||
if (io_int_sig[3]) $fdisplay(spidata_file, "**SLV2 Interrupt.");
|
||||
if (io_int_sig[4]) $fdisplay(spidata_file, "**SLV3 Interrupt.");
|
||||
end
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-清中断");
|
||||
txBuf[0+3] = 8'h00;
|
||||
txBuf[1+3] = 8'h00;
|
||||
txBuf[2+3] = 8'h00;
|
||||
txBuf[3+3] = 8'h80;
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
|
||||
|
||||
end
|
||||
|
||||
begin:CHECK_INTERRUPT_CFG_REG
|
||||
$fdisplay(spidata_file, "\n\n测试用例:检查设备的INTERRUPT信号设置寄存器");
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-设置中断");
|
||||
txBuf[0+3] = 8'h00;
|
||||
txBuf[1+3] = 8'h00;
|
||||
txBuf[2+3] = 8'h00;
|
||||
txBuf[3+3] = 8'h00;
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-设置中断");
|
||||
txBuf[0+3] = 8'h0F;
|
||||
txBuf[1+3] = 8'h00;
|
||||
txBuf[2+3] = 8'h00;
|
||||
txBuf[3+3] = 8'h00;
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||
|
||||
txBuf[0+3] = 8'h00;
|
||||
txBuf[1+3] = 8'hFF;
|
||||
txBuf[2+3] = 8'h00;
|
||||
txBuf[3+3] = 8'h00;
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-检查中断");
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||
|
||||
$fdisplay(spidata_file, "-中断改为脉冲模式");
|
||||
txBuf[3] = 8'h10;
|
||||
txBuf[4] = 8'h8A;
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(0)) );
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(1)) );
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(2)) );
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(3)) );
|
||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(4)) );
|
||||
end
|
||||
`endif
|
||||
|
||||
`include "tc_runlist.vh"
|
||||
|
||||
|
||||
@@ -10,18 +10,20 @@ if __name__ == '__main__':
|
||||
|
||||
# 可选参数
|
||||
parser.add_argument("-8b10b", action="store_true", dest="use_8b10b", default=False, help="使用8b10b编码")
|
||||
|
||||
parser.add_argument("-spi", dest="spi_type", type=int, default=0, help="选择SPI,0:ISPI;1:OSPI;2:OQSPI;3:AQSPI")
|
||||
# 解析参数
|
||||
args = parser.parse_args()
|
||||
|
||||
#if args.use_8b10b:
|
||||
# add_tc_2_runlist(rwregs.tc1())
|
||||
#print(args.spi_type)
|
||||
environment.set_spi_interface(args.spi_type)
|
||||
environment.set_using_8b10b(args.use_8b10b)
|
||||
|
||||
environment.gen_slv_dev_num(4)
|
||||
environment.set_using_8b10b(args.use_8b10b)
|
||||
environment.bringup()
|
||||
|
||||
'''
|
||||
#'''
|
||||
add_tc_2_runlist(errorPkt.tc1())
|
||||
add_tc_2_runlist(errorPkt.tc2())
|
||||
add_tc_2_runlist(errorPkt.tc3())
|
||||
@@ -62,13 +64,13 @@ if __name__ == '__main__':
|
||||
add_tc_2_runlist(errorPkt.tc38())
|
||||
#'''
|
||||
|
||||
'''
|
||||
#'''
|
||||
add_tc_2_runlist(rwregs.tc1())
|
||||
add_tc_2_runlist(rwregs.tc2())
|
||||
add_tc_2_runlist(rwregs.tc3())
|
||||
#'''
|
||||
|
||||
'''
|
||||
#'''
|
||||
add_tc_2_runlist(base.tc1())
|
||||
add_tc_2_runlist(base.tc2())
|
||||
add_tc_2_runlist(base.tc3())
|
||||
@@ -76,7 +78,11 @@ if __name__ == '__main__':
|
||||
add_tc_2_runlist(base.tc5())
|
||||
add_tc_2_runlist(base.tc6())
|
||||
add_tc_2_runlist(base.tc7())
|
||||
#'''
|
||||
|
||||
add_tc_2_runlist(base.tc8())
|
||||
|
||||
#'''
|
||||
add_tc_2_runlist(base.tc9())
|
||||
add_tc_2_runlist(base.tc10())
|
||||
add_tc_2_runlist(base.tc11())
|
||||
@@ -102,13 +108,13 @@ if __name__ == '__main__':
|
||||
add_tc_2_runlist(base.tc31())
|
||||
#'''
|
||||
|
||||
'''
|
||||
#'''
|
||||
add_tc_2_runlist(broadcast.tc1())
|
||||
add_tc_2_runlist(broadcast.tc2())
|
||||
add_tc_2_runlist(broadcast.tc3())
|
||||
#'''
|
||||
|
||||
'''
|
||||
#'''
|
||||
add_tc_2_runlist(sync.tc1())
|
||||
add_tc_2_runlist(sync.tc2())
|
||||
add_tc_2_runlist(sync.tc3())
|
||||
@@ -119,7 +125,7 @@ if __name__ == '__main__':
|
||||
#'''
|
||||
#add_tc_2_runlist(sync.tc8())
|
||||
|
||||
'''
|
||||
#'''
|
||||
add_tc_2_runlist(ebmmu.tc1())
|
||||
add_tc_2_runlist(ebmmu.tc2())
|
||||
add_tc_2_runlist(ebmmu.tc3())
|
||||
|
||||
@@ -14,6 +14,7 @@ if __name__ == '__main__':
|
||||
parser.add_argument("-d3", "--dev3", nargs=2, type=int, default=[0, 0], help="相位(度)、频率偏差ppm")
|
||||
parser.add_argument("-d4", "--dev4", nargs=2, type=int, default=[0, 0], help="相位(度)、频率偏差ppm")
|
||||
parser.add_argument("-8b10b", action="store_true", dest="use_8b10b", default=False, help="使用8b10b编码")
|
||||
parser.add_argument("-spi", dest="spi_type", type=int, default=0, help="选择SPI,0:ISPI;1:OSPI;2:OQSPI;3:AQSPI")
|
||||
|
||||
# 解析参数
|
||||
args = parser.parse_args()
|
||||
@@ -32,8 +33,11 @@ if __name__ == '__main__':
|
||||
dev_clk_info[4] = args.dev4
|
||||
|
||||
environment.set_dev_clk(dev_clk_info)
|
||||
environment.set_spi_interface(args.spi_type)
|
||||
environment.set_using_8b10b(args.use_8b10b)
|
||||
|
||||
environment.gen_slv_dev_for_clk(4)
|
||||
|
||||
environment.bringup()
|
||||
|
||||
if args.use_8b10b:
|
||||
|
||||
@@ -270,18 +270,24 @@ def genCheckInsertTimeCode(wlog=True, dev_idx=0):
|
||||
+ '''%s( (16'h24), (`SPI_READ), (2), (`IF_IDX(%d)) ); //检查替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx)
|
||||
|
||||
|
||||
def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None, wlog=True, iface=5):
|
||||
spi_api="IF_IQSPI"
|
||||
def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None, wlog=True, iface=4):
|
||||
spi_api="IF_IDX"
|
||||
spi_offset = "`ARRAY_IDX_OFF"
|
||||
if iface == 0:
|
||||
spi_api = "IF_IQSPI"
|
||||
spi_offset = "3"
|
||||
elif iface == 1:
|
||||
spi_api = "IF_OSPI"
|
||||
spi_offset = "3"
|
||||
elif iface == 2:
|
||||
spi_api = "IF_OQSPI"
|
||||
spi_offset = "3"
|
||||
elif iface == 3:
|
||||
spi_api = "IF_AQSPI"
|
||||
spi_offset = "4"
|
||||
else:
|
||||
spi_api = "IF_IDX"
|
||||
spi_offset = "`ARRAY_IDX_OFF"
|
||||
|
||||
if isWrite == True:
|
||||
if (data == None) or (len(data) == 0):
|
||||
@@ -290,7 +296,7 @@ def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None, wlog=Tr
|
||||
code = ''
|
||||
idx = 0
|
||||
for item in data:
|
||||
code = code + '''txBuf[`ARRAY_IDX_OFF+%d]=8'h%02x;\n'''%(idx, item & 0xff)
|
||||
code = code + '''txBuf[%s+%d]=8'h%02x;\n'''%(spi_offset, idx, item & 0xff)
|
||||
idx = idx + 1
|
||||
|
||||
code = code + '''%s( (16'h%04x), (`SPI_WRITE), (%d), (`%s(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", addr, data_len, spi_api, dev)
|
||||
|
||||
@@ -508,10 +508,10 @@ def tc8():
|
||||
+genIFRwDataCode(2, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
||||
|
||||
+"\n#5000\n"
|
||||
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+genIFRwDataCode(2, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(0)
|
||||
+using_proper_transcode(2)
|
||||
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
#+genIFRwDataCode(2, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(0)
|
||||
+using_proper_workmode(2)
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
@@ -2118,10 +2118,10 @@ def tc28():
|
||||
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
||||
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
||||
+"#5000"
|
||||
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(0)
|
||||
+using_proper_transcode(4)
|
||||
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(0)
|
||||
+using_proper_workmode(4)
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
@@ -2334,10 +2334,10 @@ def tc28():
|
||||
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
||||
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
||||
+"#5000"
|
||||
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(0)
|
||||
+using_proper_transcode(4)
|
||||
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(0)
|
||||
+using_proper_workmode(4)
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
@@ -2626,8 +2626,8 @@ def tc31():
|
||||
+genMessageCode("--复位4号设备")
|
||||
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
||||
+"#5000"
|
||||
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(4)
|
||||
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(4)
|
||||
+genIFRwDataCode(4, 0x0, True, 1, [1, ])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
#+genEnableInsertTimeCode(0xa)
|
||||
@@ -2824,8 +2824,8 @@ def tc31():
|
||||
+"#100000\n"
|
||||
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
||||
+"#5000\n"
|
||||
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(0)
|
||||
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(0)
|
||||
+genIFRwDataCode(0, 0x0, True, 1, [1, ])
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(0, 0x7c, True, 2, [0x10, 0x80])
|
||||
@@ -3008,8 +3008,8 @@ def tc31():
|
||||
genPkt.addBeforeExc(genMessageCode("--恢复系统")
|
||||
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
|
||||
+"#5000"
|
||||
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(4)
|
||||
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(4)
|
||||
+genIFRwDataCode(4, 0x00, True, 1, [2, ])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
@@ -4,6 +4,7 @@ from pyutils import *
|
||||
global_dev_num = 4
|
||||
global_setting_dev_clk = dict()
|
||||
global_using_8b10b = False
|
||||
global_spi_type = 0
|
||||
|
||||
def bringup():
|
||||
gen_file_def = "sys_bringup"
|
||||
@@ -17,6 +18,13 @@ def bringup():
|
||||
genPkt.clean()
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--设置合适的工作模式:底层编码4b5b or 8b10b/设置CDR/SPI接口")
|
||||
+using_proper_workmode(0)
|
||||
+using_proper_workmode(1)
|
||||
+using_proper_workmode(2)
|
||||
+using_proper_workmode(3)
|
||||
+using_proper_workmode(4)
|
||||
|
||||
+genMessageCode("--读取中断状态")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
@@ -29,12 +37,6 @@ def bringup():
|
||||
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genMessageCode("--设置合适的底层编码4b5b or 8b10b")
|
||||
+using_proper_transcode(0)
|
||||
+using_proper_transcode(1)
|
||||
+using_proper_transcode(2)
|
||||
+using_proper_transcode(3)
|
||||
+using_proper_transcode(4)
|
||||
)
|
||||
|
||||
main_dev = [0x01, ]
|
||||
@@ -265,11 +267,24 @@ def __GenDevice(id, TerminateNode = False):
|
||||
def __gen_slv_dev_predef(num):
|
||||
|
||||
global global_setting_dev_clk
|
||||
global global_spi_type
|
||||
|
||||
code_for_clk = ""
|
||||
for k in global_setting_dev_clk:
|
||||
code_for_clk = code_for_clk + "reg [15:0] multiCLK%d;\n"%(k, )
|
||||
|
||||
code_predef =("`define DEV_NUM %d //slave num\n"%(num, )
|
||||
|
||||
spi_type_str = "USING_IQSPI"
|
||||
if global_spi_type == 1:
|
||||
spi_type_str = "USING_OSPI"
|
||||
elif global_spi_type == 2:
|
||||
spi_type_str = "USING_OQSPI"
|
||||
elif global_spi_type == 3:
|
||||
spi_type_str = "USING_AQSPI"
|
||||
else:
|
||||
spi_type_str = "USING_IQSPI"
|
||||
|
||||
code_predef =("`define %s \n"%(spi_type_str, )
|
||||
+"`define DEV_NUM %d //slave num\n"%(num, )
|
||||
+"`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master\n"
|
||||
+"`define SPI_CSN_NUM (`ALL_DEV_NUM * 4)\n\n"
|
||||
|
||||
@@ -427,16 +442,23 @@ def teardown():
|
||||
#add_tc_2_runlist("")
|
||||
pass
|
||||
|
||||
def set_spi_interface(spi_type):
|
||||
global global_spi_type
|
||||
global_spi_type = spi_type
|
||||
|
||||
def set_using_8b10b(isUsing8b10b):
|
||||
global global_using_8b10b
|
||||
global_using_8b10b = isUsing8b10b
|
||||
|
||||
def using_proper_transcode(dev):
|
||||
def using_proper_workmode(dev, iface=1):
|
||||
global global_using_8b10b
|
||||
global global_spi_type
|
||||
|
||||
trans_code = 0x0
|
||||
|
||||
if global_using_8b10b:
|
||||
return genIFRwDataCode(dev, 0x004c, True, 2, [0x1, 0x59], wlog = False)
|
||||
else:
|
||||
return genIFRwDataCode(dev, 0x004c, True, 2, [0x0, 0x59], wlog = False)
|
||||
trans_code = 0x1
|
||||
|
||||
return genIFRwDataCode(dev, 0x09, True, 1, [global_spi_type, ], wlog=False, iface=iface)+genIFRwDataCode(dev, 0x004c, True, 2, [trans_code, 0x59], wlog = False)
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ def tc1():
|
||||
|
||||
default_trans_code = ""
|
||||
for i in range(dev_num + 1):
|
||||
default_trans_code = default_trans_code + using_proper_transcode(i)
|
||||
default_trans_code = default_trans_code + using_proper_workmode(i, iface = 4)
|
||||
|
||||
genPkt.addAfterExc(genMessageCode("--正确的key")
|
||||
+change_8b10b_code1
|
||||
|
||||
@@ -833,8 +833,8 @@ def tc5():
|
||||
+genIFRwDataCode(2, 0xc0, False, 4)
|
||||
+genIFRwDataCode(3, 0xc0, False, 4)
|
||||
|
||||
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(4)
|
||||
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(4)
|
||||
+genIFRwDataCode(4, 0x00, True, 1, [0x2, ])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
|
||||
@@ -1337,8 +1337,8 @@ def tc7():
|
||||
sm_idx = 1
|
||||
|
||||
genPkt.addBeforeExc("\n#5000\n"
|
||||
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(0)
|
||||
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(0)
|
||||
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
#+genIFRwDataCode(0, 0x40, False, 4)
|
||||
@@ -1770,15 +1770,15 @@ def tc8():
|
||||
sm_idx = 1
|
||||
|
||||
genPkt.addBeforeExc("\n#5000\n"
|
||||
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(0)
|
||||
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(0)
|
||||
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(0, 0x00, True, 1, [0x1, ])
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
|
||||
+genIFRwDataCode(1, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(1)
|
||||
#+genIFRwDataCode(1, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(1)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x00, True, 1, [0x2, ])
|
||||
|
||||
@@ -1862,8 +1862,8 @@ def tc8():
|
||||
sm_idx = 1
|
||||
|
||||
genPkt.addBeforeExc("\n#5000\n"
|
||||
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_transcode(0)
|
||||
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
+using_proper_workmode(0)
|
||||
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
#+genIFRwDataCode(0, 0x40, False, 4)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
16'h030e 8'h00 16'h0002 8'h94 8'h00
|
||||
16'h2000 8'h00 16'h0094 8'h09 8'h00 8'h00 8'h00 8'h00 8'h04 8'h00 8'h00 8'h00 8'h40 8'h00 8'h01 8'h02 8'h03 8'h04 8'h05 8'h06 8'h07 8'h08 8'h09 8'h0a 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h00 8'h00 8'h00 8'h0c 8'h00 8'hc0 8'h00 8'h40 8'h00 8'h01 8'h02 8'h03 8'h04 8'h05 8'h06 8'h07 8'h08 8'h09 8'h0a 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h0b
|
||||
16'h1800 8'h80 16'h0094 8'h09 8'h00 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'h00 8'h40 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h0c 8'h00 8'hc0 8'h00 8'h40 8'h08 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01
|
||||
16'h1800 8'h80 16'h0094 8'h09 8'h00 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'h00 8'h40 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h0c 8'h00 8'hc0 8'h00 8'h40 8'h08 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01
|
||||
16'h0074 8'h80 16'h0004 8'h03 8'h00 8'h06 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
16'h0316 8'h00 16'h0002 8'h8c 8'h00
|
||||
16'h3000 8'h00 16'h008c 8'h08 8'h80 8'h00 8'h00 8'h00 8'h04 8'h00 8'h00 8'hd0 8'h80 8'h00 8'h01 8'h02 8'h03 8'h04 8'h05 8'h06 8'h07 8'h08 8'h09 8'h0a 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h44 8'h45 8'h46 8'h47 8'h48 8'h49 8'h4a 8'h4b 8'h4c 8'h4d 8'h4e 8'h4f 8'h50 8'h51 8'h52 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'h73 8'h74 8'h75 8'h76 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'h7d 8'h7e 8'h7f 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h15
|
||||
16'h2800 8'h80 16'h008c 8'h08 8'h80 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'hd0 8'h80 8'h02 8'h01 8'h4e 8'h5b 8'h54 8'h35 8'h36 8'h37 8'h5d 8'h09 8'h0f 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h7c 8'h75 8'h46 8'hc7 8'h5d 8'h4d 8'h4a 8'h4b 8'hxx 8'h4d 8'h4e 8'h4f 8'h50 8'hd7 8'hd7 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'hf3 8'h74 8'h75 8'h77 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'hfd 8'h7e 8'h7f 8'h00 8'h04
|
||||
16'h2800 8'h80 16'h008c 8'h08 8'h80 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'hd0 8'h80 8'h02 8'h01 8'h4e 8'h5b 8'h54 8'h35 8'h36 8'h37 8'h5d 8'hxx 8'h0f 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h7c 8'h75 8'h46 8'hc7 8'h5d 8'h4d 8'h4a 8'h4b 8'hxx 8'h4d 8'h4e 8'h4f 8'h50 8'hd7 8'hd7 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'hf3 8'h74 8'h75 8'h77 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'hfd 8'h7e 8'h7f 8'h00 8'h04
|
||||
16'h0074 8'h80 16'h0004 8'h03 8'h00 8'h06 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
16'h0306 8'h00 16'h0002 8'h8c 8'h00
|
||||
16'h1000 8'h00 16'h008c 8'h08 8'h80 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h80 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h01
|
||||
16'h0800 8'h80 16'h008c 8'h08 8'h80 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h80 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h3c 8'h31 8'h00 8'h80 8'h15 8'h05 8'h00 8'h00 8'hxx 8'h00 8'h00 8'h00 8'h00 8'h87 8'h87 8'h00 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'hf0 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h10 8'h80 8'h00 8'h00 8'h00 8'h01
|
||||
16'h0800 8'h80 16'h008c 8'h08 8'h80 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h80 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h3c 8'h31 8'h00 8'h80 8'h15 8'h05 8'h00 8'h00 8'hxx 8'h00 8'h00 8'h00 8'h00 8'h87 8'h87 8'h00 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'hf0 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h10 8'h80 8'h00 8'h00 8'h00 8'h01
|
||||
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
|
||||
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
|
||||
16'h007c 8'h00 16'h0002 8'h00 8'h81
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
16'h0306 8'h00 16'h0002 8'h64 8'h00
|
||||
16'h1000 8'h00 16'h0064 8'h06 8'h00 8'h00 8'h00 8'h00 8'h04 8'h00 8'h00 8'h00 8'h10 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h08 8'h00 8'h00 8'h00 8'h10 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h0c 8'h00 8'h00 8'h00 8'h10 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h10 8'h00 8'h00 8'h00 8'h10 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h01
|
||||
16'h0800 8'h80 16'h0064 8'h06 8'h00 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h08 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h0c 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h03 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h10 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01
|
||||
16'h0800 8'h80 16'h0064 8'h06 8'h00 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h08 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h0c 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h03 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h10 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01
|
||||
16'h0074 8'h80 16'h0004 8'h03 8'h00 8'h06 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
@@ -43,7 +43,7 @@
|
||||
16'h0306 8'h00 16'h0002 8'h4c 8'h00
|
||||
16'h1000 8'h00 16'h004c 8'h04 8'h80 8'h00 8'h00 8'h80 8'h02 8'h00 8'h00 8'h00 8'h40 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h01
|
||||
16'h0800 8'h80 16'h004c 8'h04 8'h80 8'h00 8'h04 8'h80 8'h02 8'h00 8'h00 8'h00 8'h40 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h03 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h04
|
||||
16'h0800 8'h80 16'h004c 8'h04 8'h80 8'h00 8'h04 8'h80 8'h02 8'h00 8'h00 8'h00 8'h40 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h03 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h04
|
||||
16'h0074 8'h80 16'h0004 8'h03 8'h00 8'h06 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
16'h0306 8'h00 16'h0002 8'h64 8'h00
|
||||
16'h1000 8'h00 16'h0064 8'h06 8'h00 8'h00 8'h00 8'h40 8'h02 8'h00 8'h00 8'h00 8'h58 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h01
|
||||
16'h0800 8'h80 16'h0064 8'h06 8'h00 8'h00 8'h04 8'h40 8'h02 8'h00 8'h00 8'h00 8'h58 8'h00 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h0a 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h14 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h1e 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h01 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h02 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h03 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h04 8'h00 8'h00 8'h04
|
||||
16'h0800 8'h80 16'h0064 8'h06 8'h00 8'h00 8'h04 8'h40 8'h02 8'h00 8'h00 8'h00 8'h58 8'h00 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h0a 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h14 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h1e 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h01 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h02 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h03 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h04 8'h00 8'h00 8'h04
|
||||
16'h0074 8'h80 16'h0004 8'h03 8'h00 8'h06 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
|
||||
@@ -24,7 +24,7 @@ x
|
||||
16'h0306 8'h00 16'h0002 8'h2c 8'h00
|
||||
16'h1000 8'h00 16'h002c 8'h02 8'h80 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h20 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h01
|
||||
16'h0800 8'h80 16'h002c 8'h02 8'h80 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h20 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h07 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h03
|
||||
16'h0800 8'h80 16'h002c 8'h02 8'h80 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h20 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h07 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h03
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h01 8'h20
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
|
||||
@@ -41,7 +41,7 @@ x
|
||||
16'h0306 8'h00 16'h0002 8'h2c 8'h00
|
||||
16'h1000 8'h00 16'h002c 8'h02 8'h80 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h20 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h01
|
||||
16'h0800 8'h80 16'h002c 8'h02 8'h80 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h20 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h07 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h04
|
||||
16'h0800 8'h80 16'h002c 8'h02 8'h80 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h20 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h07 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h04
|
||||
16'h0022 8'h80 16'h0002 8'h00 8'h00
|
||||
16'h0022 8'h00 16'h0002 8'hff 8'hff
|
||||
16'h0022 8'h80 16'h0002 8'h00 8'h00
|
||||
|
||||
Reference in New Issue
Block a user