summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_dot_and_convert.sv
blob: 77429277a15a9fa5b20825879a8c1f8337a3c29d (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
`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
JiFJ7S0EdpV0fkKaJURSHVCh5aUDtWzT69RuPFHpmjHK04qneCAk4TbeWq0+OHDNd3Jod/bXrtNZ
vNbeYJH9vBVJGUQN6cAVeO5j5L3Ae4HKU01fXsmsu+R/ysfPAVrave06+vfA1fjolFjPjFAhUGXZ
GmBn6+EwlQ8ctB1rdmwT2aNjO3K+I1tX8u0dUbpY7ha43Bgg1NjZI+nQosXHUaSRskUDR5TeEI29
/FYtREr2T25bmZ4WBB0NDTlckSB1t+ZsxTrGah2/OFaVMP4c5I5HJmXLnt/1oO40U2si6jkgYMGD
iJhq6laqc/NL9XcvdEAuCjchjJbv8/MB28ZcDQ==

`pragma protect data_method="aes128-cbc"
`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 7760)
`pragma protect data_block
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
zh2O9aYYWwI=
`pragma protect end_protected