summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dma_config_intercept.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_dma_config_intercept.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_dma_config_intercept.sv')
-rw-r--r--python/openvino/demo/ip/intel_ai_ip/verilog/dla_dma_config_intercept.sv205
1 files changed, 205 insertions, 0 deletions
diff --git a/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dma_config_intercept.sv b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dma_config_intercept.sv
new file mode 100644
index 0000000..d49fb20
--- /dev/null
+++ b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dma_config_intercept.sv
@@ -0,0 +1,205 @@
+`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
+nwnHkUauV+rSUZ5rrfqaxL//9uDi7Ilzh9wCCRPqunB3MfBUhQbUqLNODAFr4ANKiJRLwq9dvk8B
+d0JxQrrtTlvUjLuxlNSU6/CLcZak7CDjA+837FI4iT1EPjJ3ir1h2iUIQK/AGVjmus94sSHGDJsA
+UuL5W8srAg8f5h7xCSbNuAHLTmBHp00dOxmQ8J7sohBtzNp1qP6n7VeLn43D9vfk7N6t+ZVdOtJJ
+SOv23N7IwAHDjoJMVFvb9TRiMoTKtBdd1Ccc4Shg7jWfvefGtjvPHebBQZ0N2J2+A8dZ/AMO8b/n
+SdEFWmuqXqvK+YO6qoCZdnbQKFLV5X0tQRUu6w==
+
+`pragma protect data_method="aes128-cbc"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 10448)
+`pragma protect data_block
+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
+etLf9du/y5Oh9tn56Bo9TNo=
+`pragma protect end_protected