Professional Documents
Culture Documents
Hardware Documentation
Hardware Documentation
FPGA
Implementation
Hardware
Documentation
A Logic Design
Project By:
Ahmed Abdulkader 1170472
Daniel Eskandar 1170524
Omar Essam 1162285
Omar Tarek 1170331
Ahmed Ezzat 1162033
CNN
FPGA
Implementation
This is a Hardware Documentation for the Logic Design Project aiming to implement
a convolutional neural network on an FPGA using Verilog. The project is designed
through different independent modules, each executed by a different team member.
The first part of the report is a general overview of the project and a guide to the
attached files, with general procedures of testing and execution outlined. Then the
individual reports prepared by each individual team member are attached, along
with additional appendices to satisfy all required project deliverables.
CONTENTS
Overview Reporting
Project Overview
Member Distribution
Testing Overview
Attachments Overview
General Team Comments
Individual Reporting
Part 1- Daniel Eskandar
Part 2- Ahmed Ezzat
Part 3- Omar Essam
Part 4- Ahmed Abdulkader
Part 5- Omar Tarek
Overview
Reporting
Section
SoftMax
TanH
TanH
TanH
OUTPUT
avgPool avgPool
conv
conv
conv
FClayer
FClayer
INPUT
The next few pages will cover a summary on the different parts and
their implementations.
Part 1 - Convolution
Done By: Daniel Eskandar
TanH
SoftMax
TanH
TanH
TanH
OUTPUT
avgPool avgPool
conv
conv
conv
FClayer
FClayer
INPUT
The network has 3 convolution layers, each with different filters, all of
Kernel Size 5x5. Details of implementation would be found at the
individual report by Daniel. Several architectures were attempted and
implemented by Daniel, in an attempt to reach a compromise between
Parrallelism, Speed and Utilization. The trade off here is more parrallelism
requires higher power and is more hardware extensive. Less parrallelism
causes a decrease in speed. This balance is very tricky in convolution due
to the huge sizes of Data required for this complicated function. A
compromise was reached and a comparison between architectures
is outlined in Daniel’s individual report.
Code Folder:
\Final Code Files\Part 1- Convolution
Testing Scripts:
\Testing Scripts\Convolution Python Codes
Excel Sheets:
Conv1Test and Conv2Test
Part 2 - TanH Activation
Done By: Ahmed Ezzat
TanH
SoftMax
TanH
TanH
TanH
OUTPUT
avgPool avgPool
conv
conv
conv
FClayer
FClayer
INPUT
The activation function selected between the layers and each another
is the Hyperbolic Tangent Function. More details on structure and testing
are attached in the individual report prepared by Ahmed Ezzat. The
function deals with a large number of inputs, same issue as convolution.
During the convolution part of the integration, the TanH function is of
size 16, and at the fully connected parts it’s at size 32. The convergance
condition and the limiting range of 16 bit half precision floating point
numbers, and also the fact that this is implemented using the taylor
approximation of the function, make this a bottleneck of accuracy.
The accuracy is within the accepted range though.
Code Folder:
\Final Code Files\Part 2- TanH activation
Testing Scripts:
\Testing Scripts\Tanh testing Codes
Part 3 - SoftMax Activation
Done By: Omar Essam
TanH
SoftMax
TanH
TanH
TanH
OUTPUT
avgPool avgPool
conv
conv
conv
FClayer
FClayer
INPUT
Code Folder:
\Final Code Files\Part 3- SoftMax activation
Testing Scripts:
\Testing Scripts\SoftMax Python Codes
Part 4 - Average Pooling
Done By: Ahmed Abdulkader
TanH
SoftMax
TanH
TanH
TanH
OUTPUT
avgPool avgPool
conv
conv
conv
FClayer
FClayer
INPUT
The network has 2 average pooling layers. These decrease the size of
the output data from the first 2 convolution layers. While fairly easy to
implement, they suffer from the same Data Size issue found in
convolution layers (part 1). These issues cause synthesis and utilization
problems, leading us to use compromises that may slow down the
process but improve hardware utilization significantly. The other
drawback of the large data size, is the inability of producing proper
post synthesis timing simulations. This is an issue that was agreed on
with faculty staff and we reached a compromise of simulating the
smallest processing element of each matrix.
Code Folder:
\Final Code Files\Part 4- Average Pooling
Testing Scripts:
\Testing Scripts\Average Pooling Python Codes
Excel Sheets:
AvgPool1Test and AvgPool2Test
Part 5 - Integrating Network
Done By: Omar Tarek
TanH
SoftMax
TanH
TanH
TanH
OUTPUT
avgPool avgPool
conv
conv
conv
FClayer
FClayer
INPUT
Arguably the hardest, least synthesizable and largest part of this project
is making sure that the network integrates properly. To make this happen
collabaration between the member responsible for integration, Omar
Tarek, and the rest of the team was essential. To also make the testing
easier, testing on the convolution units and the average pool units was
done consecutively with one input number image and plugging the
output data of the previous layer into the next layer. More on this could
be found on the testing section of the group report. Due to the sheer size
of this network synthesis was not attempted due to hardware limits.
More details are in the individual report.
Code Folder:
\Final Code Files\Part 5- Integration
Testing Scripts:
\Testing Scripts\ANN testing code +previously mentioned
Excel Sheets:
Testing Overview
Testing is done through the following procedure:
1) A code of similar function is run on an external script written in
a different software design language (Python and C++)
2) The corresponding testbench is run on ModelSim and Data
Results are extracted
3) Both Sets of data are compared against one another, with
random samples taken for conversion to check if results are
correct
4) If errors are found, the code is corrected and we start over
floatA
Result
floatB
floatMult floatAdd
Convolution Unit
image
Result
CU
filter
CU
image
RFselector
CU
Result
OutputConv
filter CU
....
x14
CU
image
Filters
2) Verilog Codes
convUnit.v
convLayerSingle.v
convLayerMulti.v
RFselector.v
3) Verilog Tesbench
convUnit_TB.v
convLayerSingle_TB.v
convLayerMulti_TB.v
4) Screenshots:
a. Simulation (Waveform/TCL console):
i. ConvUnit
Testing the conv unit was done using one number repeatedly for checking if the process is done
correctly quickly. The number used here is 4.
Here we zoomed on the end of the code run, the processing has stopped and the result is
ready!
The data was copied from the TCL console and pasted against
the results from our test code as shown clearly. The numbers in
the first row are of the 6 depths of the first convolution layer.
b. Post Synthesis Timing for the basic convUnit:
(as agreed upon post timing for larger layers of hardware are not achievable with our hardware capabilities. Our
attempts reached up to 14 hours, all while stalling the progress bar. It’s not achievable on consumer hardware)
Conv Single-Layer
Conv Multi-Layer
7) Synthesis Schematic and Comments:
The Synthesis Schematics are attached on the next page.
The number of LUTs generated is 654 for the conv unit, 48422 for the
conv layer single filter and 455605 for the conv layer multiple filters. The
number of LUTs is small for the conv unit because it contains only one
processing element which contains one floating point adder and one
floating point multiplier. The number of LUTs increases exponentially in
the single and multiple filter modules because we make a number of
instances of the conv unit equal to half the number of pixels in a single
row in the output image (14 conv units for one filter for the first
convolution layer of LeNet). Also, the logic used of slicing and indexing
the input and output arrays to send parts of the image to these conv
units and connect their output to different parts of the output of the
whole module is very complicated in synthesis which increases the
number of LUTs in the layer with single filter but especially in the layer
with multiple filters.
8) Answers to extra questions:
I have implemented the convolution part with 5 different architectures. They
are all fully functional but the changes in the design of each architecture
reduced the utilization dramatically. The differences between the 5
architectures are in the design of the convolution layer that uses a single filter.
Architecture 1: Full Parallelism
In the conv layer single filter, the number of instances of conv units is equal to
the number of pixels in the output image (784 conv units for the first layer).
The results appear of only 26 clock cycles (number of clock cycles need for a
conv unit to finish the elementwise multiplication). This is the fastest design
but the biggest design in terms of LUTs and utilization.
Architecture 2: Sequential Convolution with 28 conv units (for one filter of the
first convolution layer LeNet)
In the conv layer single filter, the number of instances of conv units is equal to
the number of pixels of one row of the output image (28 conv units for the
first layer). The results appear after 728 clock cycles. This design is slower but
has improved the utilization a lot.
Architecture 3: Optimized design of Architecture 2 (28 conv units also for the
first layer with smaller receptive field arrays)
The parts of the image sent to the conv units were stored in a large array
called the receptive field. In the previous two architectures, this array was
calculated with a combinational logic for the whole input image generating the
matrices sent to all the conv units at once. This huge array contained 196000
(=28*28*25) values (each one represented by 32 bits). The addition in this
architecture is that we added a module RF selector that receives sequentially
the row and column of the selected pixels and returns the matrices of those
pixels only shrinking the size of the array to 700 (=28*25) values to improve
the utilization of architecture 3.
outputConv_reg[27]_i_2__1
outputConv_OBUF[14875]_inst I0
I O
I1 outputConv_reg[27]
OBUF I2 O CLR outputConv_OBUF[27]_inst
I O
I3 D Q
I4 G OBUF
I5 GE
LUT6 LDCE
outputConv_reg[2075]_i_2__1 outputConv_reg[2075]
I0 CLR outputConv_OBUF[2075]_inst
I O
I1 D Q
7
I2 O G OBUF
I3 GE
I4 LDCE
6
I5
LUT6
outputConv_reg[2587]_i_2__1 outputConv_reg[2587]
I0 CLR outputConv_OBUF[2587]_inst
I O
I1 D Q
I2 O G OBUF
7
I3 GE
I4 LDCE
6
I5
LUT6
outputConv_reg[3099]_i_2__1 outputConv_reg[3099]
I0 CLR outputConv_OBUF[3099]_inst
I O
I1 D Q
I2 O G OBUF
4
I3 GE
I4 LDCE
I5
LUT6
outputConv_reg[4635]_i_2__1
I0
4
I1 outputConv_reg[4635]
I2 O CLR outputConv_OBUF[4635]_inst
I O
I3 D Q
I4 G OBUF
I5 GE
LUT6 LDCE
outputConv_reg[5988]_i_2__1 outputConv_reg[5988]
I0 CLR outputConv_OBUF[5988]_inst
I O
I1 D Q
7
I2 O G OBUF
I3 GE
I4 LDCE
I5
LUT6
outputConv_reg[6171]_i_2__1 outputConv_reg[6171]
I0 CLR outputConv_OBUF[6171]_inst
I O
I1 D Q
7
I2 O G OBUF
I3 GE
I4 LDCE
I5 outputConv_reg[7195]
LUT6 CLR outputConv_OBUF[7195]_inst
I O
outputConv_reg[7195]_i_2__1 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3 outputConv_reg[7707]
I4 CLR outputConv_OBUF[7707]_inst
LUT5 I O
D Q
outputConv_reg[7707]_i_2__1 G OBUF
I0 GE
I1 LDCE
I2 O outputConv_reg[8219]
I3 CLR outputConv_OBUF[8219]_inst
7 I O
I4 D Q
I5 G OBUF
LUT6 GE
outputConv_reg[8219]_i_2__1 LDCE
I0 outputConv_reg[9243]
I1 CLR outputConv_OBUF[9243]_inst
I O
I2 O D Q
7
I3 G OBUF
I4 GE
5 LDCE
I5
LUT6 outputConv_reg[10267]
outputConv_reg[9243]_i_2__1 CLR outputConv_OBUF[10267]_inst
I O
I0 D Q
I1 G OBUF
I2 O GE
7 LDCE
I3
I4 outputConv_reg[12315]
LUT5 CLR outputConv_OBUF[12315]_inst
I O
outputConv_reg[21019]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3 outputConv_reg[13851]
I4 CLR outputConv_OBUF[13851]_inst
LUT5 I O
D Q
outputConv_reg[10267]_i_2__1 G OBUF
I0 GE
I1 LDCE
2
I2 O outputConv_reg[14363]
I3 CLR outputConv_OBUF[14363]_inst
6 I O
I4 D Q
I5 G OBUF
LUT6 GE
outputConv_reg[21531]_i_2 LDCE
4
I0 outputConv_reg[15387]
I1 CLR outputConv_OBUF[15387]_inst
I O
I2 O D Q
I3 G OBUF
I4 GE
I5 LDCE
LUT6 outputConv_reg[15899]
outputConv_reg[22043]_i_2 CLR outputConv_OBUF[15899]_inst
I O
I0 D Q
4
I1 G OBUF
I2 O GE
I3 LDCE
I4 outputConv_reg[16411]
LUT5 CLR outputConv_OBUF[16411]_inst
I O
outputConv_reg[22555]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3 outputConv_reg[17029]
6
I4 CLR outputConv_OBUF[17029]_inst
I O
I5 D Q
LUT6 G OBUF
outputConv_reg[23067]_i_2 GE
I0 LDCE
I1 outputConv_reg[17947]
I2 O CLR outputConv_OBUF[17947]_inst
I O
I3 D Q
I4 G OBUF
I5 GE
LUT6 LDCE
outputConv_reg[23579]_i_2 outputConv_reg[18459]
I0 CLR outputConv_OBUF[18459]_inst
I O
I1 D Q
I2 O G OBUF
4
I3 GE
I4 LDCE
I5 outputConv_reg[18971]
LUT6 CLR outputConv_OBUF[18971]_inst
I O
outputConv_reg[24603]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3 outputConv_reg[21019]
I4 CLR outputConv_OBUF[21019]_inst
I O
I5 D Q
LUT6 G OBUF
outputConv_reg[26139]_i_2 GE
I0 LDCE
I1 outputConv_reg[21531]
I2 O CLR outputConv_OBUF[21531]_inst
6 I O
I3 D Q
I4 G OBUF
I5 GE
LUT6 LDCE
outputConv_reg[13851]_i_2 outputConv_reg[22043]
I0 CLR outputConv_OBUF[22043]_inst
I O
I1 D Q
I2 O G OBUF
4
I3 GE
I4 LDCE
LUT5 outputConv_reg[22555]
outputConv_reg[14363]_i_2 CLR outputConv_OBUF[22555]_inst
I O
I0 D Q
I1 G OBUF
4
I2 O GE
I3 LDCE
I4 outputConv_reg[23067]
I5 CLR outputConv_OBUF[23067]_inst
LUT6 I O
D Q
outputConv_reg[15387]_i_2 G OBUF
I0 GE
I1 LDCE
I2 O outputConv_reg[23579]
I3 CLR outputConv_OBUF[23579]_inst
I O
I4 D Q
I5 G OBUF
LUT6 GE
outputConv_reg[26651]_i_2 LDCE
I0 outputConv_reg[24603]
I1 CLR outputConv_OBUF[24603]_inst
6 I O
I2 O D Q
I3 G OBUF
I4 GE
7 LDCE
I5
LUT6 outputConv_reg[26139]
outputConv_reg[15899]_i_2 CLR outputConv_OBUF[26139]_inst
I O
I0 D Q
I1 G OBUF
I2 O GE
4 LDCE
I3
I4
LUT5 outputConv_reg[26651]
outputConv_reg[27269]_i_2 CLR outputConv_OBUF[26651]_inst
7 I O
outputConv_reg[21019]_i_4 I0 D Q
I0 I1 G OBUF
2
I1 I2 O GE
1 LDCE
I2 O I3
0
I3 I4 outputConv_reg[27269]
3 LUT5
I4 CLR outputConv_OBUF[27269]_inst
4 I O
I5 outputConv_reg[28187]_i_2 D Q
LUT6 I0 G OBUF
outputConv_reg[36379]_i_4 I1 GE
I0 I2 O LDCE
3
I1 O I3 outputConv_reg[28187]
5 4
I2 I4 CLR outputConv_OBUF[28187]_inst
LUT3 6 I O
I5 D Q
outputConv_reg[24603]_i_3 LDCE
6
I0 outputConv_reg[29723]_i_2
2
I1 I0 outputConv_reg[29723]
1
I2 O I1 CLR outputConv_OBUF[29723]_inst
I O
I3 I2 O D Q
I4 I3 G OBUF
LUT5 7
I4 GE
outputConv_reg[22043]_i_4 I4 LDCE
6 7
I0 I5
I1 LUT6
I2 O outputConv_reg[31259]_i_2 outputConv_reg[31259]
1
I3 I0 CLR outputConv_OBUF[31259]_inst
0 I O
I4 I1 D Q
4
I5 I2 O G OBUF
LUT6 I3 GE
outputConv_reg[23067]_i_4 I4 LDCE
6 7
I0 I5
I1 LUT6
2
I2 O outputConv_reg[32795]_i_2 outputConv_reg[32795]
3
I3 I0 CLR outputConv_OBUF[32795]_inst
I O
I4 I1 D Q
LUT5 6
I2 O G OBUF
outputConv_reg[23579]_i_4 I3 GE
6 LDCE
I0 I4
7
I1 I5
I2 O LUT6
3
I3 outputConv_reg[34331]_i_2 outputConv_reg[34331]
6
I4 I0 CLR outputConv_OBUF[34331]_inst
LUT5 I O
I1 D Q
outputConv_reg[7195]_i_6 I2 O G OBUF
7
I0 I3 GE
5 LDCE
I1 I4
I2 O LUT5
4
I3 outputConv_reg[34843]_i_2 outputConv_reg[34843]
I4 I0 CLR outputConv_OBUF[34843]_inst
LUT5 7 I O
I1 D Q
outputConv_reg[8219]_i_6 I2 O G OBUF
I0 I3 GE
6 LDCE
I1 I4
I2 O I5 outputConv_reg[35355]
1 LUT6
I3 CLR outputConv_OBUF[35355]_inst
2 I O
I4 outputConv_reg[35355]_i_2 D Q
7
I5 I0 G OBUF
LUT6 6
I1 GE
I2 O LDCE
I3 outputConv_reg[36379]
outputConv_reg[9243]_i_6 I4 CLR outputConv_OBUF[36379]_inst
I O
I0 I5 D Q
I1 LUT6 G OBUF
I2 O outputConv_reg[36379]_i_2 GE
5 LDCE
I3 I0
I4 I1
LUT5 I2 O
outputConv_reg[4635]_i_6 I3
6
I0 I4
I1 I5
I2 O LUT6
1
I3 outputConv_reg[12315]_i_2__1
I4 I0
I5 I1
LUT6 4
I2 O
I3
I4
outputConv_reg[3099]_i_8 I5
7 LUT6
I0
3
I1 outputConv_reg[16411]_i_2
I2 O I0
I3 I1
I4 I2 O
6
I5 I3
LUT6 I4
outputConv_reg[2075]_i_6 I5
I0 LUT6
1
I1 outputConv_reg[37403]_i_2
I2 O I0
I3 I1 outputConv_reg[37403]
4
I4 I2 O CLR outputConv_OBUF[37403]_inst
LUT5 I O
I3 D Q
outputConv_reg[6171]_i_6 I4 G OBUF
I0 I5 GE
1 LUT6 LDCE
I1
I2 O outputConv_reg[38756]_i_2 outputConv_reg[38756]
I3 I0 CLR outputConv_OBUF[38756]_inst
I O
I4 I1 D Q
LUT5 I2 O G OBUF
7
outputConv_reg[6171]_i_7 I3 GE
4 LDCE
I0 I4
I1 O I5
2 LUT6
I2
LUT3 outputConv_reg[38939]_i_2 outputConv_reg[38939]
outputConv_reg[5988]_i_6 I0 CLR outputConv_OBUF[38939]_inst
I O
I0 I1 D Q
0
I1 I2 O G OBUF
7 7
I2 O I3 GE
I3 I4 LDCE
I4 I5 outputConv_reg[40475]
LUT5 LUT6 CLR outputConv_OBUF[40475]_inst
I O
outputConv_reg[5988]_i_7 outputConv_reg[40475]_i_2 D Q
7 7
I0 I0 G OBUF
I1 I1 GE
0 LDCE
I2 O I2 O
1
I3 I3
4
I4 I4
LUT5 I5
outputConv_reg[26651]_i_3 LUT6
I0 outputConv_reg[40987]_i_2
2 7
I1 O I0
I2 I1 outputConv_reg[40987]
5
I3 I2 O CLR outputConv_OBUF[40987]_inst
LUT4 5 I O
I3 D Q
I4 G OBUF
outputConv_reg[27269]_i_3 I5 GE
6 LUT6 LDCE
I0
I1 outputConv_reg[43035]_i_2 outputConv_reg[43035]
2
I2 O I0 CLR outputConv_OBUF[43035]_inst
I O
I3 I1 D Q
0 2
I4 I2 O G OBUF
1
I5 I3 GE
LUT6 6 LDCE
I4
I5 outputConv_reg[45083]
LUT6 CLR outputConv_OBUF[45083]_inst
I O
outputConv_reg[27]_i_5__1 outputConv_reg[45083]_i_2 D Q
5
I0 I0 G OBUF
I1 I1 GE
4 LDCE
I2 O I2 O
I3 I3
1
I4 I4
2
I5 I5
LUT6 LUT6
outputConv_reg[46619]_i_2
I0
I1
I2 O
4
outputConv_reg[2587]_i_6 I3
I0 I4
2 LUT5
I1 O
I2 outputConv_reg[47131]_i_2
5
I3 I0
LUT4 I1
4
I2 O
outputConv_reg[2587]_i_7 I3
I0 I4
I1 I5
I2 O LUT6
3
I3 outputConv_reg[17029]_i_2
I4 I0
LUT5 I1
outputConv_reg[10267]_i_5 I2 O
1
I0 I3
6
I1 I4
5
I2 O I5
0 LUT6
I3
7
I4 outputConv_reg[17947]_i_2
I5 I0
LUT6 I1
5
I2 O
outputConv_reg[12315]_i_5 I3
I0 I4
4
I1 O I5
I2 LUT6
LUT3 outputConv_reg[18459]_i_2
6
outputConv_reg[14363]_i_5 I0
I0 I1
2
I1 O I2 O
3
I2 I3
LUT3 I4
I5
LUT6
outputConv_reg[18971]_i_2
I0
I1
5
I2 O
I3
I4
I5
outputConv_OBUF[19589]_inst
LUT6
I O
I4 LDCE
I5 outputConv_reg[49797]
LUT6 CLR outputConv_OBUF[49797]_inst
I O
outputConv_reg[50309]_i_2 D Q
I0 G OBUF
0
I1 GE
I2 O LDCE
I3 outputConv_reg[50309]
4
I4 CLR outputConv_OBUF[50309]_inst
I O
I5 D Q
LUT6 G OBUF
outputConv_reg[50565]_i_2 GE
I0 LDCE
I1 outputConv_reg[50565]
0
I2 O CLR outputConv_OBUF[50565]_inst
I O
I3 D Q
I4 G OBUF
I5 GE
LUT6 LDCE
outputConv_reg[51552]_i_2 outputConv_reg[51552]
I0 CLR outputConv_OBUF[51552]_inst
I O
I1 D Q
I2 O G OBUF
1
I3 GE
6 LDCE
I4
I5
LUT6
outputConv_reg[51739]_i_2 outputConv_reg[51739]
I0 CLR outputConv_OBUF[51739]_inst
5 I O
I1 D Q
I2 O G OBUF
2
I3 GE
I4 LDCE
LUT5
outputConv_reg[51845]_i_2 outputConv_reg[51845]
I0 CLR outputConv_OBUF[51845]_inst
5 I O
I1 D Q
I2 O G OBUF
I3 GE
2 LDCE
I4
I5
LUT6
outputConv_reg[52251]_i_2 outputConv_reg[52251]
I0 CLR outputConv_OBUF[52251]_inst
6 I O
I1 D Q
4
I2 O G OBUF
I3 GE
I4 LDCE
LUT5
outputConv_reg[52613]_i_2 outputConv_reg[52613]
I0 CLR outputConv_OBUF[52613]_inst
I O
I1 D Q
I2 O G OBUF
0
I3 GE
5 LDCE
I4
I5 outputConv_reg[53275]
LUT6 CLR outputConv_OBUF[53275]_inst
I O
D Q
outputConv_reg[53275]_i_2 G OBUF
I0 GE
6 LDCE
I1
4
I2 O
2
I3 outputConv_reg[3099]_i_7
I4 I0
LUT5 6
I1
5
outputConv_reg[54372]_i_2 I2 O
0
I0 I3
7
I1 outputConv_reg[1051]_i_7 I4
7 1 3
I2 O I0 I5
0 0 LUT6
I3 I1
3
I4 I2 O
4
I5 I3 outputConv_reg[3611]_i_7
LUT6 4
I4 I0
2
I5 I1
LUT6 I2 O
I3
5
I4
LUT5
outputConv_OBUF[54372]_inst
outputConv_reg[54372] I O
outputConv_reg[55429]_i_2
CLR
I0 OBUF
6 D Q
I1 outputConv_OBUF[55429]_inst
G I O
I2 O
0 GE
I3 OBUF
LDCE
I4 outputConv_reg[7707]_i_6
1 outputConv_reg[55429] 6
I5 I0
CLR 5
LUT6 I1
D Q
I2 O
G
I3
GE 3
outputConv_reg[57883]_i_2 I4
LDCE
I0 LUT5
6
I1
2
I2 O outputConv_reg[11803]_i_6
outputConv_reg[57883]
I3 I0
CLR
I4 I1
7 D Q 5
I5 I2 O
G 6
LUT6 I3
GE 1
outputConv_reg[57989]_i_2 I4
LDCE
2
I0 I5
outputConv_reg[57989] LUT6
I1
CLR
I2 O outputConv_OBUF[57883]_inst
D Q I O
I3
G
I4 OBUF
2 GE
I5 outputConv_OBUF[57989]_inst
LDCE
LUT6 I O
outputConv_reg[59931]_i_2 outputConv_reg[59931]
I0 CLR outputConv_OBUF[59931]_inst
I O
I1 O D Q
2
I2 G OBUF
I3 GE
LUT4 LDCE
outputConv_reg[61467]_i_2 outputConv_reg[61467]
5
I0 CLR outputConv_OBUF[61467]_inst
I O
I1 D Q
I2 O G OBUF
2
I3 GE
4 LDCE
I4
I5
LUT6
outputConv_reg[62085]_i_2 outputConv_reg[62085]
I0 CLR outputConv_OBUF[62085]_inst
I O
I1 D Q
4
I2 O G OBUF
I3 GE
I4 LDCE
5
I5
LUT6 outputConv_reg[63003]
outputConv_reg[63003]_i_2 CLR outputConv_OBUF[63003]_inst
I O
I0 D Q
4
I1 O G OBUF
I2 GE
I3 LDCE
LUT4
outputConv_reg[63621]
outputConv_reg[63621]_i_2
CLR outputConv_OBUF[63621]_inst
I0 I O
0 D Q
I1
G OBUF
I2 O
1 GE
I3
LDCE
4
I4
outputConv_reg[64027]
I5
CLR outputConv_OBUF[64027]_inst
LUT6
I O
D Q
G OBUF
outputConv_reg[64027]_i_2
GE
I0
LDCE
4
I1
I2 O outputConv_reg[51227]_i_2
2
I3 I0
I4 I1
LUT5 I2 O
1
I3
6
I4
I5
LUT6 outputConv_OBUF[64901]_inst
I O
outputConv_reg[64901]_i_2
outputConv_reg[64901]
I0 OBUF
CLR
I1
4 D Q outputConv_reg[51227]
I2 O
G CLR
I3
0 GE D Q
I4
LDCE G
I5
GE
LUT6
LDCE
outputConv_reg[65563]_i_2 outputConv_reg[65563]
I0 CLR outputConv_OBUF[65563]_inst
2 I O
I1 D Q
I2 O G OBUF
I3 GE
5 LDCE
I4
LUT5
outputConv_reg[65925]_i_2 outputConv_reg[65925]
I0 CLR outputConv_OBUF[65925]_inst
2 I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
5
I5
LUT6 outputConv_reg[66075]
outputConv_reg[66075]_i_2 CLR outputConv_OBUF[66075]_inst
I O
I0 D Q
5
I1 O G OBUF
I2 GE
I3 LDCE
LUT4 outputConv_reg[67172]
outputConv_reg[67172]_i_2 CLR outputConv_OBUF[67172]_inst
I O
I0 D Q
5
I1 G OBUF
I2 O GE
I3 LDCE
I4
LUT5
outputConv_reg[68123]_i_2
I0 outputConv_reg[68123]
5
I1 CLR outputConv_OBUF[68123]_inst
I O
I2 O D Q
2
I3 G OBUF
I4 GE
LUT5 LDCE
outputConv_reg[69220]_i_2 outputConv_reg[69220]
I0 CLR outputConv_OBUF[69220]_inst
I O
I1 D Q
3
I2 O G OBUF
5
I3 GE
I4 LDCE
4
I5
LUT6 outputConv_reg[69659]
outputConv_reg[69659]_i_2 CLR outputConv_OBUF[69659]_inst
4 I O
I0 D Q
2
I1 G OBUF
I2 O GE
I3 LDCE
I4 outputConv_reg[70171]
LUT5 CLR outputConv_OBUF[70171]_inst
I O
outputConv_reg[70171]_i_2 D Q
I0 G OBUF
4
I1 O GE
I2 LDCE
I3 outputConv_reg[70277]
LUT4 CLR outputConv_OBUF[70277]_inst
I O
D Q
outputConv_reg[70277]_i_2 G OBUF
I0 GE
0 LDCE
I1
1
I2 O
4
I3
I4
I5
LUT6
column_reg[3]_rep__0
CE
Q
column[3]_rep__0_i_1 CLR
I0 O D
LUT1
FDCE
column_reg[3]_rep__1
CE
Q
column[3]_rep__1_i_1 CLR
I0 O D
LUT1
FDCE
column_reg[3]
C
CE
Q
column[3]_i_2 CLR
I0 O D
LUT1
FDCE
column[3]_rep__2_i_1
column_reg[3]_rep__2
I0 O
LUT1 C
CE
Q
internalReset_i_1 CLR
I0 D
rowNumber[5]_i_2 I1 O
FDCE
I0 I2
3 rowNumber[5]_i_1
I1 I3
4 I0
I2 O LUT4
1 I1
I3
I2 O
I4
I3
I5
column[3]_i_1 I4
LUT6
I0 I5
I1 LUT6
rowNumber_reg[5]
I2 O
C I3
CE I4
Q
CLR LUT5
D internalReset_reg
FDCE C
CE
Q
D
PRE
FDPE
counter[31]_i_1
I0
3
I1 O
4
I2
I3
LUT4
rowNumber_reg[0]
C
CE 0
Q
CLR
rowNumber[0]_i_1 D
0
I0 O
FDCE
LUT1
rowNumber_reg[1]
CE 1
Q
rowNumber[1]_i_1 CLR
I0 O D
1
I1
FDCE
LUT2
genblk1[13].CU
Q[4:0]
clk_IBUF_BUFG
column_reg[3]
column_reg[3]_rep__0
column_reg[3]_rep__1[315:0]
column_reg[3]_rep__1_0
column_reg[3]_rep__2
filter_IBUF[0:399]
... image_IBUF[843:0]
internalReset_reg
0 outputConv1
outputCounter_reg[6]
outputCounter_reg[6]_0
outputCounter_reg[6]_1
outputCounter_reg[6]_2
outputCounter_reg[6]_3
outputCounter_reg[6]_4
outputCounter_reg[6]_5
outputCounter_reg[6]_6
outputCounter_reg[6]_7
outputCounter_reg[6]_8
outputCounter_reg[6]_9
outputCounter_reg[6]_10
outputCounter_reg[6]_11
outputCounter_reg[6]_12
outputCounter_reg[6]_13
outputCounter_reg[6]_14
outputCounter_reg[6]_15
outputCounter_reg[6]_16
outputCounter_reg[6]_17
outputCounter_reg[6]_18
outputCounter_reg[6]_19
outputCounter_reg[6]_20
outputCounter_reg[6]_21
outputCounter_reg[6]_22
outputCounter_reg[6]_23
outputCounter_reg[6]_24
outputCounter_reg[6]_25
outputCounter_reg[6]_26
outputCounter_reg[6]_27
outputCounter_reg[6]_28
outputCounter_reg[6]_29
outputCounter_reg[6]_30
outputCounter_reg[6]_31
outputCounter_reg[6]_32
outputCounter_reg[6]_33
outputCounter_reg[6]_34
outputCounter_reg[6]_35
outputCounter_reg[6]_36
outputCounter_reg[6]_37
outputCounter_reg[6]_38
outputCounter_reg[6]_39
outputCounter_reg[6]_40
outputCounter_reg[6]_41
outputCounter_reg[6]_42
outputCounter_reg[6]_43
outputCounter_reg[6]_44
outputCounter_reg[6]_45
outputCounter_reg[6]_46
outputCounter_reg[6]_47
outputCounter_reg[6]_48
outputCounter_reg[6]_49
outputCounter_reg[6]_50
outputCounter_reg[6]_51
outputCounter_reg[6]_52
outputCounter_reg[6]_53
outputCounter_reg[6]_54
outputCounter_reg[6]_55
outputCounter_reg[6]_56
outputCounter_reg[6]_57
outputCounter_reg[6]_58
outputCounter_reg[6]_59
outputCounter_reg[6]_60
outputCounter_reg[6]_61
outputCounter_reg[6]_62
outputCounter_reg[6]_63
outputCounter_reg[6]_64
outputCounter_reg[6]_65
outputCounter_reg[6]_66
outputCounter_reg[6]_67
outputCounter_reg[6]_68
outputCounter_reg[6]_69
outputCounter_reg[6]_70
outputCounter_reg[11]
outputCounter_reg[11]_0
outputCounter_reg[11]_1
outputCounter_reg[11]_2
outputCounter_reg[11]_3
outputCounter_reg[11]_4
outputCounter_reg[11]_5
outputCounter_reg[11]_6
outputCounter_reg[11]_7
outputCounter_reg[11]_8
outputCounter_reg[11]_9
outputCounter_reg[11]_10
outputCounter_reg[11]_11
outputCounter_reg[11]_12
outputCounter_reg[11]_13 D[1275:0]
outputCounter_reg[11]_14 outputConv[6288]
outputCounter_reg[11]_15 outputConv[6289]
outputCounter_reg[11]_16 outputConv[6290]
outputCounter_reg[11]_17 outputConv[6291]
outputCounter_reg[11]_18 outputConv[6292]
outputCounter_reg[11]_19 outputConv[6293]
outputCounter_reg[11]_20 outputConv[6294]
outputCounter_reg[11]_21 outputConv[6295]
outputCounter_reg[11]_22 outputConv[6296]
outputCounter_reg[11]_23 outputConv[6297]
outputCounter_reg[11]_24 outputConv[6298]
outputCounter_reg[11]_25 outputConv[6299]
outputCounter_reg[11]_26 outputConv[6300]
result_reg[0] outputConv[6301]
result_reg[0]_0 outputConv[6302]
result_reg[0]_1 outputConv[6303]
result_reg[0]_2 outputConv[6335]
result_reg[0]_3 outputConv[6364]
result_reg[0]_4 outputConv[6365]
result_reg[0]_5 outputConv[6366]
result_reg[0]_6 outputConv[6367]
result_reg[0]_7 outputConv[6384]
result_reg[0]_8 outputConv[6385]
result_reg[0]_9 outputConv[6386]
result_reg[0]_10 outputConv[6387]
result_reg[0]_11 outputConv[6388]
result_reg[0]_12 outputConv[6389]
result_reg[0]_13 outputConv[6390]
result_reg[0]_14 outputConv[6391]
result_reg[0]_15 outputConv[6392]
result_reg[0]_16 outputConv[6393]
result_reg[0]_17 outputConv[6394]
result_reg[0]_18 outputConv[6395]
result_reg[1] outputConv[6396]
result_reg[1]_0 outputConv[6397]
result_reg[1]_1 outputConv[6398]
result_reg[1]_2 outputConv[6416]
result_reg[1]_3 outputConv[6417]
result_reg[1]_4 outputConv[6418]
result_reg[1]_5 outputConv[6419]
result_reg[1]_6 outputConv[6420]
result_reg[1]_7 outputConv[6421]
result_reg[1]_8 outputConv[6422]
result_reg[1]_9 outputConv[6423]
result_reg[1]_10 outputConv[6424]
result_reg[1]_11 outputConv[6425]
result_reg[1]_12 outputConv[6426]
result_reg[1]_13 outputConv[6427]
result_reg[1]_14 outputConv[6428]
result_reg[1]_15 outputConv[6429]
result_reg[1]_16 outputConv[6430]
result_reg[2] outputConv[6431]
result_reg[2]_0 outputConv[6449]
result_reg[2]_1 outputConv[6450]
result_reg[2]_2 outputConv[6451]
result_reg[2]_3 outputConv[6452]
result_reg[2]_4 outputConv[6453]
result_reg[2]_5 outputConv[6454]
result_reg[2]_6 outputConv[6455]
result_reg[2]_7 outputConv[6456]
result_reg[2]_8 outputConv[6457]
result_reg[2]_9 outputConv[6458]
result_reg[2]_10 outputConv[6459]
result_reg[2]_11 outputConv[6460]
result_reg[2]_12 outputConv[6461]
result_reg[2]_13 outputConv[6462]
result_reg[2]_14 outputConv[6463]
result_reg[2]_15 outputConv[6512]
result_reg[2]_16 outputConv[6513]
result_reg[2]_17 outputConv[6514]
result_reg[2]_18 outputConv[6515]
result_reg[2]_19 outputConv[6518]
result_reg[3] outputConv[6519]
result_reg[3]_0 outputConv[6520]
result_reg[3]_1 outputConv[6521]
result_reg[3]_2 outputConv[6522]
result_reg[3]_3 outputConv[6523]
result_reg[3]_4 outputConv[6524]
result_reg[3]_5 outputConv[6525]
result_reg[3]_6 outputConv[6526]
result_reg[3]_7 outputConv[6527]
result_reg[3]_8 outputConv[6575]
result_reg[3]_9 outputConv[6576]
result_reg[3]_10 outputConv[6577]
result_reg[3]_11 outputConv[6578]
result_reg[3]_12 outputConv[6579]
result_reg[3]_13 outputConv[6580]
result_reg[3]_14 outputConv[6581]
result_reg[3]_15 outputConv[6582]
result_reg[3]_16 outputConv[6583]
result_reg[3]_17 outputConv[6584]
result_reg[3]_18 outputConv[6585]
result_reg[3]_19 outputConv[6586]
result_reg[4] outputConv[6587]
result_reg[4]_0 outputConv[6588]
result_reg[4]_1 outputConv[6589]
result_reg[4]_2 outputConv[6590]
result_reg[4]_3 outputConv[6608]
result_reg[4]_4 outputConv[6609]
result_reg[4]_5 outputConv[6610]
result_reg[4]_6 outputConv[6611]
result_reg[4]_7 outputConv[6612]
result_reg[4]_8 outputConv[6613]
result_reg[4]_9 outputConv[6614]
result_reg[4]_10 outputConv[6615]
result_reg[4]_11 outputConv[6616]
result_reg[5] outputConv[6617]
result_reg[5]_0 outputConv[6618]
result_reg[5]_1 outputConv[6619]
result_reg[5]_2 outputConv[6622]
result_reg[5]_3 outputConv[6623]
result_reg[5]_4 outputConv[6644]
result_reg[5]_5 outputConv[6645]
result_reg[5]_6 outputConv[6648]
result_reg[5]_7 outputConv[6649]
result_reg[5]_8 outputConv[6650]
result_reg[5]_9 outputConv[6651]
result_reg[5]_10 outputConv[6654]
result_reg[5]_11 outputConv[6655]
result_reg[6] outputConv[6704]
result_reg[6]_0 outputConv[6772]
result_reg[6]_1 outputConv[6773]
result_reg[6]_2 outputConv[6864]
result_reg[6]_3 outputConv[6865]
result_reg[6]_4 outputConv[6866]
result_reg[6]_5 outputConv[6867]
result_reg[6]_6 outputConv[6868]
result_reg[6]_7 outputConv[6869]
result_reg[6]_8 outputConv[6870]
result_reg[6]_9 outputConv[6871]
result_reg[6]_10 outputConv[6872]
result_reg[6]_11 outputConv[6873]
result_reg[7] outputConv[6874]
result_reg[7]_0 outputConv[6875]
result_reg[7]_1 outputConv[6876]
result_reg[7]_2 outputConv[6877]
result_reg[7]_3 outputConv[6911]
result_reg[7]_4 outputConv[8336]
result_reg[7]_5 outputConv[8337]
result_reg[7]_6 outputConv[8338]
result_reg[7]_7 outputConv[8339]
result_reg[7]_8 outputConv[8340]
result_reg[7]_9 outputConv[8341]
result_reg[7]_10 outputConv[8342]
result_reg[7]_11 outputConv[8343]
result_reg[8] outputConv[8344]
result_reg[8]_0 outputConv[8345]
result_reg[8]_1 outputConv[8346]
result_reg[8]_2 outputConv[8347]
result_reg[8]_3 outputConv[8348]
result_reg[8]_4 outputConv[8349]
result_reg[8]_5 outputConv[8350]
result_reg[8]_6 outputConv[8351]
result_reg[8]_7 outputConv[8383]
result_reg[8]_8 outputConv[8414]
result_reg[8]_9 outputConv[8415]
result_reg[8]_10 outputConv[8432]
result_reg[8]_11 outputConv[8433]
result_reg[9] outputConv[8434]
result_reg[9]_0 outputConv[8435]
result_reg[9]_1 outputConv[8438]
result_reg[9]_2 outputConv[8439]
result_reg[9]_3 outputConv[8440]
result_reg[9]_4 outputConv[8441]
result_reg[9]_5 outputConv[8442]
result_reg[9]_6 outputConv[8443]
result_reg[9]_7 outputConv[8444]
result_reg[9]_8 outputConv[8445]
result_reg[9]_9 outputConv[8446]
result_reg[9]_10 outputConv[8447]
result_reg[9]_11 outputConv[11312]
result_reg[10] outputConv[11313]
result_reg[10]_0 outputConv[11314]
result_reg[10]_1 outputConv[11315]
result_reg[10]_2 outputConv[11316]
result_reg[10]_3 outputConv[11317]
result_reg[10]_4 outputConv[11318]
result_reg[10]_5 outputConv[11319]
result_reg[10]_6 outputConv[11320]
result_reg[10]_7 outputConv[11321]
result_reg[10]_8 outputConv[11322]
result_reg[10]_9 outputConv[11323]
result_reg[10]_10 outputConv[11324]
result_reg[10]_11 outputConv[11325]
result_reg[10]_12 outputConv[11326]
result_reg[10]_13 outputConv[11327]
result_reg[10]_14 outputConv[11356]
result_reg[11] outputConv[11357]
result_reg[11]_0 outputConv[11358]
result_reg[11]_1 outputConv[11376]
result_reg[11]_2 outputConv[11377]
result_reg[11]_3 outputConv[11378]
result_reg[11]_4 outputConv[11379]
result_reg[11]_5 outputConv[11380]
result_reg[11]_6 outputConv[11381]
result_reg[11]_7 outputConv[11382]
result_reg[11]_8 outputConv[11383]
result_reg[11]_9 outputConv[11384]
result_reg[11]_10 outputConv[11385]
result_reg[11]_11 outputConv[11386]
result_reg[11]_12 outputConv[11387]
result_reg[11]_13 outputConv[11388]
result_reg[11]_14 outputConv[11389]
result_reg[12] outputConv[11390]
result_reg[12]_0 outputConv[11391]
result_reg[12]_1 outputConv[11455]
result_reg[12]_2 outputConv[11484]
result_reg[12]_3 outputConv[11485]
result_reg[12]_4 outputConv[11486]
result_reg[12]_5 outputConv[11487]
result_reg[12]_6 outputConv[11504]
result_reg[12]_7 outputConv[11505]
result_reg[12]_8 outputConv[11506]
result_reg[12]_9 outputConv[11507]
result_reg[12]_10 outputConv[11508]
result_reg[12]_11 outputConv[11509]
result_reg[13] outputConv[11510]
result_reg[13]_0 outputConv[11511]
result_reg[13]_1 outputConv[11512]
result_reg[13]_2 outputConv[11513]
result_reg[13]_3 outputConv[11514]
result_reg[13]_4 outputConv[11515]
result_reg[13]_5 outputConv[11516]
result_reg[13]_6 outputConv[11517]
result_reg[13]_7 outputConv[11518]
result_reg[13]_8 outputConv[11519]
result_reg[13]_9 result[14:0]
result_reg[13]_10 selectedInput1_reg[0]_0
result_reg[13]_11 selectedInput1_reg[0]_1
result_reg[14] selectedInput1_reg[0]_2
result_reg[14]_0 selectedInput1_reg[0]_3
result_reg[14]_1 selectedInput1_reg[0]_4
result_reg[14]_2 selectedInput1_reg[0]_5
result_reg[14]_3 selectedInput1_reg[0]_6
result_reg[14]_4 selectedInput1_reg[0]_7
result_reg[14]_5 selectedInput1_reg[1]_0
result_reg[14]_6 selectedInput1_reg[1]_1
result_reg[14]_7 selectedInput1_reg[1]_2
result_reg[14]_8 selectedInput1_reg[1]_3
result_reg[14]_9 selectedInput1_reg[1]_4
result_reg[14]_10 selectedInput1_reg[1]_5
result_reg[14]_11 selectedInput1_reg[1]_6
result_reg[15] selectedInput1_reg[1]_7
result_reg[15]_0 selectedInput1_reg[2]_0
result_reg[15]_1 selectedInput1_reg[2]_1
result_reg[15]_2 selectedInput1_reg[2]_2
result_reg[15]_3 selectedInput1_reg[2]_3
result_reg[15]_4 selectedInput1_reg[2]_4
result_reg[15]_5 selectedInput1_reg[2]_5
result_reg[15]_6 selectedInput1_reg[2]_6
result_reg[15]_7 selectedInput1_reg[3]_0
result_reg[15]_8 selectedInput1_reg[3]_1
result_reg[15]_9 selectedInput1_reg[3]_2
result_reg[15]_10 selectedInput1_reg[3]_3
result_reg[15]_11 selectedInput1_reg[3]_4
rowNumber_reg[0]_rep__1 selectedInput1_reg[3]_5
rowNumber_reg[0]_rep__3 selectedInput1_reg[3]_6
rowNumber_reg[1] selectedInput1_reg[3]_7
rowNumber_reg[1]_rep__5 selectedInput1_reg[4]_0
rowNumber_reg[1]_rep__5_0 selectedInput1_reg[4]_1
rowNumber_reg[1]_rep__5_1 selectedInput1_reg[4]_2
rowNumber_reg[1]_rep__5_2 selectedInput1_reg[4]_3
rowNumber_reg[1]_rep__5_3 selectedInput1_reg[4]_4
rowNumber_reg[1]_0 selectedInput1_reg[4]_5
rowNumber_reg[1]_1 selectedInput1_reg[4]_6
rowNumber_reg[1]_2 selectedInput1_reg[4]_7
rowNumber_reg[2] selectedInput1_reg[5]_0
rowNumber_reg[2]_rep__6 selectedInput1_reg[5]_1
rowNumber_reg[2]_rep__6_0 selectedInput1_reg[5]_2
rowNumber_reg[2]_rep__6_1 selectedInput1_reg[5]_3
rowNumber_reg[2]_rep__6_2 selectedInput1_reg[5]_4
rowNumber_reg[2]_rep__6_3 selectedInput1_reg[5]_5
rowNumber_reg[2]_rep__6_4 selectedInput1_reg[5]_6
rowNumber_reg[2]_rep__6_5 selectedInput1_reg[6]_0
rowNumber_reg[2]_rep__6_6 selectedInput1_reg[6]_1
rowNumber_reg[2]_rep__6_7 selectedInput1_reg[6]_2
rowNumber_reg[2]_rep__6_8 selectedInput1_reg[6]_3
rowNumber_reg[2]_rep__6_9 selectedInput1_reg[6]_4
rowNumber_reg[2]_rep__6_10 selectedInput1_reg[6]_5
rowNumber_reg[2]_rep__6_11 selectedInput1_reg[6]_6
rowNumber_reg[2]_rep__6_12 selectedInput1_reg[7]_0
rowNumber_reg[2]_rep__6_13 selectedInput1_reg[7]_1
rowNumber_reg[2]_rep__6_14 selectedInput1_reg[7]_2
rowNumber_reg[2]_rep__6_15 selectedInput1_reg[7]_3
rowNumber_reg[2]_rep__6_16 selectedInput1_reg[7]_4
rowNumber_reg[2]_rep__6_17 selectedInput1_reg[7]_5
rowNumber_reg[2]_rep__6_18 selectedInput1_reg[7]_6
rowNumber_reg[2]_rep__6_19 selectedInput1_reg[8]_0
rowNumber_reg[2]_rep__6_20 selectedInput1_reg[8]_1
rowNumber_reg[2]_rep__6_21 selectedInput1_reg[8]_2
rowNumber_reg[2]_rep__6_22 selectedInput1_reg[8]_3
rowNumber_reg[2]_rep__6_23 selectedInput1_reg[8]_4
rowNumber_reg[2]_rep__6_24 selectedInput1_reg[8]_5
rowNumber_reg[2]_rep__6_25 selectedInput1_reg[8]_6
rowNumber_reg[2]_rep__6_26 selectedInput1_reg[9]_0
rowNumber_reg[2]_rep__6_27 selectedInput1_reg[9]_1
rowNumber_reg[2]_rep__6_28 selectedInput1_reg[9]_2
rowNumber_reg[2]_rep__6_29 selectedInput1_reg[9]_3
rowNumber_reg[2]_rep__6_30 selectedInput1_reg[9]_4
rowNumber_reg[2]_rep__6_31 selectedInput1_reg[9]_5
rowNumber_reg[2]_rep__6_32 selectedInput1_reg[9]_6
rowNumber_reg[2]_rep__6_33 selectedInput1_reg[9]_7
rowNumber_reg[2]_rep__6_34 selectedInput1_reg[11]_0
rowNumber_reg[2]_rep__6_35 selectedInput1_reg[11]_1
rowNumber_reg[2]_rep__6_36 selectedInput1_reg[11]_2
rowNumber_reg[2]_rep__6_37 selectedInput1_reg[11]_3
rowNumber_reg[2]_rep__6_38 selectedInput1_reg[11]_4
rowNumber_reg[2]_rep__6_39 selectedInput1_reg[11]_5
rowNumber_reg[2]_rep__6_40 selectedInput1_reg[11]_6
rowNumber_reg[2]_rep__6_41 selectedInput1_reg[12]_0
rowNumber_reg[2]_0 selectedInput1_reg[12]_1
rowNumber_reg[3] selectedInput1_reg[12]_2
rowNumber_reg[3]_rep selectedInput1_reg[12]_3
rowNumber_reg[3]_rep__0 selectedInput1_reg[13]_0
rowNumber_reg[3]_rep__0_0 selectedInput1_reg[13]_1
rowNumber_reg[3]_rep__0_1 selectedInput1_reg[13]_2
rowNumber_reg[3]_rep__0_2 selectedInput1_reg[13]_3
rowNumber_reg[3]_rep__0_3 selectedInput1_reg[13]_4
rowNumber_reg[3]_rep__0_4 selectedInput1_reg[13]_5
rowNumber_reg[3]_rep__0_5 selectedInput1_reg[13]_6
rowNumber_reg[3]_rep__0_6 selectedInput1_reg[14]_0
rowNumber_reg[3]_rep__0_7 selectedInput1_reg[14]_1
rowNumber_reg[3]_rep__0_8 selectedInput1_reg[14]_2
rowNumber_reg[3]_rep__0_9 selectedInput1_reg[14]_3
rowNumber_reg[3]_rep__0_10 selectedInput1_reg[15]_0[3:0]
rowNumber_reg[3]_rep__0_11
rowNumber_reg[3]_rep__0_12
rowNumber_reg[3]_rep__0_13
rowNumber_reg[3]_rep__0_14
rowNumber_reg[3]_rep__0_15
rowNumber_reg[3]_rep__0_16
rowNumber_reg[3]_rep__0_17
rowNumber_reg[3]_rep__0_18
rowNumber_reg[3]_rep__0_19
rowNumber_reg[3]_rep__0_20
rowNumber_reg[3]_rep__0_21
rowNumber_reg[3]_rep__0_22
rowNumber_reg[3]_rep__0_23
rowNumber_reg[3]_rep__0_24
rowNumber_reg[3]_rep__0_25
rowNumber_reg[3]_rep__0_26
rowNumber_reg[3]_rep__0_27
rowNumber_reg[3]_rep__2
rowNumber_reg[3]_rep__3
rowNumber_reg[3]_rep__3_0
rowNumber_reg[3]_rep__3_1
rowNumber_reg[3]_rep__3_2
rowNumber_reg[3]_rep__3_3
rowNumber_reg[3]_rep__3_4
rowNumber_reg[3]_rep__3_5
rowNumber_reg[3]_rep__3_6
rowNumber_reg[3]_rep__3_7
rowNumber_reg[3]_rep__3_8
rowNumber_reg[3]_rep__3_9
rowNumber_reg[3]_rep__3_10
rowNumber_reg[3]_rep__3_11
rowNumber_reg[3]_rep__3_12
rowNumber_reg[3]_rep__3_13
rowNumber_reg[3]_rep__3_14
rowNumber_reg[3]_rep__3_15
rowNumber_reg[3]_rep__3_16
rowNumber_reg[3]_rep__3_17
rowNumber_reg[3]_rep__3_18
rowNumber_reg[3]_rep__3_19
rowNumber_reg[3]_rep__3_20
rowNumber_reg[3]_rep__3_21
rowNumber_reg[3]_rep__3_22
rowNumber_reg[3]_rep__3_23
rowNumber_reg[3]_rep__3_24
rowNumber_reg[3]_rep__3_25
rowNumber_reg[3]_rep__3_26
rowNumber_reg[3]_rep__3_27
rowNumber_reg[3]_rep__3_28
rowNumber_reg[3]_rep__3_29
rowNumber_reg[3]_rep__3_30
rowNumber_reg[3]_rep__3_31
rowNumber_reg[3]_rep__3_32
rowNumber_reg[3]_rep__3_33
rowNumber_reg[3]_rep__3_34
rowNumber_reg[3]_rep__3_35
rowNumber_reg[3]_rep__3_36
rowNumber_reg[3]_rep__3_37
rowNumber_reg[3]_rep__3_38
rowNumber_reg[3]_rep__3_39
rowNumber_reg[3]_rep__3_40
rowNumber_reg[3]_rep__3_41
rowNumber_reg[3]_rep__3_42
rowNumber_reg[3]_rep__3_43
rowNumber_reg[3]_rep__3_44
rowNumber_reg[3]_rep__3_45
rowNumber_reg[3]_rep__3_46
rowNumber_reg[3]_rep__3_47
rowNumber_reg[3]_rep__3_48
rowNumber_reg[3]_rep__3_49
rowNumber_reg[3]_rep__3_50
rowNumber_reg[3]_rep__3_51
rowNumber_reg[3]_rep__3_52
rowNumber_reg[3]_rep__3_53
rowNumber_reg[3]_rep__3_54
rowNumber_reg[3]_rep__3_55
rowNumber_reg[3]_rep__3_56
rowNumber_reg[3]_rep__3_57
rowNumber_reg[3]_rep__3_58
rowNumber_reg[3]_rep__3_59
rowNumber_reg[3]_rep__3_60
rowNumber_reg[3]_rep__3_61
rowNumber_reg[3]_rep__3_62
rowNumber_reg[3]_rep__3_63
rowNumber_reg[3]_rep__3_64
rowNumber_reg[3]_0
rowNumber_reg[3]_1
rowNumber_reg[3]_2
rowNumber_reg[3]_3
rowNumber_reg[3]_4
rowNumber_reg[3]_5
rowNumber_reg[3]_6
rowNumber_reg[3]_7
rowNumber_reg[3]_8
rowNumber_reg[3]_9
rowNumber_reg[3]_10
rowNumber_reg[4]_rep
rowNumber_reg[4]_rep__0
rowNumber_reg[4]_rep__3
convUnit_3
outputConv_reg[231]_i_2
I0
I1
I2 O
I3
I4
I5
LUT6
outputConv_reg[234]_i_2
I0 outputConv_reg[231]
I1 CLR
I2 O D Q
I3 G
I4 GE
I5 LDCE
LUT6 outputConv_reg[234]
outputConv_reg[304]_i_2 CLR
I0 D Q
I1 G
I2 O GE outputConv_OBUF[231]_inst
LDCE I O
I3
I4 outputConv_reg[304] OBUF
LUT5 CLR outputConv_OBUF[234]_inst
I O
outputConv_reg[432]_i_2 D Q
I0 G OBUF
I1 GE outputConv_OBUF[304]_inst
LDCE I O
I2 O
I3 outputConv_reg[432] OBUF
I4 CLR outputConv_OBUF[432]_inst
LUT5 I O
D Q
outputConv_reg[576]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[576]
I3 CLR outputConv_OBUF[576]_inst
LUT4 669 I O
D Q
outputConv_reg[704]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[704]
I3 CLR outputConv_OBUF[704]_inst
LUT4 669 I O
D Q
outputConv_reg[736]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[736]
I3 CLR outputConv_OBUF[736]_inst
LUT4 I O
D Q
outputConv_reg[1024]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[1024]
I3 CLR outputConv_OBUF[1024]_inst
LUT4 914 I O
D Q
outputConv_reg[1659]_i_2 G OBUF
I0 GE
I1 LDCE
I2 O outputConv_reg[1659]
I3 CLR outputConv_OBUF[1659]_inst
520 I O
I4 D Q
I5 G OBUF
LUT6 GE
outputConv_reg[1661]_i_2 LDCE
I0 outputConv_reg[1661]
I1 CLR outputConv_OBUF[1661]_inst
518 I O
I2 O D Q
I3 G OBUF
I4 GE
I5 LDCE
LUT6 outputConv_reg[1728]
outputConv_reg[1728]_i_2 CLR outputConv_OBUF[1728]_inst
617 I O
I0 D Q
I1 O G OBUF
I2 GE
I3 LDCE
LUT4 outputConv_reg[1760]
outputConv_reg[1760]_i_2 CLR outputConv_OBUF[1760]_inst
I O
I0 D Q
I1 O G OBUF
I2 GE
I3 LDCE
LUT4
outputConv_reg[1968]_i_2 outputConv_reg[1968]
I0 CLR outputConv_OBUF[1968]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
LUT5 outputConv_reg[2048]
outputConv_reg[2048]_i_2 CLR outputConv_OBUF[2048]_inst
835 I O
I0 D Q
I1 O G OBUF
I2 GE
I3 LDCE
LUT4
outputConv_reg[2282]_i_2 outputConv_reg[2282]
I0 CLR outputConv_OBUF[2282]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
I5
LUT6
outputConv_reg[2480]_i_2 outputConv_reg[2480]
I0 CLR outputConv_OBUF[2480]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE outputConv_OBUF[2784]_inst
LDCE I O
I4
LUT5 outputConv_reg[2784] OBUF
outputConv_reg[2784]_i_2 CLR outputConv_OBUF[3072]_inst
I O
I0 D Q
I1 O G OBUF
I2 GE outputConv_OBUF[3707]_inst
LDCE I O
I3
LUT4 outputConv_reg[3072] OBUF
outputConv_reg[3072]_i_2 CLR outputCounter_reg[1]
756
I0 D Q
C
I1 O G
CE
I2 GE Q
CLR
I3 LDCE
1
D
LUT4 outputConv_reg[3707]
outputConv_reg[3707]_i_2 CLR FDCE
418
I0 D Q outputCounter_reg[5]
I1 G
C
I2 O GE
CE
I3 LDCE Q
CLR
I4 5
D
I5
LUT6 FDCE
I3 LDCE OBUF
LUT4 outputConv_reg[4096]
outputConv_reg[4096]_i_2 CLR outputConv_OBUF[4096]_inst
677 I O
I0 D Q
I1 O G OBUF
I2 GE
I3 LDCE
LUT4
outputConv_reg[4327]_i_2 outputConv_reg[4327]
I0 CLR outputConv_OBUF[4327]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
I5 outputConv_reg[4330]
LUT6 CLR outputConv_OBUF[4330]_inst
I O
outputConv_reg[4330]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3 outputConv_reg[4800]
I4 CLR outputConv_OBUF[4800]_inst
429 I O
I5 D Q
LUT6 G OBUF
outputConv_reg[4800]_i_2 GE
I0 LDCE
I1 O outputConv_reg[4832]
I2 CLR outputConv_OBUF[4832]_inst
LUT3 I O
D Q
outputConv_reg[4832]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[5052]
LUT3 CLR outputConv_OBUF[5052]_inst
I O
outputConv_reg[5052]_i_2 D Q
I0 G OBUF
I1 O GE
I2 LDCE
LUT3 outputConv_reg[5824]
outputConv_reg[5824]_i_2 CLR outputConv_OBUF[5824]_inst
361 I O
I0 D Q
I1 O G OBUF
I2 GE
LUT3 LDCE
outputConv_reg[5856]_i_2 outputConv_reg[5856]
I0 CLR outputConv_OBUF[5856]_inst
I O
I1 O D Q
I2 G OBUF
LUT3 GE
outputConv_reg[6076]_i_2 LDCE
I0 outputConv_reg[6076]
I1 O CLR outputConv_OBUF[6076]_inst
I O
I2 D Q
LUT3 G OBUF
outputConv_reg[6378]_i_2 GE
I0 LDCE
I1 outputConv_reg[6378]
I2 O CLR outputConv_OBUF[6378]_inst
210 I O
I3 D Q
I4 G OBUF
I5 GE
LUT6 LDCE
outputConv_reg[6779]_i_2 outputConv_reg[6779]
I0 CLR outputConv_OBUF[6779]_inst
277 I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
LUT5 outputConv_reg[6781]
outputConv_reg[6781]_i_2 CLR outputConv_OBUF[6781]_inst
275 I O
I0 D Q
I1 G OBUF
I2 O GE
I3 LDCE
I4 outputConv_reg[6880]
LUT5 CLR outputConv_OBUF[6880]_inst
I O
outputConv_reg[6880]_i_2 D Q
I0 G OBUF
I1 O GE
I2 LDCE
LUT3 outputConv_reg[7100]
outputConv_reg[7100]_i_2 CLR outputConv_OBUF[7100]_inst
I O
I0 D Q
I1 O G OBUF
I2 GE
LUT3 LDCE
outputConv_reg[7803]_i_2 outputConv_reg[7803]
I0 CLR outputConv_OBUF[7803]_inst
222 I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
LUT5 outputConv_reg[7805]
outputConv_reg[7805]_i_2 CLR outputConv_OBUF[7805]_inst
220 I O
I0 D Q
I1 G OBUF
I2 O GE
I3 LDCE
I4 outputConv_reg[7904]
LUT5 CLR outputConv_OBUF[7904]_inst
I O
outputConv_reg[7904]_i_2 D Q
I0 G OBUF
I1 O GE
I2 LDCE
LUT3 outputConv_reg[8124]
outputConv_reg[8124]_i_2 CLR outputConv_OBUF[8124]_inst
I O
I0 D Q
I1 O G OBUF
I2 GE
LUT3 LDCE
outputConv_reg[8423]_i_2 outputConv_reg[8423]
I0 CLR outputConv_OBUF[8423]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
I5 outputConv_reg[8426]
LUT6 CLR outputConv_OBUF[8426]_inst
I O
outputConv_reg[8426]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3 outputConv_reg[8896]
I4 CLR outputConv_OBUF[8896]_inst
221 I O
I5 D Q
LUT6 G OBUF
outputConv_reg[8896]_i_2 GE
I0 LDCE
I1 O outputConv_reg[8928]
I2 CLR outputConv_OBUF[8928]_inst
I O
I3 D Q
LUT4 G OBUF
outputConv_reg[8928]_i_2 GE
I0 LDCE
I1 O outputConv_reg[9008]
I2 CLR outputConv_OBUF[9008]_inst
I O
I3 D Q
LUT4 G OBUF
outputConv_reg[9008]_i_2 GE
I0 LDCE
I1 outputConv_OBUF[9216]_inst
I O
I2 O outputConv_reg[9216]
I3 CLR OBUF
252
I4 D Q
LUT5 G
outputConv_reg[9216]_i_2 GE
I0 LDCE outputConv_OBUF[9520]_inst
I O
I1 O outputConv_reg[9520]
I2 CLR OBUF
I3 D Q
LUT4 G
GE
outputConv_reg[9520]_i_2 LDCE
I0 outputConv_reg[9851]
I1 CLR outputConv_OBUF[9851]_inst
146 I O
I2 O D Q
I3 G OBUF
I4 GE
LUT5 LDCE
outputConv_reg[9851]_i_2 outputConv_reg[9853]
I0 CLR outputConv_OBUF[9853]_inst
144 I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
I5 outputConv_reg[9920]
LUT6 CLR outputConv_OBUF[9920]_inst
169 I O
outputConv_reg[9853]_i_2 D Q
I0 G OBUF
I1 GE outputConv_OBUF[9952]_inst
LDCE I O
I2 O
I3 outputConv_reg[9952] OBUF
I4 CLR
I5 D Q
LUT6 G
outputConv_reg[9920]_i_2 GE outputConv_OBUF[10160]_inst
LDCE I O
I0
I1 O outputConv_reg[10160] OBUF
I2 CLR
I3 D Q
LUT4 G
GE
outputConv_reg[234]_i_5 I2 O D Q
I0 I3 G
I1 O I4 GE
I2 LUT5 LDCE
I3 outputConv_reg[10240]_i_2
LUT4 I0
I1 O
I2 outputConv_reg[10672]
I3 CLR
LUT4 D Q
outputConv_reg[10474]_i_2 G
I0 GE
I1 LDCE
I2 O outputConv_reg[10875]
I3 CLR outputConv_OBUF[10672]_inst
90 I O
I4 D Q
I5 G OBUF
LUT6 GE outputConv_OBUF[10875]_inst
LDCE I O
outputConv_reg[10877] OBUF
CLR outputConv_OBUF[10877]_inst
88 I O
outputConv_reg[10672]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3
I4
LUT5 outputConv_reg[10976]
outputConv_reg[10875]_i_2 CLR
I0 D Q
I1 G outputConv_OBUF[10976]_inst
I O
I2 O GE
I3 LDCE OBUF
I4
outputConv_reg[0]_i_3
I5 1
I0
LUT6
7
I1
outputConv_reg[1]_i_7
I2 O 1
outputConv_reg[10877]_i_2 6 I0
I3 7
I0 0 I1
I4
I1 I2 O
LUT5
6
I2 O I3
0
I3 I4
I4 LUT5
outputConv_reg[0]_i_4
I5 0 outputConv_reg[113]_i_7
I0 0
LUT6 I0
6
outputConv_reg[2282]_i_4 I1 O 6
I1 O
I0 I2
outputConv_reg[10976]_i_2 7 I2
I1 I3 7
I0 I3
I2 O LUT4
I1 O LUT4
I3
I2 outputConv_reg[122]_i_6
I4 outputConv_reg[1]_i_3 0
I3 1 I0
LUT5 I0
LUT4 6
7 I1 O
I1
outputConv_reg[11264]_i_2 I2
I2 O 7
I0 6 I3
outputConv_reg[2282]_i_5 I3
I1 O LUT4
0
I0 I4
I2
I1 O LUT5
I3 outputConv_reg[206]_i_5
I2 outputConv_reg[1]_i_4 1
LUT4 I0
LUT3 0
I0 7
6 I1
I1 O
I2 O
outputConv_reg[234]_i_6 I2 6
7 I3
I0 I3 0
I4
I1 O LUT4
LUT5
I2 outputConv_reg[1]_i_6
7 outputConv_reg[206]_i_7
I3 I0 0
I0
LUT4 I1 O 6
6 I1 O
I2
I2
LUT3
7
I3
LUT4
outputConv_reg[11840]_i_2
outputConv_reg[292]_i_4
I0 outputConv_reg[12]_i_4 1
7 I0
I1 O I0 7
I1
I2 I1 O
6 I2 O
I3 I2 6
I3
LUT4 LUT3
0
I4
outputConv_reg[12000]_i_2 LUT5
I0 outputConv_reg[0]_i_6
7 outputConv_reg[3462]_i_3
I1 O I0 0
I0
I2 I1 O 6
6 I1 O
I3 I2
I2
LUT4 LUT3
7
I3
LUT4
outputConv_reg[2]_i_3
1 outputConv_reg[3507]_i_3
I0 1
7 I0
I1 7
I1
I2 O
6 I2 O
I3 6
0 I3
I4 0
I4
LUT5
LUT5
outputConv_reg[236]_i_6
I0
I1
outputConv_reg[11264] I2 O
CLR I3
94
D Q I4
G LUT5
GE
LDCE outputConv_OBUF[11264]_inst
I O
outputConv_reg[11840]
CLR OBUF
65
D Q outputConv_OBUF[11840]_inst
I O
G
GE OBUF
LDCE outputConv_OBUF[12000]_inst
I O
outputConv_reg[12000]
CLR OBUF
D Q
G
GE
LDCE
outputConv_reg[2]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[2]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[5]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[3]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[3]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[3]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[4]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[4]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[4]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[4]_i_9
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[5]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[5]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[6]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[6]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[4384]_i_3
2
I0
1
I1
0
I2 O
6
I3
I4
7
I5
LUT6
outputConv_reg[7]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[7]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[6]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[7]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[10]_i_5
4
I0
2
I1
1
I2 O
0
I3
3
I4
LUT5
outputConv_reg[13]_i_4
7
I0
I1 O
6
I2
LUT3
outputConv_reg[14]_i_4
7
I0
I1 O
6
I2
LUT3
outputConv_reg[12442]_i_3
3
I0
0
I1 O
1
I2
2
I3
LUT4
outputConv_reg[15]_i_4
7
I0
I1 O
6
I2
LUT3
outputConv_reg[33]_i_4
7
I0
I1 O
6
I2
LUT3
column_reg[3]_rep__0
C
CE
Q
column[3]_rep__0_i_1 CLR
I0 O D
LUT1
FDCE
column_reg[3]_rep__1
CE
Q
column[3]_rep__1_i_1 CLR
I0 O D
LUT1
FDCE
column_reg[3]
C
CE
Q
column[3]_i_2 CLR
I0 O D
LUT1
FDCE
column[3]_rep__2_i_1
column_reg[3]_rep__2
I0 O
LUT1 C
CE
Q
internalReset_i_1 CLR
I0 D
rowNumber[5]_i_2 I1 O
FDCE
I0 I2
3 rowNumber[5]_i_1
I1 I3
4 I0
I2 O LUT4
1 I1
I3
I2 O
I4
I3
I5
column[3]_i_1 I4
LUT6
I0 I5
I1 LUT6
rowNumber_reg[5]
I2 O
C I3
CE I4
Q
CLR LUT5
D internalReset_reg
FDCE C
CE
Q
D
PRE
FDPE
counter[31]_i_1
I0
3
I1 O
4
I2
I3
LUT4
rowNumber_reg[0]
CE 0
Q
CLR
rowNumber[0]_i_1 D
0
I0 O
FDCE
LUT1
rowNumber_reg[1]
C
CE 1
Q
rowNumber[1]_i_1 CLR
I0 O D
1
I1
FDCE
LUT2
genblk1[13].CU
Q[4:0]
clk_IBUF_BUFG
column_reg[3]
column_reg[3]_rep__0
column_reg[3]_rep__1[315:0]
column_reg[3]_rep__1_0
column_reg[3]_rep__2
filter_IBUF[0:399]
... image_IBUF[843:0]
internalReset_reg
0 outputConv1
outputCounter_reg[6]
outputCounter_reg[6]_0
outputCounter_reg[6]_1
outputCounter_reg[6]_2
outputCounter_reg[6]_3
outputCounter_reg[6]_4
outputCounter_reg[6]_5
outputCounter_reg[6]_6
outputCounter_reg[6]_7
outputCounter_reg[6]_8
outputCounter_reg[6]_9
outputCounter_reg[6]_10
outputCounter_reg[6]_11
outputCounter_reg[6]_12
outputCounter_reg[6]_13
outputCounter_reg[6]_14
outputCounter_reg[6]_15
outputCounter_reg[6]_16
outputCounter_reg[6]_17
outputCounter_reg[6]_18
outputCounter_reg[6]_19
outputCounter_reg[6]_20
outputCounter_reg[6]_21
outputCounter_reg[6]_22
outputCounter_reg[6]_23
outputCounter_reg[6]_24
outputCounter_reg[6]_25
outputCounter_reg[6]_26
outputCounter_reg[6]_27
outputCounter_reg[6]_28
outputCounter_reg[6]_29
outputCounter_reg[6]_30
outputCounter_reg[6]_31
outputCounter_reg[6]_32
outputCounter_reg[6]_33
outputCounter_reg[6]_34
outputCounter_reg[6]_35
outputCounter_reg[6]_36
outputCounter_reg[6]_37
outputCounter_reg[6]_38
outputCounter_reg[6]_39
outputCounter_reg[6]_40
outputCounter_reg[6]_41
outputCounter_reg[6]_42
outputCounter_reg[6]_43
outputCounter_reg[6]_44
outputCounter_reg[6]_45
outputCounter_reg[6]_46
outputCounter_reg[6]_47
outputCounter_reg[6]_48
outputCounter_reg[6]_49
outputCounter_reg[6]_50
outputCounter_reg[6]_51
outputCounter_reg[6]_52
outputCounter_reg[6]_53
outputCounter_reg[6]_54
outputCounter_reg[6]_55
outputCounter_reg[6]_56
outputCounter_reg[6]_57
outputCounter_reg[6]_58
outputCounter_reg[6]_59
outputCounter_reg[6]_60
outputCounter_reg[6]_61
outputCounter_reg[6]_62
outputCounter_reg[6]_63
outputCounter_reg[6]_64
outputCounter_reg[6]_65
outputCounter_reg[6]_66
outputCounter_reg[6]_67
outputCounter_reg[6]_68
outputCounter_reg[6]_69
outputCounter_reg[6]_70
outputCounter_reg[11]
outputCounter_reg[11]_0
outputCounter_reg[11]_1
outputCounter_reg[11]_2
outputCounter_reg[11]_3
outputCounter_reg[11]_4
outputCounter_reg[11]_5
outputCounter_reg[11]_6
outputCounter_reg[11]_7
outputCounter_reg[11]_8
outputCounter_reg[11]_9
outputCounter_reg[11]_10
outputCounter_reg[11]_11
outputCounter_reg[11]_12
outputCounter_reg[11]_13 D[1275:0]
outputCounter_reg[11]_14 outputConv[6288]
outputCounter_reg[11]_15 outputConv[6289]
outputCounter_reg[11]_16 outputConv[6290]
outputCounter_reg[11]_17 outputConv[6291]
outputCounter_reg[11]_18 outputConv[6292]
outputCounter_reg[11]_19 outputConv[6293]
outputCounter_reg[11]_20 outputConv[6294]
outputCounter_reg[11]_21 outputConv[6295]
outputCounter_reg[11]_22 outputConv[6296]
outputCounter_reg[11]_23 outputConv[6297]
outputCounter_reg[11]_24 outputConv[6298]
outputCounter_reg[11]_25 outputConv[6299]
outputCounter_reg[11]_26 outputConv[6300]
result_reg[0] outputConv[6301]
result_reg[0]_0 outputConv[6302]
result_reg[0]_1 outputConv[6303]
result_reg[0]_2 outputConv[6335]
result_reg[0]_3 outputConv[6364]
result_reg[0]_4 outputConv[6365]
result_reg[0]_5 outputConv[6366]
result_reg[0]_6 outputConv[6367]
result_reg[0]_7 outputConv[6384]
result_reg[0]_8 outputConv[6385]
result_reg[0]_9 outputConv[6386]
result_reg[0]_10 outputConv[6387]
result_reg[0]_11 outputConv[6388]
result_reg[0]_12 outputConv[6389]
result_reg[0]_13 outputConv[6390]
result_reg[0]_14 outputConv[6391]
result_reg[0]_15 outputConv[6392]
result_reg[0]_16 outputConv[6393]
result_reg[0]_17 outputConv[6394]
result_reg[0]_18 outputConv[6395]
result_reg[1] outputConv[6396]
result_reg[1]_0 outputConv[6397]
result_reg[1]_1 outputConv[6398]
result_reg[1]_2 outputConv[6416]
result_reg[1]_3 outputConv[6417]
result_reg[1]_4 outputConv[6418]
result_reg[1]_5 outputConv[6419]
result_reg[1]_6 outputConv[6420]
result_reg[1]_7 outputConv[6421]
result_reg[1]_8 outputConv[6422]
result_reg[1]_9 outputConv[6423]
result_reg[1]_10 outputConv[6424]
result_reg[1]_11 outputConv[6425]
result_reg[1]_12 outputConv[6426]
result_reg[1]_13 outputConv[6427]
result_reg[1]_14 outputConv[6428]
result_reg[1]_15 outputConv[6429]
result_reg[1]_16 outputConv[6430]
result_reg[2] outputConv[6431]
result_reg[2]_0 outputConv[6449]
result_reg[2]_1 outputConv[6450]
result_reg[2]_2 outputConv[6451]
result_reg[2]_3 outputConv[6452]
result_reg[2]_4 outputConv[6453]
result_reg[2]_5 outputConv[6454]
result_reg[2]_6 outputConv[6455]
result_reg[2]_7 outputConv[6456]
result_reg[2]_8 outputConv[6457]
result_reg[2]_9 outputConv[6458]
result_reg[2]_10 outputConv[6459]
result_reg[2]_11 outputConv[6460]
result_reg[2]_12 outputConv[6461]
result_reg[2]_13 outputConv[6462]
result_reg[2]_14 outputConv[6463]
result_reg[2]_15 outputConv[6512]
result_reg[2]_16 outputConv[6513]
result_reg[2]_17 outputConv[6514]
result_reg[2]_18 outputConv[6515]
result_reg[2]_19 outputConv[6518]
result_reg[3] outputConv[6519]
result_reg[3]_0 outputConv[6520]
result_reg[3]_1 outputConv[6521]
result_reg[3]_2 outputConv[6522]
result_reg[3]_3 outputConv[6523]
result_reg[3]_4 outputConv[6524]
result_reg[3]_5 outputConv[6525]
result_reg[3]_6 outputConv[6526]
result_reg[3]_7 outputConv[6527]
result_reg[3]_8 outputConv[6575]
result_reg[3]_9 outputConv[6576]
result_reg[3]_10 outputConv[6577]
result_reg[3]_11 outputConv[6578]
result_reg[3]_12 outputConv[6579]
result_reg[3]_13 outputConv[6580]
result_reg[3]_14 outputConv[6581]
result_reg[3]_15 outputConv[6582]
result_reg[3]_16 outputConv[6583]
result_reg[3]_17 outputConv[6584]
result_reg[3]_18 outputConv[6585]
result_reg[3]_19 outputConv[6586]
result_reg[4] outputConv[6587]
result_reg[4]_0 outputConv[6588]
result_reg[4]_1 outputConv[6589]
result_reg[4]_2 outputConv[6590]
result_reg[4]_3 outputConv[6608]
result_reg[4]_4 outputConv[6609]
result_reg[4]_5 outputConv[6610]
result_reg[4]_6 outputConv[6611]
result_reg[4]_7 outputConv[6612]
result_reg[4]_8 outputConv[6613]
result_reg[4]_9 outputConv[6614]
result_reg[4]_10 outputConv[6615]
result_reg[4]_11 outputConv[6616]
result_reg[5] outputConv[6617]
result_reg[5]_0 outputConv[6618]
result_reg[5]_1 outputConv[6619]
result_reg[5]_2 outputConv[6622]
result_reg[5]_3 outputConv[6623]
result_reg[5]_4 outputConv[6644]
result_reg[5]_5 outputConv[6645]
result_reg[5]_6 outputConv[6648]
result_reg[5]_7 outputConv[6649]
result_reg[5]_8 outputConv[6650]
result_reg[5]_9 outputConv[6651]
result_reg[5]_10 outputConv[6654]
result_reg[5]_11 outputConv[6655]
result_reg[6] outputConv[6704]
result_reg[6]_0 outputConv[6772]
result_reg[6]_1 outputConv[6773]
result_reg[6]_2 outputConv[6864]
result_reg[6]_3 outputConv[6865]
result_reg[6]_4 outputConv[6866]
result_reg[6]_5 outputConv[6867]
result_reg[6]_6 outputConv[6868]
result_reg[6]_7 outputConv[6869]
result_reg[6]_8 outputConv[6870]
result_reg[6]_9 outputConv[6871]
result_reg[6]_10 outputConv[6872]
result_reg[6]_11 outputConv[6873]
result_reg[7] outputConv[6874]
result_reg[7]_0 outputConv[6875]
result_reg[7]_1 outputConv[6876]
result_reg[7]_2 outputConv[6877]
result_reg[7]_3 outputConv[6911]
result_reg[7]_4 outputConv[8336]
result_reg[7]_5 outputConv[8337]
result_reg[7]_6 outputConv[8338]
result_reg[7]_7 outputConv[8339]
result_reg[7]_8 outputConv[8340]
result_reg[7]_9 outputConv[8341]
result_reg[7]_10 outputConv[8342]
result_reg[7]_11 outputConv[8343]
result_reg[8] outputConv[8344]
result_reg[8]_0 outputConv[8345]
result_reg[8]_1 outputConv[8346]
result_reg[8]_2 outputConv[8347]
result_reg[8]_3 outputConv[8348]
result_reg[8]_4 outputConv[8349]
result_reg[8]_5 outputConv[8350]
result_reg[8]_6 outputConv[8351]
result_reg[8]_7 outputConv[8383]
result_reg[8]_8 outputConv[8414]
result_reg[8]_9 outputConv[8415]
result_reg[8]_10 outputConv[8432]
result_reg[8]_11 outputConv[8433]
result_reg[9] outputConv[8434]
result_reg[9]_0 outputConv[8435]
result_reg[9]_1 outputConv[8438]
result_reg[9]_2 outputConv[8439]
result_reg[9]_3 outputConv[8440]
result_reg[9]_4 outputConv[8441]
result_reg[9]_5 outputConv[8442]
result_reg[9]_6 outputConv[8443]
result_reg[9]_7 outputConv[8444]
result_reg[9]_8 outputConv[8445]
result_reg[9]_9 outputConv[8446]
result_reg[9]_10 outputConv[8447]
result_reg[9]_11 outputConv[11312]
result_reg[10] outputConv[11313]
result_reg[10]_0 outputConv[11314]
result_reg[10]_1 outputConv[11315]
result_reg[10]_2 outputConv[11316]
result_reg[10]_3 outputConv[11317]
result_reg[10]_4 outputConv[11318]
result_reg[10]_5 outputConv[11319]
result_reg[10]_6 outputConv[11320]
result_reg[10]_7 outputConv[11321]
result_reg[10]_8 outputConv[11322]
result_reg[10]_9 outputConv[11323]
result_reg[10]_10 outputConv[11324]
result_reg[10]_11 outputConv[11325]
result_reg[10]_12 outputConv[11326]
result_reg[10]_13 outputConv[11327]
result_reg[10]_14 outputConv[11356]
result_reg[11] outputConv[11357]
result_reg[11]_0 outputConv[11358]
result_reg[11]_1 outputConv[11376]
result_reg[11]_2 outputConv[11377]
result_reg[11]_3 outputConv[11378]
result_reg[11]_4 outputConv[11379]
result_reg[11]_5 outputConv[11380]
result_reg[11]_6 outputConv[11381]
result_reg[11]_7 outputConv[11382]
result_reg[11]_8 outputConv[11383]
result_reg[11]_9 outputConv[11384]
result_reg[11]_10 outputConv[11385]
result_reg[11]_11 outputConv[11386]
result_reg[11]_12 outputConv[11387]
result_reg[11]_13 outputConv[11388]
result_reg[11]_14 outputConv[11389]
result_reg[12] outputConv[11390]
result_reg[12]_0 outputConv[11391]
result_reg[12]_1 outputConv[11455]
result_reg[12]_2 outputConv[11484]
result_reg[12]_3 outputConv[11485]
result_reg[12]_4 outputConv[11486]
result_reg[12]_5 outputConv[11487]
result_reg[12]_6 outputConv[11504]
result_reg[12]_7 outputConv[11505]
result_reg[12]_8 outputConv[11506]
result_reg[12]_9 outputConv[11507]
result_reg[12]_10 outputConv[11508]
result_reg[12]_11 outputConv[11509]
result_reg[13] outputConv[11510]
result_reg[13]_0 outputConv[11511]
result_reg[13]_1 outputConv[11512]
result_reg[13]_2 outputConv[11513]
result_reg[13]_3 outputConv[11514]
result_reg[13]_4 outputConv[11515]
result_reg[13]_5 outputConv[11516]
result_reg[13]_6 outputConv[11517]
result_reg[13]_7 outputConv[11518]
result_reg[13]_8 outputConv[11519]
result_reg[13]_9 result[14:0]
result_reg[13]_10 selectedInput1_reg[0]_0
result_reg[13]_11 selectedInput1_reg[0]_1
result_reg[14] selectedInput1_reg[0]_2
result_reg[14]_0 selectedInput1_reg[0]_3
result_reg[14]_1 selectedInput1_reg[0]_4
result_reg[14]_2 selectedInput1_reg[0]_5
result_reg[14]_3 selectedInput1_reg[0]_6
result_reg[14]_4 selectedInput1_reg[0]_7
result_reg[14]_5 selectedInput1_reg[1]_0
result_reg[14]_6 selectedInput1_reg[1]_1
result_reg[14]_7 selectedInput1_reg[1]_2
result_reg[14]_8 selectedInput1_reg[1]_3
result_reg[14]_9 selectedInput1_reg[1]_4
result_reg[14]_10 selectedInput1_reg[1]_5
result_reg[14]_11 selectedInput1_reg[1]_6
result_reg[15] selectedInput1_reg[1]_7
result_reg[15]_0 selectedInput1_reg[2]_0
result_reg[15]_1 selectedInput1_reg[2]_1
result_reg[15]_2 selectedInput1_reg[2]_2
result_reg[15]_3 selectedInput1_reg[2]_3
result_reg[15]_4 selectedInput1_reg[2]_4
result_reg[15]_5 selectedInput1_reg[2]_5
result_reg[15]_6 selectedInput1_reg[2]_6
result_reg[15]_7 selectedInput1_reg[3]_0
result_reg[15]_8 selectedInput1_reg[3]_1
result_reg[15]_9 selectedInput1_reg[3]_2
result_reg[15]_10 selectedInput1_reg[3]_3
result_reg[15]_11 selectedInput1_reg[3]_4
rowNumber_reg[0]_rep__1 selectedInput1_reg[3]_5
rowNumber_reg[0]_rep__3 selectedInput1_reg[3]_6
rowNumber_reg[1] selectedInput1_reg[3]_7
rowNumber_reg[1]_rep__5 selectedInput1_reg[4]_0
rowNumber_reg[1]_rep__5_0 selectedInput1_reg[4]_1
rowNumber_reg[1]_rep__5_1 selectedInput1_reg[4]_2
rowNumber_reg[1]_rep__5_2 selectedInput1_reg[4]_3
rowNumber_reg[1]_rep__5_3 selectedInput1_reg[4]_4
rowNumber_reg[1]_0 selectedInput1_reg[4]_5
rowNumber_reg[1]_1 selectedInput1_reg[4]_6
rowNumber_reg[1]_2 selectedInput1_reg[4]_7
rowNumber_reg[2] selectedInput1_reg[5]_0
rowNumber_reg[2]_rep__6 selectedInput1_reg[5]_1
rowNumber_reg[2]_rep__6_0 selectedInput1_reg[5]_2
rowNumber_reg[2]_rep__6_1 selectedInput1_reg[5]_3
rowNumber_reg[2]_rep__6_2 selectedInput1_reg[5]_4
rowNumber_reg[2]_rep__6_3 selectedInput1_reg[5]_5
rowNumber_reg[2]_rep__6_4 selectedInput1_reg[5]_6
rowNumber_reg[2]_rep__6_5 selectedInput1_reg[6]_0
rowNumber_reg[2]_rep__6_6 selectedInput1_reg[6]_1
rowNumber_reg[2]_rep__6_7 selectedInput1_reg[6]_2
rowNumber_reg[2]_rep__6_8 selectedInput1_reg[6]_3
rowNumber_reg[2]_rep__6_9 selectedInput1_reg[6]_4
rowNumber_reg[2]_rep__6_10 selectedInput1_reg[6]_5
rowNumber_reg[2]_rep__6_11 selectedInput1_reg[6]_6
rowNumber_reg[2]_rep__6_12 selectedInput1_reg[7]_0
rowNumber_reg[2]_rep__6_13 selectedInput1_reg[7]_1
rowNumber_reg[2]_rep__6_14 selectedInput1_reg[7]_2
rowNumber_reg[2]_rep__6_15 selectedInput1_reg[7]_3
rowNumber_reg[2]_rep__6_16 selectedInput1_reg[7]_4
rowNumber_reg[2]_rep__6_17 selectedInput1_reg[7]_5
rowNumber_reg[2]_rep__6_18 selectedInput1_reg[7]_6
rowNumber_reg[2]_rep__6_19 selectedInput1_reg[8]_0
rowNumber_reg[2]_rep__6_20 selectedInput1_reg[8]_1
rowNumber_reg[2]_rep__6_21 selectedInput1_reg[8]_2
rowNumber_reg[2]_rep__6_22 selectedInput1_reg[8]_3
rowNumber_reg[2]_rep__6_23 selectedInput1_reg[8]_4
rowNumber_reg[2]_rep__6_24 selectedInput1_reg[8]_5
rowNumber_reg[2]_rep__6_25 selectedInput1_reg[8]_6
rowNumber_reg[2]_rep__6_26 selectedInput1_reg[9]_0
rowNumber_reg[2]_rep__6_27 selectedInput1_reg[9]_1
rowNumber_reg[2]_rep__6_28 selectedInput1_reg[9]_2
rowNumber_reg[2]_rep__6_29 selectedInput1_reg[9]_3
rowNumber_reg[2]_rep__6_30 selectedInput1_reg[9]_4
rowNumber_reg[2]_rep__6_31 selectedInput1_reg[9]_5
rowNumber_reg[2]_rep__6_32 selectedInput1_reg[9]_6
rowNumber_reg[2]_rep__6_33 selectedInput1_reg[9]_7
rowNumber_reg[2]_rep__6_34 selectedInput1_reg[11]_0
rowNumber_reg[2]_rep__6_35 selectedInput1_reg[11]_1
rowNumber_reg[2]_rep__6_36 selectedInput1_reg[11]_2
rowNumber_reg[2]_rep__6_37 selectedInput1_reg[11]_3
rowNumber_reg[2]_rep__6_38 selectedInput1_reg[11]_4
rowNumber_reg[2]_rep__6_39 selectedInput1_reg[11]_5
rowNumber_reg[2]_rep__6_40 selectedInput1_reg[11]_6
rowNumber_reg[2]_rep__6_41 selectedInput1_reg[12]_0
rowNumber_reg[2]_0 selectedInput1_reg[12]_1
rowNumber_reg[3] selectedInput1_reg[12]_2
rowNumber_reg[3]_rep selectedInput1_reg[12]_3
rowNumber_reg[3]_rep__0 selectedInput1_reg[13]_0
rowNumber_reg[3]_rep__0_0 selectedInput1_reg[13]_1
rowNumber_reg[3]_rep__0_1 selectedInput1_reg[13]_2
rowNumber_reg[3]_rep__0_2 selectedInput1_reg[13]_3
rowNumber_reg[3]_rep__0_3 selectedInput1_reg[13]_4
rowNumber_reg[3]_rep__0_4 selectedInput1_reg[13]_5
rowNumber_reg[3]_rep__0_5 selectedInput1_reg[13]_6
rowNumber_reg[3]_rep__0_6 selectedInput1_reg[14]_0
rowNumber_reg[3]_rep__0_7 selectedInput1_reg[14]_1
rowNumber_reg[3]_rep__0_8 selectedInput1_reg[14]_2
rowNumber_reg[3]_rep__0_9 selectedInput1_reg[14]_3
rowNumber_reg[3]_rep__0_10 selectedInput1_reg[15]_0[3:0]
rowNumber_reg[3]_rep__0_11
rowNumber_reg[3]_rep__0_12
rowNumber_reg[3]_rep__0_13
rowNumber_reg[3]_rep__0_14
rowNumber_reg[3]_rep__0_15
rowNumber_reg[3]_rep__0_16
rowNumber_reg[3]_rep__0_17
rowNumber_reg[3]_rep__0_18
rowNumber_reg[3]_rep__0_19
rowNumber_reg[3]_rep__0_20
rowNumber_reg[3]_rep__0_21
rowNumber_reg[3]_rep__0_22
rowNumber_reg[3]_rep__0_23
rowNumber_reg[3]_rep__0_24
rowNumber_reg[3]_rep__0_25
rowNumber_reg[3]_rep__0_26
rowNumber_reg[3]_rep__0_27
rowNumber_reg[3]_rep__2
rowNumber_reg[3]_rep__3
rowNumber_reg[3]_rep__3_0
rowNumber_reg[3]_rep__3_1
rowNumber_reg[3]_rep__3_2
rowNumber_reg[3]_rep__3_3
rowNumber_reg[3]_rep__3_4
rowNumber_reg[3]_rep__3_5
rowNumber_reg[3]_rep__3_6
rowNumber_reg[3]_rep__3_7
rowNumber_reg[3]_rep__3_8
rowNumber_reg[3]_rep__3_9
rowNumber_reg[3]_rep__3_10
rowNumber_reg[3]_rep__3_11
rowNumber_reg[3]_rep__3_12
rowNumber_reg[3]_rep__3_13
rowNumber_reg[3]_rep__3_14
rowNumber_reg[3]_rep__3_15
rowNumber_reg[3]_rep__3_16
rowNumber_reg[3]_rep__3_17
rowNumber_reg[3]_rep__3_18
rowNumber_reg[3]_rep__3_19
rowNumber_reg[3]_rep__3_20
rowNumber_reg[3]_rep__3_21
rowNumber_reg[3]_rep__3_22
rowNumber_reg[3]_rep__3_23
rowNumber_reg[3]_rep__3_24
rowNumber_reg[3]_rep__3_25
rowNumber_reg[3]_rep__3_26
rowNumber_reg[3]_rep__3_27
rowNumber_reg[3]_rep__3_28
rowNumber_reg[3]_rep__3_29
rowNumber_reg[3]_rep__3_30
rowNumber_reg[3]_rep__3_31
rowNumber_reg[3]_rep__3_32
rowNumber_reg[3]_rep__3_33
rowNumber_reg[3]_rep__3_34
rowNumber_reg[3]_rep__3_35
rowNumber_reg[3]_rep__3_36
rowNumber_reg[3]_rep__3_37
rowNumber_reg[3]_rep__3_38
rowNumber_reg[3]_rep__3_39
rowNumber_reg[3]_rep__3_40
rowNumber_reg[3]_rep__3_41
rowNumber_reg[3]_rep__3_42
rowNumber_reg[3]_rep__3_43
rowNumber_reg[3]_rep__3_44
rowNumber_reg[3]_rep__3_45
rowNumber_reg[3]_rep__3_46
rowNumber_reg[3]_rep__3_47
rowNumber_reg[3]_rep__3_48
rowNumber_reg[3]_rep__3_49
rowNumber_reg[3]_rep__3_50
rowNumber_reg[3]_rep__3_51
rowNumber_reg[3]_rep__3_52
rowNumber_reg[3]_rep__3_53
rowNumber_reg[3]_rep__3_54
rowNumber_reg[3]_rep__3_55
rowNumber_reg[3]_rep__3_56
rowNumber_reg[3]_rep__3_57
rowNumber_reg[3]_rep__3_58
rowNumber_reg[3]_rep__3_59
rowNumber_reg[3]_rep__3_60
rowNumber_reg[3]_rep__3_61
rowNumber_reg[3]_rep__3_62
rowNumber_reg[3]_rep__3_63
rowNumber_reg[3]_rep__3_64
rowNumber_reg[3]_0
rowNumber_reg[3]_1
rowNumber_reg[3]_2
rowNumber_reg[3]_3
rowNumber_reg[3]_4
rowNumber_reg[3]_5
rowNumber_reg[3]_6
rowNumber_reg[3]_7
rowNumber_reg[3]_8
rowNumber_reg[3]_9
rowNumber_reg[3]_10
rowNumber_reg[4]_rep
rowNumber_reg[4]_rep__0
rowNumber_reg[4]_rep__3
convUnit_3
outputConv_reg[231]_i_2
I0
I1
I2 O
I3
I4
I5
LUT6
outputConv_reg[234]_i_2
I0 outputConv_reg[231]
I1 CLR
I2 O D Q
I3 G
I4 GE
I5 LDCE
LUT6 outputConv_reg[234]
outputConv_reg[304]_i_2 CLR
I0 D Q
I1 G
I2 O GE outputConv_OBUF[231]_inst
LDCE I O
I3
I4 outputConv_reg[304] OBUF
LUT5 CLR outputConv_OBUF[234]_inst
I O
outputConv_reg[432]_i_2 D Q
I0 G OBUF
I1 GE outputConv_OBUF[304]_inst
LDCE I O
I2 O
I3 outputConv_reg[432] OBUF
I4 CLR outputConv_OBUF[432]_inst
LUT5 I O
D Q
outputConv_reg[576]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[576]
I3 CLR outputConv_OBUF[576]_inst
LUT4 669 I O
D Q
outputConv_reg[704]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[704]
I3 CLR outputConv_OBUF[704]_inst
LUT4 669 I O
D Q
outputConv_reg[736]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[736]
I3 CLR outputConv_OBUF[736]_inst
LUT4 I O
D Q
outputConv_reg[1024]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[1024]
I3 CLR outputConv_OBUF[1024]_inst
LUT4 914 I O
D Q
outputConv_reg[1659]_i_2 G OBUF
I0 GE
I1 LDCE
I2 O outputConv_reg[1659]
I3 CLR outputConv_OBUF[1659]_inst
520 I O
I4 D Q
I5 G OBUF
LUT6 GE
outputConv_reg[1661]_i_2 LDCE
I0 outputConv_reg[1661]
I1 CLR outputConv_OBUF[1661]_inst
518 I O
I2 O D Q
I3 G OBUF
I4 GE
I5 LDCE
LUT6 outputConv_reg[1728]
outputConv_reg[1728]_i_2 CLR outputConv_OBUF[1728]_inst
617 I O
I0 D Q
I1 O G OBUF
I2 GE
I3 LDCE
LUT4 outputConv_reg[1760]
outputConv_reg[1760]_i_2 CLR outputConv_OBUF[1760]_inst
I O
I0 D Q
I1 O G OBUF
I2 GE
I3 LDCE
LUT4
outputConv_reg[1968]_i_2 outputConv_reg[1968]
I0 CLR outputConv_OBUF[1968]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
LUT5 outputConv_reg[2048]
outputConv_reg[2048]_i_2 CLR outputConv_OBUF[2048]_inst
835 I O
I0 D Q
I1 O G OBUF
I2 GE
I3 LDCE
LUT4
outputConv_reg[2282]_i_2 outputConv_reg[2282]
I0 CLR outputConv_OBUF[2282]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
I5
LUT6
outputConv_reg[2480]_i_2 outputConv_reg[2480]
I0 CLR outputConv_OBUF[2480]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE outputConv_OBUF[2784]_inst
LDCE I O
I4
LUT5 outputConv_reg[2784] OBUF
outputConv_reg[2784]_i_2 CLR outputConv_OBUF[3072]_inst
I O
I0 D Q
I1 O G OBUF
I2 GE outputConv_OBUF[3707]_inst
LDCE I O
I3
LUT4 outputConv_reg[3072] OBUF
outputConv_reg[3072]_i_2 CLR outputCounter_reg[1]
756
I0 D Q
C
I1 O G
CE
I2 GE Q
CLR
I3 LDCE
1
D
LUT4 outputConv_reg[3707]
outputConv_reg[3707]_i_2 CLR FDCE
418
I0 D Q outputCounter_reg[5]
I1 G
C
I2 O GE
CE
I3 LDCE Q
CLR
I4 5
D
I5
LUT6 FDCE
I0 D Q OBUF
I1 O G outputConv_OBUF[3808]_inst
I O
I2 GE
I3 LDCE OBUF
LUT4 outputConv_reg[4096]
outputConv_reg[4096]_i_2 CLR outputConv_OBUF[4096]_inst
677 I O
I0 D Q
I1 O G OBUF
I2 GE
I3 LDCE
LUT4
outputConv_reg[4327]_i_2 outputConv_reg[4327]
I0 CLR outputConv_OBUF[4327]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
I5 outputConv_reg[4330]
LUT6 CLR outputConv_OBUF[4330]_inst
I O
outputConv_reg[4330]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3 outputConv_reg[4800]
I4 CLR outputConv_OBUF[4800]_inst
429 I O
I5 D Q
LUT6 G OBUF
outputConv_reg[4800]_i_2 GE
I0 LDCE
I1 O outputConv_reg[4832]
I2 CLR outputConv_OBUF[4832]_inst
LUT3 I O
D Q
outputConv_reg[4832]_i_2 G OBUF
I0 GE
I1 O LDCE
I2 outputConv_reg[5052]
LUT3 CLR outputConv_OBUF[5052]_inst
I O
outputConv_reg[5052]_i_2 D Q
I0 G OBUF
I1 O GE
I2 LDCE
LUT3 outputConv_reg[5824]
outputConv_reg[5824]_i_2 CLR outputConv_OBUF[5824]_inst
361 I O
I0 D Q
I1 O G OBUF
I2 GE
LUT3 LDCE
outputConv_reg[5856]_i_2 outputConv_reg[5856]
I0 CLR outputConv_OBUF[5856]_inst
I O
I1 O D Q
I2 G OBUF
LUT3 GE
outputConv_reg[6076]_i_2 LDCE
I0 outputConv_reg[6076]
I1 O CLR outputConv_OBUF[6076]_inst
I O
I2 D Q
LUT3 G OBUF
outputConv_reg[6378]_i_2 GE
I0 LDCE
I1 outputConv_reg[6378]
I2 O CLR outputConv_OBUF[6378]_inst
210 I O
I3 D Q
I4 G OBUF
I5 GE
LUT6 LDCE
outputConv_reg[6779]_i_2 outputConv_reg[6779]
I0 CLR outputConv_OBUF[6779]_inst
277 I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
LUT5 outputConv_reg[6781]
outputConv_reg[6781]_i_2 CLR outputConv_OBUF[6781]_inst
275 I O
I0 D Q
I1 G OBUF
I2 O GE
I3 LDCE
I4 outputConv_reg[6880]
LUT5 CLR outputConv_OBUF[6880]_inst
I O
outputConv_reg[6880]_i_2 D Q
I0 G OBUF
I1 O GE
I2 LDCE
LUT3 outputConv_reg[7100]
outputConv_reg[7100]_i_2 CLR outputConv_OBUF[7100]_inst
I O
I0 D Q
I1 O G OBUF
I2 GE
LUT3 LDCE
outputConv_reg[7803]_i_2 outputConv_reg[7803]
I0 CLR outputConv_OBUF[7803]_inst
222 I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
LUT5 outputConv_reg[7805]
outputConv_reg[7805]_i_2 CLR outputConv_OBUF[7805]_inst
220 I O
I0 D Q
I1 G OBUF
I2 O GE
I3 LDCE
I4 outputConv_reg[7904]
LUT5 CLR outputConv_OBUF[7904]_inst
I O
outputConv_reg[7904]_i_2 D Q
I0 G OBUF
I1 O GE
I2 LDCE
LUT3 outputConv_reg[8124]
outputConv_reg[8124]_i_2 CLR outputConv_OBUF[8124]_inst
I O
I0 D Q
I1 O G OBUF
I2 GE
LUT3 LDCE
outputConv_reg[8423]_i_2 outputConv_reg[8423]
I0 CLR outputConv_OBUF[8423]_inst
I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
I5 outputConv_reg[8426]
LUT6 CLR outputConv_OBUF[8426]_inst
I O
outputConv_reg[8426]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3 outputConv_reg[8896]
I4 CLR outputConv_OBUF[8896]_inst
221 I O
I5 D Q
LUT6 G OBUF
outputConv_reg[8896]_i_2 GE
I0 LDCE
I1 O outputConv_reg[8928]
I2 CLR outputConv_OBUF[8928]_inst
I O
I3 D Q
LUT4 G OBUF
outputConv_reg[8928]_i_2 GE
I0 LDCE
I1 O outputConv_reg[9008]
I2 CLR outputConv_OBUF[9008]_inst
I O
I3 D Q
LUT4 G OBUF
outputConv_reg[9008]_i_2 GE
I0 LDCE
I1 outputConv_OBUF[9216]_inst
I O
I2 O outputConv_reg[9216]
I3 CLR OBUF
252
I4 D Q
LUT5 G
outputConv_reg[9216]_i_2 GE
I0 LDCE outputConv_OBUF[9520]_inst
I O
I1 O outputConv_reg[9520]
I2 CLR OBUF
I3 D Q
LUT4 G
GE
outputConv_reg[9520]_i_2 LDCE
I0 outputConv_reg[9851]
I1 CLR outputConv_OBUF[9851]_inst
146 I O
I2 O D Q
I3 G OBUF
I4 GE
LUT5 LDCE
outputConv_reg[9851]_i_2 outputConv_reg[9853]
I0 CLR outputConv_OBUF[9853]_inst
144 I O
I1 D Q
I2 O G OBUF
I3 GE
I4 LDCE
I5 outputConv_reg[9920]
LUT6 CLR outputConv_OBUF[9920]_inst
169 I O
outputConv_reg[9853]_i_2 D Q
I0 G OBUF
I1 GE outputConv_OBUF[9952]_inst
LDCE I O
I2 O
I3 outputConv_reg[9952] OBUF
I4 CLR
I5 D Q
LUT6 G
outputConv_reg[9920]_i_2 GE outputConv_OBUF[10160]_inst
LDCE I O
I0
I1 O outputConv_reg[10160] OBUF
I2 CLR
I3 D Q
LUT4 G
GE
I2 O LUT4 GE outputConv_OBUF[10474]_inst
LDCE I O
I3 outputConv_reg[10160]_i_2
I4 I0 outputConv_reg[10474] OBUF
LUT5 I1 CLR
outputConv_reg[234]_i_5 I2 O D Q
I0 I3 G
I1 O I4 GE
I2 LUT5 LDCE
I3 outputConv_reg[10240]_i_2
LUT4 I0
I1 O
I2 outputConv_reg[10672]
I3 CLR
LUT4 D Q
outputConv_reg[10474]_i_2 G
I0 GE
I1 LDCE
I2 O outputConv_reg[10875]
I3 CLR outputConv_OBUF[10672]_inst
90 I O
I4 D Q
I5 G OBUF
LUT6 GE outputConv_OBUF[10875]_inst
LDCE I O
outputConv_reg[10877] OBUF
CLR outputConv_OBUF[10877]_inst
88 I O
outputConv_reg[10672]_i_2 D Q
I0 G OBUF
I1 GE
I2 O LDCE
I3
I4
LUT5 outputConv_reg[10976]
outputConv_reg[10875]_i_2 CLR
I0 D Q
I1 G outputConv_OBUF[10976]_inst
I O
I2 O GE
I3 LDCE OBUF
I4
outputConv_reg[0]_i_3
I5 1
I0
LUT6
7
I1
outputConv_reg[1]_i_7
I2 O 1
outputConv_reg[10877]_i_2 6 I0
I3 7
I0 0 I1
I4
I1 I2 O
LUT5
6
I2 O I3
0
I3 I4
I4 LUT5
outputConv_reg[0]_i_4
I5 0 outputConv_reg[113]_i_7
I0 0
LUT6 I0
6
outputConv_reg[2282]_i_4 I1 O 6
I1 O
I0 I2
outputConv_reg[10976]_i_2 7 I2
I1 I3 7
I0 I3
I2 O LUT4
I1 O LUT4
I3
I2 outputConv_reg[122]_i_6
I4 outputConv_reg[1]_i_3 0
I3 1 I0
LUT5 I0
LUT4 6
7 I1 O
I1
outputConv_reg[11264]_i_2 I2
I2 O 7
I0 6 I3
outputConv_reg[2282]_i_5 I3
I1 O LUT4
0
I0 I4
I2
I1 O LUT5
I3 outputConv_reg[206]_i_5
I2 outputConv_reg[1]_i_4 1
LUT4 I0
LUT3 0
I0 7
6 I1
I1 O
I2 O
outputConv_reg[234]_i_6 I2 6
7 I3
I0 I3 0
I4
I1 O LUT4
LUT5
I2 outputConv_reg[1]_i_6
7 outputConv_reg[206]_i_7
I3 I0 0
I0
LUT4 I1 O 6
6 I1 O
I2
I2
LUT3
7
I3
LUT4
outputConv_reg[11840]_i_2
outputConv_reg[292]_i_4
I0 outputConv_reg[12]_i_4 1
7 I0
I1 O I0 7
I1
I2 I1 O
6 I2 O
I3 I2 6
I3
LUT4 LUT3
0
I4
outputConv_reg[12000]_i_2 LUT5
I0 outputConv_reg[0]_i_6
7 outputConv_reg[3462]_i_3
I1 O I0 0
I0
I2 I1 O 6
6 I1 O
I3 I2
I2
LUT4 LUT3
7
I3
LUT4
outputConv_reg[2]_i_3
1 outputConv_reg[3507]_i_3
I0 1
7 I0
I1 7
I1
I2 O
6 I2 O
I3 6
0 I3
I4 0
I4
LUT5
LUT5
outputConv_reg[236]_i_6
I0
I1
outputConv_reg[11264] I2 O
CLR I3
94
D Q I4
G LUT5
GE
LDCE outputConv_OBUF[11264]_inst
I O
outputConv_reg[11840]
CLR OBUF
65
D Q outputConv_OBUF[11840]_inst
I O
G
GE OBUF
LDCE outputConv_OBUF[12000]_inst
I O
outputConv_reg[12000]
CLR OBUF
D Q
G
GE
LDCE
outputConv_reg[2]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[2]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[5]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[3]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[3]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[3]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[4]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[4]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[4]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[4]_i_9
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[5]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[5]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[6]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[6]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[4384]_i_3
2
I0
1
I1
0
I2 O
6
I3
I4
7
I5
LUT6
outputConv_reg[7]_i_3
1
I0
7
I1
I2 O
6
I3
0
I4
LUT5
outputConv_reg[7]_i_4
0
I0
6
I1 O
I2
7
I3
LUT4
outputConv_reg[6]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[7]_i_6
7
I0
I1 O
6
I2
LUT3
outputConv_reg[10]_i_5
4
I0
2
I1
1
I2 O
0
I3
3
I4
LUT5
outputConv_reg[13]_i_4
7
I0
I1 O
6
I2
LUT3
outputConv_reg[14]_i_4
7
I0
I1 O
6
I2
LUT3
outputConv_reg[12442]_i_3
3
I0
0
I1 O
1
I2
2
I3
LUT4
outputConv_reg[15]_i_4
7
I0
I1 O
6
I2
LUT3
outputConv_reg[33]_i_4
7
I0
I1 O
6
I2
LUT3
Architecture 4: Sequential Convolution with 14 conv units (for one filter of the
first convolution layer LeNet)
This architecture contains the improvements of all the previous architectures
(receptive field array is calculated for the selected pixels only). The number of
conv units is equal to half the number of pixels of a single row of the output
image: 14 units (for the first convolution layer of LeNet). The result appears
after 1456 clock cycles.
Architecture 5: Sequential Convolution with 14 conv units with half precision
floating point (16 bits)
Finally, I changed the floating-point precision from 32 bits to lower the
utilization in part 5 and reach the lowest utilization possible for the con layer
with multiple filters.
This comparison between architectures is done on module of the conv layer
single filter with the sizes and number of the first convolution layer.
Arch 1 Arch 2 Arch 3 Arch 4 Arch 5
Floating Point
32 bits 32 bits 32 bits 32 bits 16 bits
Precision
Number of
clock cycles
need to 26 728 728 1456 1456
output the
result
Number of
1712256 177300 135176 117521 48422
LUTS
Utilization on
707.54% 73.26% 55.86% 48.48% 19.98%
the KCU
Utilization on
738.04% 77.09% 58.77% 51.10% 21.05%
the ZCU
Note: the reports and codes for each architecture can be found in \Extra Convolution\ folder
Some reports show the synthesis on the PYNQ board and I used the number of LUTS to calculate the
utilization for the KCU and ZCU boards.
Part 2
TanH Activation
Ahmed Ezzat
Name: Ahmed Mohammed Ezzat ID: 1162033
How It Works
Mainly to save some hardware but in the opposite side clock cycles will be extended.
First, the “MSquaring” is for getting the incrementing term of the x term which is x^2.
Second, the “MGeneratingXterm” is for multiplying the present x term with its next one.
Third, the “MTheCoefficientTerm” is for multiplying each corresponding final X term with its coefficient
which here I chose 4 terms for good taylor expansion coeff.
Fourth, the last step of our operation is to add each resulting term to its previous one.
Name: Ahmed Mohammed Ezzat ID: 1162033
Section 4&5
This is the simulation of an inrange floating number: it needs 5 clock cycles
Now tanh converges at |x|>pi/2 so in this case I made a constant assigned value to numbers in
convergence region which is 1 or -1
Here is an example
This is the simulation of an out of range floating number: it needs only 1 clock cycle
InputNumbers = [0.6,0.5,3.2,1.4,2,1,0,0.5,-0.4,-0.5,-0.57,0.57,0.3,0.2,0.112,
0.2,-0.2,-0.5,-0.9,-0.567,-0.43,0.5,0.7,0.86543,0.4345,]
In IEEE Form:
00111111000110011001100110011010_00111111000000000000000000000000_01000000010011001
100110011001101_00111111101100110011001100110011_01000000000000000000000000000000_0
0111111100000000000000000000000_00000000000000000000000000000000_001111110000000000
00000000000000_10111110110011001100110011001101_10111111000000000000000000000000_10
111111000100011110101110000101_00111111000100011110101110000101_0011111010011001100
1100110011010_00111110010011001100110011001101_00111101111001010110000001000010_001
11110010011001100110011001101_10111110010011001100110011001101_10111111000000000000
000000000000_10111111011001100110011001100110_10111111000100010010011011101001_1011
1110110111000010100011110110_00111111000000000000000000000000_001111110011001100110
01100110011_00111111010111011000110011010010_00111110110111100111011011001001
As said before,
The number of clock cycles is 1 clock for each converged input and 5 cycles for each non-converged
input so it varies according to the input array
Name: Ahmed Mohammed Ezzat ID: 1162033
Simulation Output is =
00111111000010010110111101111011_00111110111011001001010110001011_00111111100000000
000000000000000_00111111001000100010111101000110_00111111100000000000000000000000_0
0111111001111101111101111110001_00000000000000000000000000000000_001111101110110010
01010110001011_10111110110000101000011111111000_10111110111011001001010110001011_10
111111000000111110011010001011_00111111000000111110011010001011_0011111010010101001
0011011100000_00111110010010100001110011000010_00111101111001000110101111110101_001
11110010010100001110011000010_10111110010010100001110011000010_10111110111011001001
010110001011_10111111001101011011110101000011_10111111000000110101011001001011_1011
1110110011111000010011110000_00111110111011001001010110001011_001111110001101010000
11110011001_00111111001100011100100100101110_00111110110100010111000011010101
And in decimals:
Outputs=0.536857306957,0.462078422308,1.0,0.633533835411,1.0,0.746031820774,0,0.46207842230
8,-0.379943609238,-0.462078422308
,-0.51523655653,0.51523655653,0.291312217712,0.197375327349,0.111534036696,0.197375327349
,-0.197375327349,-0.462078422308,-0.709919154644,-0.513035476208
,-0.405311107635,0.462078422308,0.603631556034,0.694476008415,0.409063965082
Actual Output is =
00111111000010010111110000010101_00111110111011001001101010011111_00111111011111110
010011010010100_00111111011000101010011001101000_00111111011101101100101010000011_0
0111111010000101111011111010110_00000000000000000000000000000000_001111101110110010
01101010011111_10111110110000101000100010101100_10111110111011001001101010011111_10
111111000000111110111010010110_00111111000000111110111010010110_0011111010010101001
0011011101101_00111110010010100001110011000010_00111101111001000110101111110100_001
11110010010100001110011000010_10111110010010100001110011000010_10111110111011001001
101010011111_10111111001101110101111101001100_10111111000000110101110111111001_1011
1110110011111000011001000110_00111110111011001001101010011111_001111110001101010110
11111011001_00111111001100101111010010011001_00111110110100010111001001001100
And in decimals:
Outputs = 0.53704957,0.46211716,0.9966824,0.88535165,0.96402758,0.76159416,0,0.46211716,-
0.37994896,-0.46211716,-0.51535928,0.51535928,0.29131261,0.19737532,0.11153403,0.19737532,-
0.19737532,-0.46211716,-0.71629787,-0.51315266,-
0.40532131,0.46211716,0.60436778,0.69904478,0.40907515
Name: Ahmed Mohammed Ezzat ID: 1162033
Section 6
Now here comes the Utilization of One kernel:
25 inputs kernel
And to be more real the utilization of a full 748 pixels image is:
TCL Console:
These warning mean nothing I think these are due to constant driven parameters.
Name: Ahmed Mohammed Ezzat ID: 1162033
Parallelism here will over utilize the module and will result in some complications, so I preferred not to
implement it in the tanh layer. Also the utilization of my module for a whole input image is 22K LUTs
which is small compared to other layers so it is enough I think.
Name: Ahmed Mohammed Ezzat ID: 1162033
Section 7
The shown schematic shows all modules, Using the tanh module and hyperbolic tangent
module and how they are connected together within the controlling layer:
The Hyperbolic tangent uses 1700 LUT’s, Multiplier uses 340 LUT’s, Adder uses 540 LUTs
and finally the Using the tanh uses at 784 input 22066 LUT’s.
The final number of LUT’s can be reduced if the precision of the tanh reduced to 16 bit
without a big loss in the accuracy of the results.
I actually reduced the input bits from 32-bits to 16-bits and Part 5 now uses them
Part 3
SoftMax Activation
Omar Essam
SoftMax Report
I will discuss three different implementations of softmax and make a comparison.
1. Design 1: softmax module
2. Design 2: softmax_1 module
3. Design 3: softmax_2 module.
All Answers were double checked with a python script and are correct.
Design 1
1- Block Diagram:
4 - Timing Diagram
Design 2
Design Description: 10 exponent units, 10 floating adder , 1 multiplier, 1 division unit.
5- Clock Cycles: 22 clock cycles as shown below, ackSoft is triggered
Description: same as Design 1 the only difference is 10 adders are generated to calculate the sum in one cycle.
6 -Synthesis Report: 22417/53200 LUTs 42.14% utilization
4- Timing Diagram:
Design 3
Design Description: Design Description: 10 exponent units, 10 floating adder , 10 multiplier, 1 division unit.
5- Clock Cycles : 11 cycles as shown. ackSoft is triggered
Description: Same as Design 2 but 10 parallel multipliers are used to multiply with the Reciprocal in one clock
cycle.
numA
Avg
numB
AvgU
AvgU
image
AvgPoolOut
AvgU
....
AvgU
image Result
AvgPoolOut
AvgPoolSingle
2) Verilog Codes
AvgUnit.v
AvgPoolSingle.v
AvgPoolMulti.v
3) Testbench Codes
AvgUnit_tb.v
AvgPoolSingle_tb.v
AvgPoolMulti_tb.v
AvgPoolMulti_tb2.v
4) Screenshots:
a. Simulation (Waveform/TCL console):
i. AverageUnit
All results were verified using the simulated Average Pool Layer run on
python. The Simulations are run on two test benches (TB1 and TB2).
You can find the python script in the folder Python Tests called
‘AvgPoolTest1.py’ and ‘AvgPoolTest2.py’. All result comparisons are
also listed out on the Convolution1Test sheet on the attached CNNtest
excel file (CNNtest.xlsx).
b. Post Synthesis Timing for the basic avgUnit:
(as agreed upon post timing for larger layers of hardware are not achievable with our hardware capabilities)
8) Answers to questions:
No questions were asked in AvgPool description
AvgOut_OBUF[0]_inst
0 I O 0
AvgOut[15:0]
OBUF
AvgOut_OBUF[1]_inst
1 I O 1
OBUF
AvgOut_OBUF[2]_inst
2 I O 2
OBUF
AvgOut_OBUF[3]_inst
3 I O 3
FADD2
OBUF
exponent1
AvgOut_OBUF[4]_inst
exponent1_0 4 I O 4
exponent1_1
OBUF
exponent1_2
numA_IBUF[0]_inst AvgOut_OBUF[5]_inst
exponent1_3 5 I O 5
0 I O 0 exponent1_4
numA[15:0] OBUF
IBUF exponent1_5
AvgOut_OBUF[6]_inst
fractionB[10:0] exponent1_6 6 I O 6
numA_IBUF[1]_inst FADD1 ...
numA[1] exponent1_7
OBUF
1 I O cout0[6:0] numA[1]_0 exponent1_8
AvgOut_OBUF[7]_inst
IBUF cout00_in[6:0] numA[7] exponent1_9 7 I O 7
9 I O 9 numA[8]_20 AvgOut[14]_4
numA[11] AvgOut_OBUF[4:0]
numA_IBUF[10]_inst
numA[12] S[7:0]
10 I O 10 numA[12]_0 exponent1
11 I O 11 numA[13] exponent1_3
numA[13]_1 exponent1_5
numA_IBUF[12]_inst
numA[13]_2 exponent1_6 2
12 I O 12 numA[13]_3 exponent1_7 10
numA[13]_5 exponent1_9[7:0]
numA_IBUF[13]_inst
numA[13]_6 exponent1_10
13 I O 13 numA[13]_7 exponent1_11
numA[13]_9 exponent1_13
numA_IBUF[14]_inst
numA[13]_10 exponent1_14
14 I O 14 numA[13]_11 exponent1_15
numA[13]_13 exponent1_17
numA_IBUF[15]_inst
numA[13]_14 exponent1_18
15 I O 15 numA[13]_15 exponent1_19
numA[13]_17 exponent1_21
numB_IBUF[0]_inst FADD3
numA[14] exponent1_22
11 I O numB[8]_6[2:0] exponent1_31
numB[12] exponent1_33
numB_IBUF[12]_inst
... numB_IBUF[15:0] exponent1_34
12 I O numC_IBUF[15:0] exponent1_35
13 I O exponent1_39
IBUF exponent1_40
exponent1_41
numB_IBUF[14]_inst
exponent1_42
14 I O exponent1_43
IBUF floatAdd_1
numB_IBUF[15]_inst
15 I O
IBUF
numC_IBUF[0]_inst
0 I O 0
numC[15:0]
IBUF
numC_IBUF[1]_inst
1 I O 1
IBUF
numC_IBUF[2]_inst
2 I O 2
IBUF
numC_IBUF[3]_inst
3 I O 3
IBUF
numC_IBUF[4]_inst
4 I O 4
IBUF
numC_IBUF[5]_inst
5 I O 5
IBUF
numC_IBUF[6]_inst
6 I O 6
IBUF
numC_IBUF[7]_inst
7 I O 7
IBUF
numC_IBUF[8]_inst
8 I O 8
IBUF
numC_IBUF[9]_inst
9 I O 9
IBUF
numC_IBUF[10]_inst
10 I O 10
IBUF
numC_IBUF[11]_inst
11 I O 11
IBUF
numC_IBUF[12]_inst
12 I O 12
FM
IBUF
A[9:0] AvgOut[9]
numC_IBUF[13]_inst
numA[13] AvgOut[12]
13 I O 13 numA_IBUF[1:0] AvgOut[13]
numB[8] AvgOut_OBUF[10:0]
numC_IBUF[14]_inst
numB[8]_0 exponent1_0
14 I O 14 numB[8]_1 exponent1_1
numB[8]_3 exponent1_3
numC_IBUF[15]_inst
numB[12] exponent1_4
15 I O numB_IBUF[2:0] exponent1_5
IBUF numD_IBUF[15:0]
numD_IBUF[0]_inst floatMult
0 I O 0
numD[15:0]
IBUF
numD_IBUF[1]_inst
1 I O 1
IBUF
numD_IBUF[2]_inst
2 I O 2
IBUF
numD_IBUF[3]_inst
3 I O 3
IBUF
numD_IBUF[4]_inst
4 I O 4
IBUF
numD_IBUF[5]_inst
5 I O 5
IBUF
numD_IBUF[6]_inst
6 I O 6
IBUF
numD_IBUF[7]_inst
7 I O 7
IBUF
numD_IBUF[8]_inst
8 I O 8
IBUF
numD_IBUF[9]_inst
9 I O 9
IBUF
numD_IBUF[10]_inst
10 I O 10
IBUF
numD_IBUF[11]_inst
11 I O 11
IBUF
numD_IBUF[12]_inst
12 I O 12
IBUF
numD_IBUF[13]_inst
13 I O 13
IBUF
numD_IBUF[14]_inst
14 I O 14
IBUF
numD_IBUF[15]_inst
15 I O
IBUF
exponent1_i_115__139
I0 O
I1
LUT2
exponent1_i_116__139
I0
I1 O
I2
LUT3
exponent1_i_117__139
I0
I1
I2 O
I3
I4
I5 exponent1_i_54__139
LUT6 I0
exponent1_i_118__139 I1
I0 I2 O
I1 O I3
I2 I4
I3 I5
LUT4 LUT6
exponent1_i_119__139
I0
I1
I2 O
I3
I4
I5
LUT6
exponent1_i_120__139
I0
I1
I2 O
0
I3
3
I4
1
I5
LUT6
exponent1_i_129__139
I0
I1
I2 O
I3
I4
I5
LUT6
exponent1_i_150__139
I0
2
I1
7
I2 O
I3
I4
I5
LUT6
exponent1_i_173__139
I0
4
I1
3
I2 O
5
I3
I4
I5
LUT6
exponent1_i_174__139
I0
I1
I2 O
I3
I4
LUT5
exponent1_i_175__139
I0
I1
I2 O
I3 exponent1_i_57__139
I4 I0
LUT5 I1
I2 O
exponent1_i_176__139 I3
I0 O I4
I1 I5
LUT2 LUT6
exponent1_i_78__139
I0
exponent1_i_184__139 I1
I0 I2 O
I1 I3
I2 O I4
I3 I5
I4 LUT6
I5 exponent1_i_81__139
LUT6 I0
I1
exponent1_i_185__139 I2 O
I0 I3
I1 I4
I2 O I5
4 LUT6
I3
3
I4
3
I5
LUT6
exponent1_i_205__139
I0 O
I1
LUT2
exponent1_i_206__139
I0
I1 O
I2
LUT3
exponent1_i_207__139 exponent1_i_102__139
I0 I0
I1 I1
I2 O I2 O
I3 I3
I4 I4
I5 I5
LUT6 LUT6
exponent1_i_208__139
I0
I1
I2 O
I3
I4
LUT5
exponent1_i_209__139
I0
I1
I2 O
I3
I4
I5
LUT6
exponent1_i_210__139
I0
38
I1
33
I2 O
2
I3
3
I4
1
I5
LUT6
aPoolOut_OBUF[1136]_inst_i_193
2
I0 O
2
I1
LUT2
aPoolOut_OBUF[1136]_inst_i_194
1 1
I0 O
1
I1
LUT2
FADD1/exponent1_i_240__70
CI
CI_TOP CO[7:0]
S[7:0]
CARRY8 FADD1/exponent1_i_226__70
7
CI
CI_TOP CO[7:0]
exponent1_i_324__70
2 2
I0 O
I1
LUT2
exponent1_i_326__70
I0
2
I1
0
I2 O
I3
I4
LUT5
aPoolOut_OBUF[1136]_inst_i_195
I0
2
I1
0
I2 O
I3
I4
LUT5
aPoolOut_OBUF[1136]_inst_i_197
I0
I1
2
I2 O
I3
32
I4
LUT5
aPoolOut_OBUF[1136]_inst_i_199
I0
2 0
I1 O
I2
I3
LUT4
aPoolOut_OBUF[1136]_inst_i_284
I0
I1
7
I2 O
I3
I4
I5
LUT6
aPoolOut_OBUF[1136]_inst_i_285
I0
I1
6
I2 O
I3
I4
I5
LUT6
aPoolOut_OBUF[1136]_inst_i_286
I0
I1
5
I2 O
I3
I4
31
I5
LUT6
aPoolOut_OBUF[1136]_inst_i_287
I0
I1
4
I2 O
I3
I4
I5
LUT6
aPoolOut_OBUF[1136]_inst_i_288
I0
I1
3
I2 O
I3
I4
I5
LUT6
aPoolOut_OBUF[1136]_inst_i_289
exponent1_i_216__139 I0
I0 I1
2
I1 I2 O
I2 O I3
I3 I4
30
I4 I5
I5 LUT6
LUT6 aPoolOut_OBUF[1136]_inst_i_290
exponent1_i_218__139 I0
I0 O I1
1
I1 I2 O
LUT2 I3
exponent1_i_220__139 I4
0 29
I0 I5
38 LUT6
I1
0
I2 O aPoolOut_OBUF[1136]_inst_i_291
I3 I0
I4 I1
0
I5 I2 O
LUT6 I3
exponent1_i_223__139 I4
33 28
I0 I5
38 LUT6
I1
0
I2 O exponent1_i_217__139
3 6
I3 I0
1 6
I4 I1
LUT5 I2 O
3
I3
38
exponent1_i_266__139 I4
3
I0 I5
I1 LUT6
I2 O exponent1_i_221__139
0
I3 I0
38
I4 I1
0
I5 I2 O
LUT6 I3
I4
exponent1_i_272__139 I5
I0 LUT6
I1 exponent1_i_222__139
I2 O I0
I3 I1
I4 I2 O
I5 I3
LUT6 I4
exponent1_i_274__139 I5
4 LUT6
I0
3
I1 exponent1_i_224__139
5 7
I2 O I0
33 7
I3 I1
38
I4 I2 O
LUT5 3
I3
38
exponent1_i_279__139 I4
3
I0 I5
I1 LUT6
I2 O exponent1_i_233__139
23
I3 I0
I4 I1
LUT5 I2 O
I3
I4
exponent1_i_280__139 I5
I0 LUT6
I1
I2 O exponent1_i_247__139
33
I3 I0
38
I4 I1
LUT5 6
I2 O
3
I3
7
I4
LUT5
exponent1_i_313__139 aPoolOut_OBUF[1136]_inst_i_295
4 4
I0 I0 O
4
I1 O I1
I2 LUT2
I3
LUT4 aPoolOut_OBUF[1136]_inst_i_296
3 3
exponent1_i_314__139 I0 O
3 FADD1/aPoolOut_OBUF[1136]_inst_i_90
I0 I1 7
CI
I1 LUT2
CI_TOP CO[7:0]
I2 O
2:0 DI[7:0] O[7:0]
I3 2:0
FADD1/aPoolOut_OBUF[1136]_inst_i_189 S[7:0]
I4
CI CARRY8
I5
CI_TOP CO[7:0]
LUT6
DI[7:0] O[7:0]
exponent1_i_315__139 aPoolOut_OBUF[1136]_inst_i_201
S[7:0] 1 1
I0 I0 O
CARRY8
1
I1 I1
I2 O LUT2
I3 FADD1/aPoolOut_OBUF[1136]_inst_i_200
2 2
I4 I0 O
LUT5 aPoolOut_OBUF[2240]_inst_i_28 I1
3 LUT2
I0
38
exponent1_i_328__139 I1 O
3
I0 I2 aPoolOut_OBUF[1136]_inst_i_202
I1 LUT3 I0
2
I2 O I1
0
I3 I2 O
I4 I3
I5 I4
LUT6 aPoolOut_OBUF[2240]_inst_i_54 LUT5
I0
2
I1
0
I2 O
I3
I4
FADD1/exponent1_i_341__70 I5
6 6 LUT6
I0 O
6
I1 aPoolOut_OBUF[2240]_inst_i_63
LUT2 I0
I1
1
FADD1/exponent1_i_343__70 I2 O
4 4 2
I0 O I3
4
I1 I4
LUT2 1
I5
FADD1/exponent1_i_344__70 LUT6
3 3
I0 O
3
I1 aPoolOut_OBUF[2240]_inst_i_136
LUT2 0
I0 O
FADD1/exponent1_i_345__70 LUT1
2 2
I0 O aPoolOut_OBUF[2240]_inst_i_154
2 6
I1 I0 O
LUT2 LUT1
FADD1/exponent1_i_346__70 aPoolOut_OBUF[2240]_inst_i_158
1 1
I0 O I0
1
I1 I1
LUT2 2
I2 O
FADD1/exponent1_i_347__70 I3
0 0
I0 O I4
0 2
I1 I5
LUT2 LUT6
exponent1_i_332__70 aPoolOut_OBUF[2240]_inst_i_159
7
I0 O I0
LUT1 I1
1
exponent1_i_334__70 I2 O
5
I0 O I3
LUT1 I4
1
exponent1_i_340__70 I5
7 LUT6
I0 O
7
I1 aPoolOut_OBUF[2240]_inst_i_160
LUT2 I0
0
exponent1_i_342__70 I1 O
5 0
I0 O I2
5 LUT3
I1
LUT2
aPoolOut_OBUF[2240]_inst_i_161
7 7
I0 O
7
aPoolOut_OBUF[1136]_inst_i_190 I1
2 LUT2
I0 O
LUT1 aPoolOut_OBUF[2240]_inst_i_162
6
I0 O
6
I1
LUT2
aPoolOut_OBUF[2240]_inst_i_168
I0
0
I1 O
0
I2
I3
LUT4
aPoolOut_OBUF[2240]_inst_i_208
33
I0
38
exponent1_i_130__139 I1 O
33
I0 I2
38 LUT3
I1
7
I2 O
3
I3 aPoolOut_OBUF[2240]_inst_i_209
0 1
I4 I0
LUT5 38
aPoolOut_OBUF[1136]_inst_i_191 I1 O
1
I0 I2
I1 LUT3
1
I2 O
exponent1_i_215__139 I3 FADD1/aPoolOut_OBUF[1136]_inst_i_292
7 7
I0 I4 I0 O
I1 I5 I1
I2 O LUT6 LUT2
I3 aPoolOut_OBUF[1136]_inst_i_192 FADD1/aPoolOut_OBUF[1136]_inst_i_294
0 5 5
I4 I0 O I0 O
I5 LUT1 I1
LUT6 LUT2
aPoolOut_OBUF[1136]_inst_i_306
exponent1_i_237__139 I0
I0 aPoolOut_OBUF[1136]_inst_i_307 I1
I1 I0 I2 O
32
I2 O I1 I3
I3 I2 O I4
I4 I3 LUT5
I5 I4
LUT6 I5 aPoolOut_OBUF[1136]_inst_i_308
LUT6 7
I0 O
aPoolOut_OBUF[1136]_inst_i_356 LUT1
I0
exponent1_i_238__139 I1
I0 I2 O
I1 I3
I2 O I4
I3 LUT5 aPoolOut_OBUF[1136]_inst_i_309
5
I4 I0 O
LUT5 LUT1
aPoolOut_OBUF[1136]_inst_i_304 aPoolOut_OBUF[1136]_inst_i_358
I0 I0
32
I1 I1
I2 O I2 O exponent1_i_337__70
36
I3 I3 I0
2
aPoolOut_OBUF[1136]_inst_i_300 I4 I4 I1
2 LUT5 LUT5 2
I0 I2 O
I1 I3
I2 O aPoolOut_OBUF[1136]_inst_i_359 I4
I3 I0 I5
I4 I1 LUT6
32 31
I5 I2 O
LUT6 aPoolOut_OBUF[1136]_inst_i_305 I3 exponent1_i_333__70
I0 I4 I0
2
I1 I5 I1
LUT6 6
I2 O I2 O
I3 aPoolOut_OBUF[1136]_inst_i_360 I3
aPoolOut_OBUF[1136]_inst_i_357 I4 I0 I4
I0 I5 I1 I5
I1 LUT6 I2 O LUT6
I2 O I3
I3 I4 exponent1_i_335__70
I4 I5 I0
LUT6 2
I5 I1
LUT6 4
I2 O
aPoolOut_OBUF[1136]_inst_i_362 I3
30
I0 I4
aPoolOut_OBUF[1136]_inst_i_368 I1 I5
I0 I2 O LUT6
I1 I3 exponent1_i_336__70
I2 O I4 I0
2 FADD3/aPoolOut_OBUF[2240]_inst_i_20
I3 I5 I1 7
3 CI
I4 LUT6 I2 O
CI_TOP CO[7:0]
I5 aPoolOut_OBUF[1136]_inst_i_363 I3
2:0 DI[7:0] O[7:0]
LUT6 aPoolOut_OBUF[1136]_inst_i_380 I0 I4 2:0
S[7:0]
I0 I1 I5
CARRY8
aPoolOut_OBUF[1136]_inst_i_369 I1 O I2 O LUT6
I0 I2 I3
I1 I3 I4 aPoolOut_OBUF[2240]_inst_i_56
LUT4 FADD3/aPoolOut_OBUF[2240]_inst_i_58
aPoolOut_OBUF[1136]_inst_i_302 I2 O I5 I0
32 CI
I0 O I3 LUT6 I1
CI_TOP CO[7:0] 1
I1 I4 aPoolOut_OBUF[1136]_inst_i_364 I2 O
DI[7:0] O[7:0] 2
LUT2 LUT5 I0 I3
30 S[7:0]
I1 I4
CARRY8
1
aPoolOut_OBUF[1136]_inst_i_381 I2 O I5
29 LUT6
I0 I3
I1 I4
exponent1_i_382__70 I2 O I5 aPoolOut_OBUF[1136]_inst_i_226
31 LUT6
I0 I3 I0
aPoolOut_OBUF[1136]_inst_i_318 I1 I4 I1
LUT5 24
I0 I2 O I2 O
I1 I3 I3
I2 O I4 I4
LUT5 25
I3 aPoolIn_IBUF[4513]_inst I5
I4 exponent1_i_383__70 LUT6
I O
I5 I0
LUT6 I1 exponent1_i_381__70 IBUF aPoolOut_OBUF[1136]_inst_i_228
aPoolOut_OBUF[1136]_inst_i_365 I2 O I0 I0
I0 I3 I1 exponent1_i_385__70 aPoolIn_IBUF[4515]_inst I1
2 6
I1 I4 I2 O I0 I2 O
LUT5 I O
I2 O I3 I1 I3
I3 exponent1_i_386__70 I4 I2 O IBUF I4
22
I4 I0 I5 I3 aPoolIn_IBUF[4517]_inst I5
I5 I1 LUT6 I4 LUT6
LUT6 37 I O
I2 O exponent1_i_384__70 I5 aPoolOut_OBUF[1136]_inst_i_229
37 LUT6 IBUF
I3 I0 I0
I4 I1 I1
2 5
I5 I2 O I2 O
LUT6 I3 I3
I4 I4
21
I5 I5
LUT6 aPoolIn_IBUF[4527]_inst LUT6
aPoolOut_OBUF[1136]_inst_i_301
I O 34
I0
IBUF I1 O
I2
aPoolIn_IBUF[4532]_inst I3
LUT4
I O
aPoolOut_OBUF[1136]_inst_i_310
IBUF 7
I0 O
7
exponent1_i_402__70 I1
I0 aPoolIn_IBUF[4533]_inst LUT2
I1 O exponent1_i_387__70 aPoolOut_OBUF[1136]_inst_i_312
I O 5
I2 I0 I0 O
IBUF 5
I3 I1 I1
LUT4 I2 O LUT2
I3 aPoolIn_IBUF[4541]_inst aPoolOut_OBUF[1136]_inst_i_317
0 0
I4 I0 O
I O 30 0
I5 I1
LUT6 IBUF LUT2
aPoolIn_IBUF[4543]_inst aPoolOut_OBUF[1136]_inst_i_319
I0
I O 28
I1 O
IBUF I2
aPoolIn_IBUF[4969]_inst I3
LUT4
I O 22
exponent1_i_239__139 aPoolIn_IBUF[4985]_inst I4
I0 I5
I O 6 LUT6
I1
I2 O IBUF
I3 aPoolIn_IBUF[4987]_inst
I4 aPoolOut_OBUF[1136]_inst_i_371
I O 4
I5 I0
LUT6 IBUF I1 O
exponent1_i_248__139 I2
I0 LUT3
I1 O aPoolOut_OBUF[2240]_inst_i_73
exponent1_i_355__139 I2 I0
2
I0 I3 I1
LUT4 26
I1 O aPoolOut_OBUF[2240]_inst_i_149 I2 O
6
I2 I0 I3
I3 I1 O I4
LUT4 I2 aPoolOut_OBUF[2240]_inst_i_255 LUT5
exponent1_i_356__139 I3 I0 aPoolOut_OBUF[2240]_inst_i_105
0 LUT4
I0 I1 O I0
8 26 2
I1 aPoolOut_OBUF[2240]_inst_i_150 I2 I1 O
I2 O I0 I3 I2
I3 I1 O LUT4 LUT3
I4 I2 aPoolOut_OBUF[2240]_inst_i_124
4 33
I5 I3 I0
LUT6 LUT4 38
aPoolOut_OBUF[2240]_inst_i_287 I1 O
aPoolOut_OBUF[2240]_inst_i_271 I0 I2
4 LUT3
aPoolOut_OBUF[2240]_inst_i_272 I0 I1
4
I0 I1 I2 O aPoolOut_OBUF[2240]_inst_i_130
8
I1 O I2 O I3 I0
I2 I3 I4 I1
LUT3 I4 I5 I2 O
I5 LUT6 I3
I3 I5 LUT2
I4 LUT6 FADD3/exponent1_i_162__139
3 3
aPoolOut_OBUF[2240]_inst_i_380 I5 I0 O
LUT6 3
I0 aPoolOut_OBUF[2240]_inst_i_289 I1
I1 O aPoolOut_OBUF[2240]_inst_i_361 I0 LUT2
31
I2 I0 I1 FADD3/exponent1_i_163__139
2 2 2
I3 I1 I2 O I0 O
LUT4 2
I2 O I3 I1
aPoolOut_OBUF[2240]_inst_i_382 I3 I4 LUT2
28 30
I0 I4 I5 aPoolOut_OBUF[2240]_inst_i_140
LUT6 4 4
I1 I5 I0 O
LUT6 4
exponent1_i_246__139 I2 O aPoolOut_OBUF[2240]_inst_i_290 I1
2 LUT2
I0 I3 aPoolOut_OBUF[2240]_inst_i_362 I0
2 30
I1 I4 I0 I1 aPoolOut_OBUF[2240]_inst_i_141
1 3 3
I2 O I5 I1 I2 O I0 O
3 LUT6 3
I3 I2 O I3 I1
38 LUT2
I4 I3 I4
3 29
I5 exponent1_i_403__70 I4 I5 aPoolOut_OBUF[2240]_inst_i_142
LUT6 37 LUT6 2 2
I0 I5 I0 O
LUT6 2
I1 O aPoolIn_IBUF[8960]_inst I1
I2 aPoolOut_OBUF[2240]_inst_i_363 LUT2
I O 38
exponent1_i_310__139 I3 I0 exponent1_i_128__139
7 LUT4 IBUF
I0 I1 I0
38
I1 O I2 O aPoolIn_IBUF[8974]_inst I1
7
I2 I3 I2 O
LUT3 I O 35
I4 I3
exponent1_i_311__139 I5 IBUF I4
0 LUT6
exponent1_i_304__139 I0 aPoolOut_OBUF[2240]_inst_i_291 I5
38 LUT6
I0 I1 O aPoolOut_OBUF[2240]_inst_i_364 I0
3 0
I1 I2 I0 I1 exponent1_i_141__139
38 LUT3 30 0
I2 O I1 I2 O I0
3
I3 exponent1_i_317__139 I2 O I3 I1
1 2
I4 I0 I3 I4 I2 O
1 38 28
I5 I1 O I4 I5 I3
LUT6 2 LUT6
I2 I5 I4
LUT3 LUT6 aPoolIn_IBUF[8975]_inst I5
LUT6
I O 34
exponent1_i_142__139
IBUF I0
exponent1_i_331__139 I1
0
I0 exponent1_i_404__70 I2 O
38
I1 I0 aPoolIn_IBUF[8982]_inst I3
0
I2 O I1 O I4
I O
I3 I2 I5
I4 I3 IBUF LUT6
I5 LUT4 exponent1_i_159__139
LUT6 6 6
I0 O
aPoolIn_IBUF[8988]_inst I1
LUT2
I O
aPoolOut_OBUF[2240]_inst_i_353 aPoolOut_OBUF[2240]_inst_i_144
1 IBUF
I0 I0
9 0
I1 I1 O
5 0
I2 O I2
I3 aPoolOut_OBUF[1136]_inst_i_331 I3
22 LUT4
I4 I0
LUT5 I1 exponent1_i_165__139
I2 O I0
24 0
I3 I1 O
0
I4 I2
LUT5 I3
LUT4
FADD3/aPoolOut_OBUF[2240]_inst_i_55
2 2
I0 O
I1
aPoolOut_OBUF[1136]_inst_i_332 LUT2
I0
25
I1 O
I2
23
I3
LUT4
exponent1_i_388__70
36
I0
I1
I2 O
I3
I4
I5
LUT6
exponent1_i_337__139
36
exponent1_i_387__139 I0
2
I0 I1
2
exponent1_i_403__139 I1 I2 O
37
I0 I2 O I3
I1 O I3 I4
I2 I4 I5 aPoolOut_OBUF[2240]_inst_i_253
I3 I5 LUT6 I0
LUT4 LUT6 I1
exponent1_i_338__139 I2 O
35
exponent1_i_404__139 exponent1_i_388__139 I0 I3
36 2
I0 I0 I1 I4
1
I1 O I1 I2 O I5
I2 I2 O I3 LUT6
I3 I3 I4
LUT4 I4 I5
I5 LUT6
LUT6 exponent1_i_336__139 aPoolOut_OBUF[2240]_inst_i_311
6 6
exponent1_i_406__139 I0 I0 O
34 2 6
I0 I1 I1
3 LUT2
I1 I2 O
I2 O I3 aPoolOut_OBUF[2240]_inst_i_313
4 4
I3 exponent1_i_389__139 I4 I0 O
4
I4 I0 I5 I1
I5 I1 LUT6 LUT2
LUT6 I2 O exponent1_i_339__139 aPoolOut_OBUF[2240]_inst_i_314
34 3 3
I3 I0 I0 O
2 3
I4 I1 I1
0 LUT2
I5 I2 O
LUT6 I3 aPoolOut_OBUF[2240]_inst_i_317
0 0
I4 I0 O
0
exponent1_i_390__139 I5 I1
I0 LUT6 LUT2
36
I1
I2 O
I3 exponent1_i_350__139
I4 I0
I5 I1 O
LUT6 I2
I3 aPoolOut_OBUF[2240]_inst_i_342
LUT4 I0
exponent1_i_385__139 I1
I0 I2 O
I1 I3
I2 O I4
I3 LUT5
I4 aPoolOut_OBUF[2240]_inst_i_344
I5 I0
LUT6 I1
I2 O
I3
aPoolOut_OBUF[2240]_inst_i_293 I4
6 6
I0 O I5
6 LUT6
I1
LUT2
aPoolOut_OBUF[2240]_inst_i_298 aPoolOut_OBUF[2240]_inst_i_352
1 1 3
I0 O I0
1
I1 I1 O
LUT2 7
I2
I3
aPoolOut_OBUF[2240]_inst_i_299 LUT4
0 0
I0 O
0
I1 aPoolOut_OBUF[2240]_inst_i_359
LUT2 I0
I1
31
I2 O
I3
aPoolOut_OBUF[2240]_inst_i_341 I4
I0 I5
I1 LUT6
I2 O
I3
I4
I0 I1
I1 I2 O
I2 O I3
I3 I4
I4 I5
LUT5 LUT6
exponent1_i_257__139
I0
FADD1/aPoolOut_OBUF[2240]_inst_i_189
I1
CI
I2 O
CI_TOP CO[7:0]
I3
DI[7:0] O[7:0]
I4
S[7:0]
I5
CARRY8
LUT6
exponent1_i_321__139
3
I0
38
I1 O
3
I2
LUT3
4 exponent1_i_322__139
I0
38
I1 O
4
I2
LUT3
exponent1_i_391__139 exponent1_i_352__139
I0 I0
I1 O I1
I2 I2 O
LUT3 I3
I4
I5
LUT6
exponent1_i_357__139
exponent1_i_273__139 I0
3
I0 I1
38
I1 I2 O
3
I2 O I3
I3 I4
I4 I5
I5 LUT6
LUT6
aPoolOut_OBUF[2240]_inst_i_376
I0
I1
I2 O
I3
I4
I5
LUT6
exponent1_i_305__139 aPoolIn_IBUF[4518]_inst
0
I0
38 I O
I1 O
0 IBUF
I2
LUT3 aPoolIn_IBUF[4534]_inst
exponent1_i_309__139
I O
I0
I1 IBUF
I2 O aPoolIn_IBUF[4535]_inst
I3
I O
I4
I5 IBUF
LUT6 aPoolIn_IBUF[4539]_inst
I O
IBUF
exponent1_i_359__139
I0
I1 O
I2
LUT3
aPoolIn_IBUF[4540]_inst
I O
exponent1_i_320__139 IBUF
0
I0
0
I1 aPoolIn_IBUF[9410]_inst
1
I2 O
38 I O
I3
1 IBUF
I4
LUT5 exponent1_i_379__139
exponent1_i_323__139 I0
5
I0 I1
38
I1 O I2 O
5
I2 I3
LUT3 I4
aPoolIn_IBUF[8991]_inst I5
LUT6
I O 28
IBUF
aPoolIn_IBUF[9416]_inst
I O 23
IBUF
aPoolIn_IBUF[9417]_inst
I O 22
IBUF
aPoolIn_IBUF[9418]_inst
I O 21
IBUF
aPoolIn_IBUF[9419]_inst
I O 20
IBUF
aPoolIn_IBUF[9420]_inst
I O 19
IBUF
aPoolIn_IBUF[9421]_inst
I O 18
IBUF
aPoolIn_IBUF[9422]_inst
I O 17
IBUF
aPoolIn_IBUF[9423]_inst
I O 16
IBUF
aPoolIn_IBUF[9424]_inst
I O 15
IBUF
aPoolIn_IBUF[9425]_inst
I O 14
IBUF
aPoolIn_IBUF[9426]_inst
I O 13
IBUF
aPoolIn_IBUF[9427]_inst
I O 12
IBUF
aPoolIn_IBUF[9428]_inst
I O 11
IBUF
aPoolIn_IBUF[9429]_inst
I O 10
IBUF
aPoolIn_IBUF[9430]_inst
I O 9
IBUF
aPoolIn_IBUF[9431]_inst
I O 8
IBUF
aPoolIn_IBUF[9432]_inst
I O 7
IBUF
aPoolIn_IBUF[9433]_inst
I O 6
IBUF
aPoolIn_IBUF[9434]_inst
I O 5
IBUF
aPoolIn_IBUF[9435]_inst
I O 4
IBUF
aPoolIn_IBUF[9436]_inst
I O 3
IBUF
aPoolIn_IBUF[9437]_inst
I O 2
IBUF
aPoolIn_IBUF[9438]_inst
I O 1
IBUF
aPoolIn_IBUF[9439]_inst
I O 0
IBUF
Part 5
Integration
Omar Tarek
1) Block Diagram
(note: due to the large size and several constraints the full design was not
implemented)
Fully
Convolution
16 to 32-bit converter Connected
Part
Part
We notice that the numbers are a bit off but all within our
range of accuracy. Off by a small fraction due to the short range
and convergence condition of the tanh.
The data was copied from the Waveform and the results of the
C++ code.
b. Post Synthesis Timing for the basic convUnit:
(as agreed upon post timing for larger layers of hardware are not achievable with our
hardware capabilities. Our attempts reached up to 20 hours, all while stalling the progress
bar. It’s not achievable on consumer hardware)
address1_reg[1]
address1[1]_i_2 address1[1]_i_1
2
I0 I0 C
3 6
I1 O I1 CE 1
7 4 Q
I2 I2 O D
1 5
I3 I3 PRE
LUT4 1
I4
FDPE
0
I5
LUT6 address1_reg[3]
address1[3]_i_1 C
2
I0 CE 3
0 Q
I1 O D
1
I2 PRE
3
I3
FDPE
LUT4
address1_reg[4]
address1[4]_i_1
3
I0 C
1
I1 CE 4
0 Q
I2 O D
2
I3 PRE
4
I4
FDPE
LUT5
address1_reg[5]
address1[5]_i_1
4
I0 C
2
I1 CE 5
0 Q
I2 O D
1
I3 PRE
address1[7]_i_2 3
4 I4
I0 FDPE
5
2 I5
I1
LUT6 address1_reg[6]
0
I2 O
1
I3 C
3
I4 address1[6]_i_1 CE 6
5 Q
I5 I0 O D
LUT6 6
I1 PRE
LUT2
FDPE
address1_reg[7]
address1[7]_i_1 C
6
I0 CE 7
Q
I1 O D
7
I2 PRE
LUT3
FDPE
address2_reg[0]_rep__4
address2[0]_rep__4_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__5
address2[0]_rep__5_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__6
address2[0]_rep__6_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__7
address2[0]_rep__7_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__8
address2[0]_rep__8_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__9
address2[0]_rep__9_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__10
address2[0]_rep__10_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__11
address2[0]_rep__11_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__12
address2[0]_rep__12_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__13
address2[0]_rep__13_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__14
address2[0]_rep__14_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__15
address2[0]_rep__15_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__16
address2[0]_rep__16_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__18
address2[0]_rep__18_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[1]_rep__6
address2[1]_rep__6_i_1
1
I0 C
I1 CE
7 Q
I2 O D
7
I3 PRE
6
I4
FDPE
7
I5
LUT6
address2_reg[1]_rep__7
address2[1]_rep__7_i_1
1
I0 C
I1 CE
7 Q
I2 O D
7
I3 PRE
6
I4
FDPE
7
I5
LUT6
address2_reg[1]_rep__8
address2[1]_rep__8_i_1
1
I0 C
I1 CE
7 Q
I2 O D
7
I3 PRE
6
I4
FDPE
7
I5
LUT6
address2_reg[1]_rep__9
address2[1]_rep__9_i_1
1
I0 C
I1 CE
7 Q
I2 O D
7
I3 PRE
6
I4
FDPE
7
I5
LUT6
address2_reg[1]_rep__10
address2[1]_rep__10_i_1
1
I0 C
I1 CE
7 Q
I2 O D
7
I3 PRE
6
I4
FDPE
7
I5
LUT6 address2_reg[1]_rep__11
address2[1]_rep__11_i_1 C
1
I0 CE
Q
I1 D
7
I2 O PRE
7
I3
FDPE
6
I4
7
I5 address2_reg[1]_rep__12
LUT6
C
address2[1]_rep__12_i_1 CE
1 Q
I0 D
I1 PRE
7
I2 O
FDPE
7
I3
6
I4 address2_reg[1]_rep__13
7
I5
C
LUT6
CE
Q
address2[1]_rep__13_i_1 D
1
I0 PRE
I1
FDPE
7
I2 O
7
I3 FC2reset_reg
6
I4
FC2reset_i_2 7 C
7 I5
I0 CE
LUT6 Q
7
I1 D
6
I2 O FC2reset_i_1 PRE
7
I3 I0 O
FDPE
7
I4 I1
7 LUT2
I5
LUT6
SMaxEnable_reg
SMaxEnable_i_1
I0 C
7
I1 CE
7 Q
SMaxEnable_i_2 I2 O CLR
6 7
I0 O I3 D
7
I1 I4
FDCE
LUT2 I5
LUT6
address2_reg[0]_rep__19
address2[0]_rep__19_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[0]_rep__20
address2[0]_rep__20_i_1
7
I0 C
7
I1 CE
6 Q
I2 O D
7
I3 PRE
I4
FDPE
LUT5
address2_reg[4]
address2[4]_i_1 C
4
I0 CE 4
Q
I1 D
I2 O PRE
I3
FDPE
3
address2[6]_i_58 I4
6 3
I0 O I5 address2_reg[2]_rep__3
LUT1 LUT6
C
address2[2]_rep__3_i_1 CE
address2[6]_i_59 address2[5]_i_2 Q
0 0 3 I0 D
I0 O I0
I1 O PRE
LUT1 I1
I2
I2 O FDPE
address2[6]_i_78 I3
5 7 I3
I0 O LUT4 address2_reg[2]_rep__4
4
6 I4
I1
LUT5 address2[2]_rep__4_i_1 C
LUT2
I0 CE
address2[7]_i_2 Q
address2[6]_i_79 4 I1 O D
3 6 I0
I0 O I2 PRE
4 I1
I1 I3
I2 O FDPE
LUT2 LUT4
I3
3 address2_reg[2]
address2[6]_i_80 I4
1 5 5 address2[2]_i_1
I0 O I5 C
2 I0
I1 LUT6 CE 2
I1 O Q
LUT2 D
I2
PRE
address2[6]_i_81 I3
7 4 LUT4 FDPE
I0 O
0
I1
LUT2
address2_reg[2]_rep__5
address2[6]_i_82
5 3 address2[2]_rep__5_i_1
I0 O C
6 I0
I1 CE
I1 O Q
LUT2 D
I2
PRE
address2[6]_i_83 I3
3 2 LUT4 FDPE
I0 O
4
I1
LUT2
address2[2]_rep_i_1
address2[6]_i_84
1 1 I0 address2_reg[2]_rep
I0 O
2 I1 O
I1 C
I2
LUT2 CE
I3 Q
D
address2[6]_i_85 LUT4
0 PRE
I0 O
0 address2_reg[6]_i_6 address2[5]_i_1 FDPE
I1 5
CI I0
LUT2
CI_TOP CO[7:0] I1 address2_reg[5]
3,0 n/c 7
address2[6]_i_86 DI[7:0] O[7:0] I2 O
0 3 7 C
I0 O S[7:0] I3
6 CE 5
LUT1 CARRY8 I4 Q
7 D
I5
address2[6]_i_87 address2_reg[6]_i_16 PRE
LUT6
5 2
I0 O CI
FDPE
6
I1 CI_TOP CO[7:0]
LUT2 n/c
DI[7:0] O[7:0] address2[6]_i_1 address2_reg[6]
6
S[7:0] I0
address2[6]_i_88 C
CARRY8 I1
3 1
I0 O 7 CE 6
4 I2 O Q
I1 address2_reg[6]_i_33 7 D
I3
LUT2 CI PRE
6
I4
CI_TOP CO[7:0] 7
address2[6]_i_89 I5 FDPE
3:0 n/c
1 0 DI[7:0] O[7:0]
I0 O LUT6
2 S[7:0] address2_reg[7]
I1
CARRY8 address2[7]_i_1
LUT2 C
7
I0
CE 7
address2[6]_i_90 I1 O Q
7 7 6 D
I0 O address2_reg[6]_i_41 I2
0 PRE
I1 CI I3
LUT2 CI_TOP CO[7:0] LUT4 FDPE
n/c
DI[7:0] O[7:0]
address2[6]_i_91
5 6 S[7:0] address2[6]_i_63
I0 O 7 4
CARRY8 I0 O
6
I1 0
I1
LUT2
LUT2
address2[6]_i_92
3 5
I0 O address2[6]_i_8 address2[0]_rep_i_1 address2[6]_i_76
4 5 7 7 1 1
I1 I0 O I0 I0 O
LUT2 6 7 2
I1 I1 I1
LUT2 6 LUT2
I2 O
address2[6]_i_93 7
1 4 I3
I0 O
2 address2[6]_i_9 I4 address2_reg[0]_rep
I1 3 6
I0 O LUT5
LUT2 C
4
I1
CE
address2[6]_i_94 LUT2 address2[1]_i_1 Q
0 3 1 D
I0 O I0
7 address2[6]_i_10 PRE
I1 1 5 I1
I0 O 7
LUT2 I2 O FDPE
2
I1 7
I3
address2[6]_i_95 LUT2
6
5 2 I4
I0 O 7
6 address2[6]_i_11 I5 address2_reg[1]
I1 7 4
I0 O LUT6
LUT2 C
0
I1
address2[0]_rep__21_i_1 CE 1
LUT2 Q
7
address2[6]_i_96 I0 D
3 1 7
I0 O address2[6]_i_12 I1 PRE
4 5 3 6
I1 I0 O I2 O
FDPE
LUT2 6 7
I1 I3
LUT2 I4
address2[6]_i_97 LUT5
1 0
I0 O address2[6]_i_13 address2_reg[0]_rep__21
2 3 2
I1 I0 O
4 C
LUT2 I1
address2[0]_rep__22_i_1 CE
LUT2 Q
7
address2[6]_i_98 I0 D
5 7 7
I0 O address2[6]_i_14 I1 PRE
6 1 1 6
I1 I0 O I2 O
FDPE
LUT2 2 7
I1 I3
LUT2 I4 address2_reg[0]_rep__22
address2[6]_i_99 LUT5
3 6
I0 O address2[6]_i_15 C
4 7 0
I1 I0 O address2[0]_rep__23_i_1 CE
0 7 Q
LUT2 I1 I0 D
LUT2 7
I1 PRE
address2[6]_i_100 6
1 5 I2 O
I0 O address2[6]_i_17 FDPE
7
2 5 7 I3
I1 I0 O
6 I4 address2_reg[0]_rep__23
LUT2 I1
LUT5
LUT2 C
address2[6]_i_101
7 4 address2[0]_rep__28_i_1 CE
I0 O address2[6]_i_18 7 Q
0 3 6 I0 D
I1 I0 O 7
4 I1 PRE
LUT2 I1 6
I2 O
LUT2 FDPE
7
address2[6]_i_102 I3
5 3
I0 O address2[6]_i_19 I4 address2_reg[0]_rep__28
6 1 5 LUT5
I1 I0 O
2 C
LUT2 I1
CE
LUT2 Q
address2[6]_i_103 D
3 2 address2_reg[6]_i_2
I0 O address2[6]_i_20 7 PRE
4 7 4 CI
I1 I0 O
CI_TOP CO[7:0] FDPE
LUT2 0
I1 n/c
... DI[7:0] O[7:0]
LUT2
address2[6]_i_104 S[7:0]
1 1 CARRY8
I0 O address2[6]_i_21
2 5 3
I1 I0 O address2[7]_i_3
LUT2 6 7
I1 I0
LUT2 6
I1 O
address2[6]_i_105 7
0 0 I2
I0 O address2[6]_i_22 7
3 2 I3
I1 I0 O
address2_reg[6]_i_3 LUT4
LUT2 4
I1 7
CI
LUT2
address2[6]_i_106 CI_TOP CO[7:0]
5 7 n/c
I0 O address2[6]_i_23 DI[7:0] O[7:0]
6 1 1
I1 I0 O S[7:0]
LUT2 2 CARRY8
I1
LUT2
address2[6]_i_107 address2_reg[6]_i_4
3 6 7
I0 O address2[6]_i_24 CI
4 7 0
I1 I0 O CI_TOP CO[7:0]
LUT2 0 6 n/c
I1 DI[7:0] O[7:0]
LUT2 S[7:0]
6:0
address2[6]_i_108 CARRY8
1 5
I0 O address2[6]_i_25
2 5 7
I1 I0 O
SMaxEnable_i_77 LUT2 6 address2_reg[6]_i_5
5 7 I1 7
I0 O CI
LUT2
6
I1 address2[6]_i_109 CI_TOP CO[7:0]
LUT2 7 4 n/c
I0 O address2[6]_i_26 DI[7:0] O[7:0]
0 3 6
I1 I0 O S[7:0]
SMaxEnable_i_78 LUT2 4 CARRY8
3 6 I1
I0 O
LUT2
4
I1 address2[6]_i_110
LUT2 6 3
I0 O address2[6]_i_27
5 1 5 address2[6]_i_50
I1 I0 O 5 7
SMaxEnable_i_79 2 I0 O
LUT2 I1
1 5 6
I0 O I1
LUT2
2 LUT2
I1 address2[6]_i_111
LUT2 3 2
I0 O address2[6]_i_28
4 7 4 address2[6]_i_51
I1 I0 O 3 6
SMaxEnable_i_80 0 I0 O
LUT2 I1
7 4 4
I0 O I1
LUT2
0 LUT2
I1 address2[6]_i_112
LUT2 1 1
I0 O address2[6]_i_29
2 5 3
I1 I0 O
LUT2 6
SMaxEnable_i_81 I1
1 1 LUT2
I0 O
2 address2[6]_i_113
I1 0
I0 O address2[6]_i_30
LUT2
0 3 2
I1 I0 O
LUT2 4
SMaxEnable_i_82 I1
0 0 LUT2
I0 O
SMaxEnable_reg_i_33
I1
CI address2[6]_i_31
LUT2
1 1
CI_TOP CO[7:0] I0 O
... ... n/c 2
SMaxEnable_i_83 DI[7:0] O[7:0] I1
5 7 LUT2
I0 O S[7:0]
6 CARRY8
I1
LUT2 address2[6]_i_32
7 0
I0 O
0
SMaxEnable_i_84 I1
3 6 LUT2
I0 O
4
I1
LUT2 SMaxEnable_i_34 address2[6]_i_34
5 7 5 6
I0 O I0 O
6 6
SMaxEnable_i_85 I1 I1
1 5 LUT2 LUT2
I0 O
2
I1
LUT2 SMaxEnable_i_35 address2[6]_i_35
3 6 3 5
I0 O I0 O
4 4
I1 I1
LUT2 LUT2
SMaxEnable_i_86
0 4
I0 O SMaxEnable_i_36 address2[6]_i_36
7 1 5 1 4
I1 I0 O I0 O
LUT2 2 2
I1 I1
LUT2 LUT2
SMaxEnable_i_87
5 3
I0 O address2[6]_i_37
6 SMaxEnable_i_37 7 3
I1 7 4 I0 O
I0 O 0
LUT2 I1
0
I1
LUT2
SMaxEnable_i_88 LUT2
3 2
I0 O address2[6]_i_38
4 SMaxEnable_i_38 5 2
I1 5 3 I0 O
I0 O 6
LUT2 I1
6
I1
LUT2
SMaxEnable_i_89 LUT2
2 1
I0 O address2[6]_i_39 address2[6]_i_53
1 SMaxEnable_i_39 3 1 7 4
I1 3 2 I0 O I0 O
I0 O 4 0
LUT2 I1 I1
4
I1
LUT2 LUT2
SMaxEnable_i_90 LUT2
0
I0 O address2[6]_i_40 address2[6]_i_57
0 SMaxEnable_i_40 1 0 7 0
I1 1 1 I0 O I0 O
I0 O 2 0
LUT2 I1 I1
2
I1
LUT2 LUT2
LUT2
SMaxEnable_i_41 SMaxEnable_reg_i_5
7 0 7
I0 O CI
0
I1 CI_TOP CO[7:0]
LUT2 n/c
DI[7:0] O[7:0]
S[7:0]
CARRY8
address2[6]_i_42
5 7
I0 O
6
I1
LUT2
address2[6]_i_43
3 6
I0 O
4
I1
LUT2
counter_reg[17] address2[6]_i_44
1 5
I0 O
C 2
I1
CE
Q LUT2
CLR
1
D
address2[6]_i_45
FDCE 7 4
I0 O
0
I1
counter_reg[25] counter_reg[18] LUT2
C C
CE CE counter_reg[9] address2[6]_i_46
Q Q 5 3
CLR CLR I0 O
1 2 C 6 SMaxEnable_i_46
D D I1 5 3
CE I0 O
Q LUT2
FDCE FDCE 6
CLR I1
1 LUT2
D address2[6]_i_47
counter_reg[26] counter_reg[19] 3 2
I0 O
FDCE SMaxEnable_i_47
4
C C I1 3 2
I0 O
CE CE counter_reg[10] LUT2
4
Q Q I1
CLR CLR
C address2[6]_i_48 LUT2
2 3
D D 1 1
CE I0 O
Q 2 SMaxEnable_i_48
FDCE FDCE CLR I1 1 1
2 I0 O
D LUT2
2
counter_reg[27] counter_reg[20] I1
FDCE address2[6]_i_49 LUT2
C C 7 0
counter[0]_i_2 I0 O
CE CE counter_reg[11] 0 SMaxEnable_i_49
Q Q I0 O I1 7 0
CLR CLR I0 O
C LUT1 LUT2
3 4 0
D D I1
CE
Q LUT2
FDCE FDCE CLR
3
D SMaxEnable_i_71
counter_reg[28] counter_reg[21] 1 5
counter_reg[1] counter_reg[0]_i_1 I0 O
FDCE
2
C C CI I1
C
CE CE counter_reg[12] CI_TOP CO[7:0] LUT2
Q Q CE V=B"00000001"
CLR CLR Q DI[7:0] O[7:0]
4 5 C CLR SMaxEnable_i_72
D D 1 S[7:0] 0 4
CE D I0 O
Q CARRY8
FDCE FDCE 7
CLR I1
FDCE
4 LUT2
D
counter_reg[29] counter_reg[22]
FDCE counter_reg[2] counter_reg[0]
SMaxEnable_i_73
C C 5 3
C C I0 O
CE CE counter_reg[13] 6
Q Q CE CE I1
CLR CLR Q Q
C CLR CLR LUT2
5 6
D D 2 0
CE D D
Q SMaxEnable_i_74
FDCE FDCE CLR
FDCE FDCE 3 2
5 I0 O
D 4
counter_reg[30] counter_reg[23] I1
FDCE LUT2
C C
CE CE counter_reg[14] SMaxEnable_i_75
Q Q counter_reg[3] SMaxEnable_reg_i_67 1 1
CLR CLR I0 O
6 7 C CI 2
D D C I1
CE CI_TOP CO[7:0]
Q CE LUT2
FDCE FDCE CLR Q DI[7:0] O[7:0]
6 CLR
D 3 S[7:0]
D SMaxEnable_i_76
CARRY8
FDCE 0
I0 O
FDCE
0
address2_reg[6]_i_7 I1
counter_reg[31] counter_reg[24] counter_reg[15] 7 LUT2
CI
C C C CI_TOP CO[7:0]
counter_reg[4]
CE CE CE DI[7:0] O[7:0]
Q Q Q
CLR CLR CLR C S[7:0]
7 0 7 CARRY8
D D D CE
Q
CLR
FDCE FDCE FDCE
4
D
FDCE address2_reg[6]_i_68
7
CI
counter_reg[24]_i_1 counter_reg[16]_i_1 counter_reg[8]_i_1
7 7 7 CI_TOP CO[7:0]
CI CI counter_reg[16] CI
DI[7:0] O[7:0]
CI_TOP CO[7:0] CI_TOP CO[7:0] CI_TOP CO[7:0] counter_reg[5]
C S[7:0]
DI[7:0] O[7:0] DI[7:0] O[7:0] DI[7:0] O[7:0]
CE C CARRY8
S[7:0] S[7:0] Q S[7:0]
CLR CE
CARRY8 CARRY8 CARRY8 Q address2_reg[6]_i_69
0
D CLR 7
5 CI
D
FDCE CI_TOP CO[7:0]
FDCE DI[7:0] O[7:0]
S[7:0]
CARRY8
counter_reg[6]
CE
Q
CLR
6
D
FDCE
counter_reg[7]
C
CE
Q
CLR
7
D
reset_IBUF_inst
FDCE
I O
reset
IBUF
counter_reg[8]
CE
Q
CLR
0
D
FDCE