From 1da52db74603706a9835ac2fca5d0e086865ab7c Mon Sep 17 00:00:00 2001 From: bacon Date: Fri, 18 Jul 2025 17:54:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0encryption=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B,=E4=BD=86=E6=98=AF=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E5=B7=A5=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/ShinTopSpiTb.v | 52 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 7f75ab2..5dcb765 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -1,13 +1,14 @@ `timescale 1 ns / 1 ps `define ENABLE_REG_RW_TEST +`define ENABLE_ENCRYPTION `define ENABLE_DET_TEST `define ENABLE_SET_ADDR_TEST `define ENABLE_INT_INIT_TEST `define ENABLE_DET_ERR_TEST `define ENABLE_SM1_SEND_TEST //`define ENABLE_SMx_SEND_TEST -`define ENABLE_ERR_PKT1_TEST +//`define ENABLE_ERR_PKT1_TEST //`define ENABLE_EXCHG_DATA_SEQ0_TEST //`define ENABLE_EXCHG_DATA_SEQ1_TEST @@ -660,6 +661,26 @@ end `define MST_RX_LEN_ADDR (`MST_RX0_LEN_ADDR) `define MST_TX_LEN_ADDR (`MST_TX0_LEN_ADDR) +`define SETTING_ENCRYPTION \ + txBuf[3 + 0] = 8'hb1;\ + txBuf[3 + 1] = 8'hd2;\ + txBuf[3 + 2] = 8'hf1;\ + txBuf[3 + 3] = 8'h03;\ + txBuf[3 + 4] = 8'hf2;\ + txBuf[3 + 5] = 8'h01;\ + txBuf[3 + 6] = 8'hf5;\ + txBuf[3 + 7] = 8'h04;\ + txBuf[3 + 8] = 8'ha1;\ + txBuf[3 + 9] = 8'h01;\ + txBuf[3 + 10] = 8'hd3;\ + txBuf[3 + 11] = 8'h07;\ + txBuf[3 + 12] = 8'hc8;\ + txBuf[3 + 13] = 8'hef;\ + txBuf[3 + 14] = 8'hb9;\ + txBuf[3 + 15] = 8'h52;\ + txBuf[3 + 16] = 8'h01; + + initial begin #1000 @@ -742,6 +763,25 @@ initial begin */ end +`ifdef ENABLE_ENCRYPTION + begin:ENABLE_ENCRYPTION_TESTCASE + + $fdisplay(spidata_file, "\n\n测试用例:加密"); + `SETTING_ENCRYPTION; + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(0)) ); + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(1)) ); + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(2)) ); + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(3)) ); + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(4)) ); + + spi_trans( (16'h50), (`SPI_READ), (17), (`IF_IDX(0)) ); + spi_trans( (16'h50), (`SPI_READ), (17), (`IF_IDX(1)) ); + spi_trans( (16'h50), (`SPI_READ), (17), (`IF_IDX(2)) ); + spi_trans( (16'h50), (`SPI_READ), (17), (`IF_IDX(3)) ); + spi_trans( (16'h50), (`SPI_READ), (17), (`IF_IDX(4)) ); + end +`endif + `ifdef ENABLE_INT_INIT_TEST begin:CHECK_INTERRUPT_SIG $fdisplay(spidata_file, "\n\n测试用例:检查设备的INTERRUPT信号"); @@ -1330,7 +1370,15 @@ initial begin txBuf[0+3] = 8'h02; spi_trans( (16'h00), (`SPI_WRITE), (1), (`IF_IDX(2)) ); - +`ifdef ENABLE_ENCRYPTION + $fdisplay(spidata_file, "-配置加密"); + `SETTING_ENCRYPTION; + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(0)) ); + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(1)) ); + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(2)) ); + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(3)) ); + spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(4)) ); +`endif #1000 $fdisplay(spidata_file, "\n广播读:使用SM2");