summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_if.sv
diff options
context:
space:
mode:
authorEric Dao <eric@erickhangdao.com>2025-03-10 17:54:31 -0400
committerEric Dao <eric@erickhangdao.com>2025-03-10 17:54:31 -0400
commitab224e2e6ba65f5a369ec392f99cd8845ad06c98 (patch)
treea1e757e9341863ed52b8ad4c5a1c45933aab9da4 /python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_if.sv
parent40da1752f2c8639186b72f6838aa415e854d0b1d (diff)
downloadthesis-master.tar.gz
thesis-master.tar.bz2
thesis-master.zip
completed thesisHEADmaster
Diffstat (limited to 'python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_if.sv')
-rw-r--r--python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_if.sv65
1 files changed, 65 insertions, 0 deletions
diff --git a/python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_if.sv b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_if.sv
new file mode 100644
index 0000000..4ca11a9
--- /dev/null
+++ b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_if.sv
@@ -0,0 +1,65 @@
+// Copyright 2021-2021 Intel Corporation.
+//
+// This software and the related documents are Intel copyrighted materials,
+// and your use of them is governed by the express license under which they
+// were provided to you ("License"). Unless the License provides otherwise,
+// you may not use, modify, copy, publish, distribute, disclose or transmit
+// this software or the related documents without Intel's prior written
+// permission.
+//
+// This software and the related documents are provided as is, with no express
+// or implied warranties, other than those that are expressly stated in the
+// License.
+
+// Port structure from config to control
+interface softmax_config_to_control_if #(
+ dla_aux_softmax_pkg::aux_special_params_t special_params,
+ dla_interface_pkg::aux_data_pack_params_t data_pack_params,
+ int DIM1 = 1,
+ int DIM2 = 1
+);
+// ------------------------------ START EDITING ------------------------------
+ // localparam TILE_COUNT = data_pack_params.GROUP_SIZE * data_pack_params.GROUP_NUM;
+ localparam CONFIG_ID_BITS = special_params.CONFIG_ID_WIDTH ;
+ localparam FRAME_SIZE_BITS = $clog2(special_params.MAX_NUM_CHANNELS + 1) ;
+ localparam DATA_SIZE_BITS = $clog2(special_params.MAX_NUM_CHANNELS + 1) ;
+ localparam ELEMENT_BITS = data_pack_params.ELEMENT_BITS ;
+// ------------------------------ END EDITING ------------------------------
+
+ typedef struct packed {
+// ------------------------------ START EDITING ------------------------------
+ logic configured ;
+ //
+ logic [ FRAME_SIZE_BITS-1:0] frame_size ;
+ logic [ DATA_SIZE_BITS-1:0] data_size ;
+ logic [ CONFIG_ID_BITS-1:0] config_id ;
+// ------------------------------ END EDITING ------------------------------
+ } Type;
+ Type data [DIM1][DIM2];
+ modport sender (output data);
+ modport receiver (input data);
+endinterface
+
+// Port structure from control to lane(s)
+interface softmax_control_to_lane_if #(
+ dla_aux_softmax_pkg::aux_special_params_t special_params,
+ dla_interface_pkg::aux_data_pack_params_t data_pack_params,
+ int DIM1 = 1,
+ int DIM2 = 1
+);
+ localparam TILE_COUNT = data_pack_params.GROUP_SIZE * data_pack_params.GROUP_NUM;
+ typedef struct packed {
+ // only the handshake signal 'ready' is fixed in this structure, which is used by control to
+ // signal that the core is not stalled
+ logic ready;
+// ------------------------------ START EDITING ------------------------------
+ logic sum_mode;
+ logic sum_init;
+ logic sum_last;
+ logic output_enable;
+// ------------------------------ END EDITING ------------------------------
+ } Type;
+ Type data [DIM1][DIM2];
+ modport sender (output data);
+ modport receiver (input data);
+endinterface