Skip to content

Commit 38868f6

Browse files
thaarresthesps
authored andcommitted
parent 84ff0e0
author Thea Aarrestad <[email protected]> 1620032180 +0200 committer Sioni Summers <[email protected]> 1636569147 +0100 First version of CNN notebook Adding QKeras model and start of hls4ml part for cnn tutorial removing outputs Changing to hlsm4l master and updating notebook Switching on bias in QConv2DBN first autoq draft updating n trials for autoq adding vivado reports for baseline Adding vivado_hls.app moving .app to reference dir Adding AutoQ bonus exercise Adding hls projects moving to hls4ml master fixing AutoQ part changing description of CNN implementation Fixing bug with non-editable cells and missing layer when loading models
1 parent 72f6082 commit 38868f6

File tree

8 files changed

+3265
-2
lines changed

8 files changed

+3265
-2
lines changed

environment.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: hls4ml-tutorial-0.5.0
1+
name: hls4ml-tutorial
22
channels:
33
- conda-forge
44
dependencies:
@@ -10,7 +10,8 @@ dependencies:
1010
- pip:
1111
- jupyter
1212
- tensorflow==2.3.1
13-
- hls4ml[profiling]==0.5.0
13+
- tensorflow_datasets
14+
- git+https://github.com/fastmachinelearning/hls4ml.git#egg=hls4ml[profiling]
1415
- git+https://github.com/google/qkeras.git#egg=qkeras
1516
- scikit-learn
1617
- git+https://github.com/thesps/conifer.git

images/conv2d_animation.gif

628 KB
Loading

images/test.png

36 KB
Loading

part6_cnns.ipynb

+1,317
Large diffs are not rendered by default.

pruned_cnn/myproject_prj/solution1/syn/report/myproject_csynth.rpt

+619
Large diffs are not rendered by default.

pruned_cnn/vivado_synth.rpt

+298
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,298 @@
1+
Copyright 1986-2020 Xilinx, Inc. All Rights Reserved.
2+
--------------------------------------------------------------------------------------
3+
| Tool Version : Vivado v.2020.1 (lin64) Build 2902540 Wed May 27 19:54:35 MDT 2020
4+
| Date : Mon Jun 28 13:59:34 2021
5+
| Host : geonosis.cern.ch running 64-bit CentOS Linux release 7.9.2009 (Core)
6+
| Command : report_utilization -file vivado_synth.rpt
7+
| Design : myproject
8+
| Device : xcu250figd2104-2L
9+
| Design State : Synthesized
10+
--------------------------------------------------------------------------------------
11+
12+
Utilization Design Information
13+
14+
Table of Contents
15+
-----------------
16+
1. CLB Logic
17+
1.1 Summary of Registers by Type
18+
2. BLOCKRAM
19+
3. ARITHMETIC
20+
4. I/O
21+
5. CLOCK
22+
6. ADVANCED
23+
7. CONFIGURATION
24+
8. Primitives
25+
9. Black Boxes
26+
10. Instantiated Netlists
27+
11. SLR Connectivity
28+
12. SLR Connectivity Matrix
29+
13. SLR CLB Logic and Dedicated Block Utilization
30+
14. SLR IO Utilization
31+
32+
1. CLB Logic
33+
------------
34+
35+
+----------------------------+--------+-------+-----------+-------+
36+
| Site Type | Used | Fixed | Available | Util% |
37+
+----------------------------+--------+-------+-----------+-------+
38+
| CLB LUTs* | 123948 | 0 | 1728000 | 7.17 |
39+
| LUT as Logic | 120268 | 0 | 1728000 | 6.96 |
40+
| LUT as Memory | 3680 | 0 | 791040 | 0.47 |
41+
| LUT as Distributed RAM | 0 | 0 | | |
42+
| LUT as Shift Register | 3680 | 0 | | |
43+
| CLB Registers | 43435 | 0 | 3456000 | 1.26 |
44+
| Register as Flip Flop | 43435 | 0 | 3456000 | 1.26 |
45+
| Register as Latch | 0 | 0 | 3456000 | 0.00 |
46+
| CARRY8 | 13270 | 0 | 216000 | 6.14 |
47+
| F7 Muxes | 256 | 0 | 864000 | 0.03 |
48+
| F8 Muxes | 0 | 0 | 432000 | 0.00 |
49+
| F9 Muxes | 0 | 0 | 216000 | 0.00 |
50+
+----------------------------+--------+-------+-----------+-------+
51+
* Warning! The Final LUT count, after physical optimizations and full implementation, is typically lower. Run opt_design after synthesis, if not already completed, for a more realistic count.
52+
53+
54+
1.1 Summary of Registers by Type
55+
--------------------------------
56+
57+
+-------+--------------+-------------+--------------+
58+
| Total | Clock Enable | Synchronous | Asynchronous |
59+
+-------+--------------+-------------+--------------+
60+
| 0 | _ | - | - |
61+
| 0 | _ | - | Set |
62+
| 0 | _ | - | Reset |
63+
| 0 | _ | Set | - |
64+
| 0 | _ | Reset | - |
65+
| 0 | Yes | - | - |
66+
| 0 | Yes | - | Set |
67+
| 0 | Yes | - | Reset |
68+
| 1069 | Yes | Set | - |
69+
| 42366 | Yes | Reset | - |
70+
+-------+--------------+-------------+--------------+
71+
72+
73+
2. BLOCKRAM
74+
-----------
75+
76+
+-------------------+------+-------+-----------+-------+
77+
| Site Type | Used | Fixed | Available | Util% |
78+
+-------------------+------+-------+-----------+-------+
79+
| Block RAM Tile | 42 | 0 | 2688 | 1.56 |
80+
| RAMB36/FIFO* | 0 | 0 | 2688 | 0.00 |
81+
| RAMB18 | 84 | 0 | 5376 | 1.56 |
82+
| RAMB18E2 only | 84 | | | |
83+
| URAM | 0 | 0 | 1280 | 0.00 |
84+
+-------------------+------+-------+-----------+-------+
85+
* Note: Each Block RAM Tile only has one FIFO logic available and therefore can accommodate only one FIFO36E2 or one FIFO18E2. However, if a FIFO18E2 occupies a Block RAM Tile, that tile can still accommodate a RAMB18E2
86+
87+
88+
3. ARITHMETIC
89+
-------------
90+
91+
+----------------+------+-------+-----------+-------+
92+
| Site Type | Used | Fixed | Available | Util% |
93+
+----------------+------+-------+-----------+-------+
94+
| DSPs | 5386 | 0 | 12288 | 43.83 |
95+
| DSP48E2 only | 5386 | | | |
96+
+----------------+------+-------+-----------+-------+
97+
98+
99+
4. I/O
100+
------
101+
102+
+------------+------+-------+-----------+-------+
103+
| Site Type | Used | Fixed | Available | Util% |
104+
+------------+------+-------+-----------+-------+
105+
| Bonded IOB | 274 | 0 | 676 | 40.53 |
106+
+------------+------+-------+-----------+-------+
107+
108+
109+
5. CLOCK
110+
--------
111+
112+
+----------------------+------+-------+-----------+-------+
113+
| Site Type | Used | Fixed | Available | Util% |
114+
+----------------------+------+-------+-----------+-------+
115+
| GLOBAL CLOCK BUFFERs | 1 | 0 | 1344 | 0.07 |
116+
| BUFGCE | 1 | 0 | 384 | 0.26 |
117+
| BUFGCE_DIV | 0 | 0 | 64 | 0.00 |
118+
| BUFG_GT | 0 | 0 | 768 | 0.00 |
119+
| BUFGCTRL* | 0 | 0 | 128 | 0.00 |
120+
| PLL | 0 | 0 | 32 | 0.00 |
121+
| MMCM | 0 | 0 | 16 | 0.00 |
122+
+----------------------+------+-------+-----------+-------+
123+
* Note: Each used BUFGCTRL counts as two GLOBAL CLOCK BUFFERs. This table does not include global clocking resources, only buffer cell usage. See the Clock Utilization Report (report_clock_utilization) for detailed accounting of global clocking resource availability.
124+
125+
126+
6. ADVANCED
127+
-----------
128+
129+
+-----------------+------+-------+-----------+-------+
130+
| Site Type | Used | Fixed | Available | Util% |
131+
+-----------------+------+-------+-----------+-------+
132+
| CMACE4 | 0 | 0 | 12 | 0.00 |
133+
| GTYE4_CHANNEL | 0 | 0 | 24 | 0.00 |
134+
| GTYE4_COMMON | 0 | 0 | 6 | 0.00 |
135+
| ILKNE4 | 0 | 0 | 8 | 0.00 |
136+
| OBUFDS_GTE4 | 0 | 0 | 12 | 0.00 |
137+
| OBUFDS_GTE4_ADV | 0 | 0 | 12 | 0.00 |
138+
| PCIE40E4 | 0 | 0 | 4 | 0.00 |
139+
| SYSMONE4 | 0 | 0 | 4 | 0.00 |
140+
+-----------------+------+-------+-----------+-------+
141+
142+
143+
7. CONFIGURATION
144+
----------------
145+
146+
+-------------+------+-------+-----------+-------+
147+
| Site Type | Used | Fixed | Available | Util% |
148+
+-------------+------+-------+-----------+-------+
149+
| BSCANE2 | 0 | 0 | 16 | 0.00 |
150+
| DNA_PORTE2 | 0 | 0 | 4 | 0.00 |
151+
| EFUSE_USR | 0 | 0 | 4 | 0.00 |
152+
| FRAME_ECCE4 | 0 | 0 | 4 | 0.00 |
153+
| ICAPE3 | 0 | 0 | 8 | 0.00 |
154+
| MASTER_JTAG | 0 | 0 | 4 | 0.00 |
155+
| STARTUPE3 | 0 | 0 | 4 | 0.00 |
156+
+-------------+------+-------+-----------+-------+
157+
158+
159+
8. Primitives
160+
-------------
161+
162+
+----------+-------+---------------------+
163+
| Ref Name | Used | Functional Category |
164+
+----------+-------+---------------------+
165+
| LUT2 | 52029 | CLB |
166+
| FDRE | 42366 | Register |
167+
| LUT3 | 41635 | CLB |
168+
| LUT4 | 40010 | CLB |
169+
| CARRY8 | 13270 | CLB |
170+
| LUT6 | 12631 | CLB |
171+
| LUT5 | 10697 | CLB |
172+
| DSP48E2 | 5386 | Arithmetic |
173+
| LUT1 | 4899 | CLB |
174+
| SRL16E | 2816 | CLB |
175+
| FDSE | 1069 | Register |
176+
| SRLC32E | 864 | CLB |
177+
| MUXF7 | 256 | CLB |
178+
| OBUF | 210 | I/O |
179+
| RAMB18E2 | 84 | Block Ram |
180+
| INBUF | 64 | I/O |
181+
| IBUFCTRL | 64 | Others |
182+
| BUFGCE | 1 | Clock |
183+
+----------+-------+---------------------+
184+
185+
186+
9. Black Boxes
187+
--------------
188+
189+
+----------+------+
190+
| Ref Name | Used |
191+
+----------+------+
192+
193+
194+
10. Instantiated Netlists
195+
-------------------------
196+
197+
+----------+------+
198+
| Ref Name | Used |
199+
+----------+------+
200+
201+
202+
11. SLR Connectivity
203+
--------------------
204+
205+
+----------------------------------+------+-------+-----------+-------+
206+
| | Used | Fixed | Available | Util% |
207+
+----------------------------------+------+-------+-----------+-------+
208+
| SLR3 <-> SLR2 | 0 | | 23040 | 0.00 |
209+
| SLR2 -> SLR3 | 0 | | | 0.00 |
210+
| Using TX_REG only | 0 | 0 | | |
211+
| Using RX_REG only | 0 | 0 | | |
212+
| Using Both TX_REG and RX_REG | 0 | 0 | | |
213+
| SLR3 -> SLR2 | 0 | | | 0.00 |
214+
| Using TX_REG only | 0 | 0 | | |
215+
| Using RX_REG only | 0 | 0 | | |
216+
| Using Both TX_REG and RX_REG | 0 | 0 | | |
217+
| SLR2 <-> SLR1 | 0 | | 23040 | 0.00 |
218+
| SLR1 -> SLR2 | 0 | | | 0.00 |
219+
| Using TX_REG only | 0 | 0 | | |
220+
| Using RX_REG only | 0 | 0 | | |
221+
| Using Both TX_REG and RX_REG | 0 | 0 | | |
222+
| SLR2 -> SLR1 | 0 | | | 0.00 |
223+
| Using TX_REG only | 0 | 0 | | |
224+
| Using RX_REG only | 0 | 0 | | |
225+
| Using Both TX_REG and RX_REG | 0 | 0 | | |
226+
| SLR1 <-> SLR0 | 0 | | 23040 | 0.00 |
227+
| SLR0 -> SLR1 | 0 | | | 0.00 |
228+
| Using TX_REG only | 0 | 0 | | |
229+
| Using RX_REG only | 0 | 0 | | |
230+
| Using Both TX_REG and RX_REG | 0 | 0 | | |
231+
| SLR1 -> SLR0 | 0 | | | 0.00 |
232+
| Using TX_REG only | 0 | 0 | | |
233+
| Using RX_REG only | 0 | 0 | | |
234+
| Using Both TX_REG and RX_REG | 0 | 0 | | |
235+
+----------------------------------+------+-------+-----------+-------+
236+
| Total SLLs Used | 0 | | | |
237+
+----------------------------------+------+-------+-----------+-------+
238+
239+
240+
12. SLR Connectivity Matrix
241+
---------------------------
242+
243+
+-----------+------+------+------+------+
244+
| FROM \ TO | SLR3 | SLR2 | SLR1 | SLR0 |
245+
+-----------+------+------+------+------+
246+
| SLR3 | 0 | 0 | 0 | 0 |
247+
| SLR2 | 0 | 0 | 0 | 0 |
248+
| SLR1 | 0 | 0 | 0 | 0 |
249+
| SLR0 | 0 | 0 | 0 | 0 |
250+
+-----------+------+------+------+------+
251+
252+
253+
13. SLR CLB Logic and Dedicated Block Utilization
254+
-------------------------------------------------
255+
256+
+----------------------------+------+------+------+------+--------+--------+--------+--------+
257+
| Site Type | SLR0 | SLR1 | SLR2 | SLR3 | SLR0 % | SLR1 % | SLR2 % | SLR3 % |
258+
+----------------------------+------+------+------+------+--------+--------+--------+--------+
259+
| CLB | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
260+
| CLBL | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
261+
| CLBM | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
262+
| CLB LUTs | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
263+
| LUT as Logic | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
264+
| LUT as Memory | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
265+
| LUT as Distributed RAM | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
266+
| LUT as Shift Register | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
267+
| CLB Registers | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
268+
| CARRY8 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
269+
| F7 Muxes | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
270+
| F8 Muxes | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
271+
| F9 Muxes | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
272+
| Block RAM Tile | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
273+
| RAMB36/FIFO | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
274+
| RAMB18 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
275+
| URAM | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
276+
| DSPs | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
277+
| PLL | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
278+
| MMCM | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
279+
| Unique Control Sets | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
280+
+----------------------------+------+------+------+------+--------+--------+--------+--------+
281+
* Note: Available Control Sets based on CLB Registers / 8
282+
283+
284+
14. SLR IO Utilization
285+
----------------------
286+
287+
+-----------+-----------+---------+------------+----------+------------+----------+-----+
288+
| SLR Index | Used IOBs | (%)IOBs | Used IPADs | (%)IPADs | Used OPADs | (%)OPADs | GTs |
289+
+-----------+-----------+---------+------------+----------+------------+----------+-----+
290+
| SLR3 | 0 | 0.00 | 0 | 0.00 | 0 | 0.00 | 0 |
291+
| SLR2 | 0 | 0.00 | 0 | 0.00 | 0 | 0.00 | 0 |
292+
| SLR1 | 0 | 0.00 | 0 | 0.00 | 0 | 0.00 | 0 |
293+
| SLR0 | 0 | 0.00 | 0 | 0.00 | 0 | 0.00 | 0 |
294+
+-----------+-----------+---------+------------+----------+------------+----------+-----+
295+
| Total | 0 | | 0 | | 0 | | 0 |
296+
+-----------+-----------+---------+------------+----------+------------+----------+-----+
297+
298+

0 commit comments

Comments
 (0)