summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_control.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_control.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_control.sv')
-rw-r--r--python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_control.sv176
1 files changed, 176 insertions, 0 deletions
diff --git a/python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_control.sv b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_control.sv
new file mode 100644
index 0000000..107f51f
--- /dev/null
+++ b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_aux_softmax_control.sv
@@ -0,0 +1,176 @@
+`pragma protect begin_protected
+`pragma protect version=1
+`pragma protect author="Intel Corporation"
+`pragma protect encrypt_agent="Quartus Prime Pro Software"
+`pragma protect encrypt_agent_info="17.1"
+
+`pragma protect key_keyowner="Intel Corporation"
+`pragma protect key_method="rsa"
+`pragma protect key_keyname="Intel-FPGA-Quartus-RSA-1"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 256)
+`pragma protect key_block
+O7CIA9J8DJkKRKtDNELZngnWZ2zqXhnHylZLKEvMVDIKAIkqOBeWJfcRD8r9ADa3AepauFciZA3C
+rbCsm6tWVCdnoH1X6Y1FmUbgwQtGRtfFB9zV0mABCuf6UJKdcxlyjkNGD3G7H0UIJH56O1nI1atF
+huiIhnaOPKUZSnIBjM4ZIa6OfDUOBAxHFbz4/VUQ9BMv0WTAPRIipEuyaqeoAsJdvQwOXst+iglJ
+8mi7yMhO46se30jTewrSdz3EDZWOLlxic+QRNBYU++TCqxKgOAtiSfckBBR44TJWImWvW+U1u/8q
+3KDZoYnnzvIhNTfMvk1Mw7CZ8nNMNrEvDW+TBw==
+
+`pragma protect data_method="aes128-cbc"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 8832)
+`pragma protect data_block
+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
+`pragma protect end_protected