summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dsp_m9x9_sumof4.sv
blob: 346d7ec1b126a4f3b23aec75f78fd6991457eb95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
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