summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dot_adder_tree.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_dot_adder_tree.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_dot_adder_tree.sv')
-rw-r--r--python/openvino/demo/ip/intel_ai_ip/verilog/dla_dot_adder_tree.sv143
1 files changed, 143 insertions, 0 deletions
diff --git a/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dot_adder_tree.sv b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dot_adder_tree.sv
new file mode 100644
index 0000000..2348c31
--- /dev/null
+++ b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dot_adder_tree.sv
@@ -0,0 +1,143 @@
+`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
+nKx6cuD09T+CnJtw608gyiHolqkzduVb5fCSX++l9w4uEp9TlIIOZn8/gATDr3Ie8y7gRqper5cq
+x89Yh81kWBzU9insdX9pfQzjYad5pvrLjWdI/K6PV4xqQ3aymxdMGhpf4rXehTHt78bup2wa/+yL
+qV0qpAXhuIAib5BDPiCrmqEqZTc/Frp/slNDd217oO+zOJqFdbWpSeVJ4MyMJ0dQgHgBkBtqYKUz
+byvhXvbSkUHm2RvYYsoHWz/SzogzCwBInTVbhCP0FJ04wrgz5+8oJyQmqfFW6Ajb+/lByF0IPDFg
+jJ3YF9jpo/ME94kwQ7CbpmgfLY+6lzrRFGLTPA==
+
+`pragma protect data_method="aes128-cbc"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 6928)
+`pragma protect data_block
+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
+`pragma protect end_protected