summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dsp_m9x9_sumof4.sv
diff options
context:
space:
mode:
Diffstat (limited to 'python/openvino/demo/ip/intel_ai_ip/verilog/dla_dsp_m9x9_sumof4.sv')
-rw-r--r--python/openvino/demo/ip/intel_ai_ip/verilog/dla_dsp_m9x9_sumof4.sv182
1 files changed, 182 insertions, 0 deletions
diff --git a/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dsp_m9x9_sumof4.sv b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dsp_m9x9_sumof4.sv
new file mode 100644
index 0000000..346d7ec
--- /dev/null
+++ b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dsp_m9x9_sumof4.sv
@@ -0,0 +1,182 @@
+`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
+E1OSuYzZiu5QNJnz42WWpgbyKHBoQ2IPfihmHoo7yG9BZaH44jnMcnNHwz7FZ/ZpEGA/Qrn7pxWo
+qT6+qiBj253wwKGnSHPJmSd2ZU+0wSrMur+SFGfKYQa9RBJa4+MWDwyJxxauMN+cMWYCIo7XSwY6
+2ACvYV0PfmOKYJKEL1ox9O2vlYmD2ttJKWD/h4Cq0lURCOSoDnYgrn62136FIogxOgcv7DRt4M6N
+i523vkfniimt2yh+8UDDoX0XyDArMs8MtM+kGqy0MOVWun8RoVOmp/C7wsdb92HvM7IDPB1j2V+F
+WiEMGQDpHknESqgp/HisIcEhhbmuDPZSSWaY8Q==
+
+`pragma protect data_method="aes128-cbc"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 9168)
+`pragma protect data_block
+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
+`pragma protect end_protected