From 0c976c669a7840b752adf67ed6c14ed80a1205cf Mon Sep 17 00:00:00 2001 From: dwf1m12 <d.w.flynn@soton.ac.uk> Date: Tue, 16 May 2023 16:28:49 +0100 Subject: [PATCH] New aes128 accelerator project --- flist/nanosoc/nanosoc_chip_ip.flist | 7 +++++- flist/nanosoc/nanosoc_tb.flist | 3 ++- flist/project/system.flist | 2 +- generic_lib_tech | 2 +- nanosoc_tech | 2 +- simulate/socsim/bootrom.sh | 2 +- simulate/socsim/system_secworks_aes128.sh | 30 +++++++++++++++++++++++ wrapper/src/wrapper_accelerator.sv | 24 +++++++++++------- 8 files changed, 57 insertions(+), 15 deletions(-) create mode 100755 simulate/socsim/system_secworks_aes128.sh diff --git a/flist/nanosoc/nanosoc_chip_ip.flist b/flist/nanosoc/nanosoc_chip_ip.flist index c7b49e1..659ebf0 100644 --- a/flist/nanosoc/nanosoc_chip_ip.flist +++ b/flist/nanosoc/nanosoc_chip_ip.flist @@ -31,4 +31,9 @@ $(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_mcu_clkctrl.v $(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_mcu_sysctrl.v $(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_apb_usrt.v -$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_ahb_bootrom.v \ No newline at end of file +$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_ahb_bootrom.v +$(NANOSOC_TECH_DIR)/system/src/bootrom/verilog/bootrom.v + +$(NANOSOC_TECH_DIR)/system/aes/src/nanosoc_acc_wrapper.v ++incdir+$(PROJECT_DIR)/secworks-aes/src/rtl +$(NANOSOC_TECH_DIR)/system/aes/src/soclabs_ahb_aes128_ctrl.v diff --git a/flist/nanosoc/nanosoc_tb.flist b/flist/nanosoc/nanosoc_tb.flist index e5438e8..7c0ec8e 100644 --- a/flist/nanosoc/nanosoc_tb.flist +++ b/flist/nanosoc/nanosoc_tb.flist @@ -30,4 +30,5 @@ $(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_ft1248x1_to_axi_streamio_v1_0.v $(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_axi_stream_io_8_rxd_to_file.v $(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_track_tb_iostream.v $(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_ft1248x1_track.v -$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_dma_log_to_file.v \ No newline at end of file +$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_dma_log_to_file.v +$(NANOSOC_TECH_DIR)/system/aes/verif/aes128_log_to_file.v diff --git a/flist/project/system.flist b/flist/project/system.flist index 070cb14..a067906 100644 --- a/flist/project/system.flist +++ b/flist/project/system.flist @@ -62,4 +62,4 @@ $(PROJECT_DIR)/system/src/nanosoc_exp.v -f $(PROJECT_DIR)/flist/nanosoc/nanosoc_tb.flist // ============= Bootrom Filelist ================ -$(PROJECT_DIR)/system/src/bootrom/verilog/bootrom.v \ No newline at end of file +//src/bootrom/verilog/bootrom.v diff --git a/generic_lib_tech b/generic_lib_tech index 69e79bf..53dca95 160000 --- a/generic_lib_tech +++ b/generic_lib_tech @@ -1 +1 @@ -Subproject commit 69e79bf881a73af0b3ee04e25835450ed2635718 +Subproject commit 53dca95d66a93333a7e6e8bbbda0696a348da0b5 diff --git a/nanosoc_tech b/nanosoc_tech index 9e4a4da..f68c3e6 160000 --- a/nanosoc_tech +++ b/nanosoc_tech @@ -1 +1 @@ -Subproject commit 9e4a4da0a9dd45c84a787c4cf73294e7a412aff4 +Subproject commit f68c3e62bd2dd914b49e7000fb0f226fcb01a8a7 diff --git a/simulate/socsim/bootrom.sh b/simulate/socsim/bootrom.sh index bf938b9..fc9a69a 100755 --- a/simulate/socsim/bootrom.sh +++ b/simulate/socsim/bootrom.sh @@ -19,7 +19,7 @@ SIM_DIR=$PROJECT_DIR/simulate/sim/$SIM_NAME # Create Directory to put simulation files mkdir -p $SIM_DIR -cd $PROJECT_DIR/simulate/sim/system_secworks_sha256 +cd $PROJECT_DIR/simulate/sim/$PROJECT_DIR # Compile Simulation # Call makefile in NanoSoC Repo with options diff --git a/simulate/socsim/system_secworks_aes128.sh b/simulate/socsim/system_secworks_aes128.sh new file mode 100755 index 0000000..c2ccf34 --- /dev/null +++ b/simulate/socsim/system_secworks_aes128.sh @@ -0,0 +1,30 @@ +#----------------------------------------------------------------------------- +# SoC Labs Simulation script for system level verification +# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +# +# Contributors +# +# David Mapstone (d.a.mapstone@soton.ac.uk) +# +# Copyright 2023, SoC Labs (www.soclabs.org) +#----------------------------------------------------------------------------- + +#!/usr/bin/env bash + +# Get simulation name from name of script +SIM_NAME=`basename -s .sh "$0"` + +# Directory to put simulation files +SIM_DIR=$PROJECT_DIR/simulate/sim/$SIM_NAME + +# Create Directory to put simulation files +mkdir -p $SIM_DIR +cd $PROJECT_DIR/simulate/sim/$PROJECT_DIR + +# Compile Simulation +# Call makefile in NanoSoC Repo with options +echo ${2} +make -C $NANOSOC_TECH_DIR/system run_mti \ + SIM_DIR=$SIM_DIR \ + ${@:2} + diff --git a/wrapper/src/wrapper_accelerator.sv b/wrapper/src/wrapper_accelerator.sv index e90ddf7..e0ff2fc 100644 --- a/wrapper/src/wrapper_accelerator.sv +++ b/wrapper/src/wrapper_accelerator.sv @@ -14,7 +14,8 @@ module wrapper_accelerator #( parameter INPACKETWIDTH=512, parameter CFGSIZEWIDTH=64, parameter CFGSCHEMEWIDTH=2, - parameter OUTPACKETWIDTH=256 + parameter OUTPACKETWIDTH=256, + parameter CFGNUMIRQ=4 ) ( input logic HCLK, // Clock input logic HRESETn, // Reset @@ -34,10 +35,15 @@ module wrapper_accelerator #( output logic [31:0] HRDATAS, // Input Data Request Signal to DMAC - output logic in_data_req, + output logic in_data_drq, + input logic in_data_dlast, // Output Data Request Signal to DMAC - output logic out_data_req + output logic out_data_drq, + input logic out_data_dlast, + + output logic [CFGNUMIRQ-1:0] int_irq + ); @@ -430,17 +436,17 @@ module wrapper_accelerator #( .req_act_ch4 (1'b0), // DMA Request Output - .drq_ch0 (in_data_req), - .drq_ch1 (out_data_req), + .drq_ch0 (in_data_drq), + .drq_ch1 (out_data_drq), .drq_ch2 (), .drq_ch3 (), .drq_ch4 (), // Interrupt Request Output - .irq_ch0 (), - .irq_ch1 (), - .irq_ch2 (), - .irq_ch3 (), + .irq_ch0 (int_irq[0]), + .irq_ch1 (int_irq[1]), + .irq_ch2 (int_irq[2]), + .irq_ch3 (int_irq[3]), .irq_ch4 (), .irq_merged () ); -- GitLab