From 969368ee406dc7431078799ff94853b0b9e28b51 Mon Sep 17 00:00:00 2001
From: dam1n19 <dam1n19@soton.ac.uk>
Date: Wed, 17 May 2023 12:33:52 +0100
Subject: [PATCH] Re-played changes from commit revert on Accelerator Project

---
 flist/nanosoc/nanosoc_chip_ip.flist       |  7 +++++-
 flist/nanosoc/nanosoc_tb.flist            |  3 ++-
 simulate/socsim/system_secworks_aes128.sh | 30 +++++++++++++++++++++++
 wrapper/src/wrapper_accelerator.sv        | 24 +++++++++++-------
 4 files changed, 53 insertions(+), 11 deletions(-)
 create mode 100644 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/simulate/socsim/system_secworks_aes128.sh b/simulate/socsim/system_secworks_aes128.sh
new file mode 100644
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