FPGA implementation of Cellular Neural Network (CNN)
CNN.v
is Top-level design with initialization for A, B, I template
SixteenbySixteen.java
generates Verilog code for 16x16 layer module sixteenbysixteen.v
CornerDetection
Other available templates in here
- Change the
size
variable in SixteenbySixteen can generate different dimension module - Contain a 4x4 layer module fourbyfour.v
- fourbyfour.v and sixteenbysixteen.v use one multiplier and two adders in calculation of equation 1
- Any files ended with 18mul are associated with the version using 18 multipliers and finishing equation 1 calculation in one clock cycle
- Top level design CNN.v and CNNfourbyfour.v is shared with both versions
- Change the module link, for example, sixteenbysixteen u1 to sixteenbysixteen18mul u1
will change to the version which does equation 1 calculation in one clock cycle - Eq1 Initial folder contains the work by Sangeetha J. who completes using one multiplier and one adder to calculate template A times output Y or template B times input U. The default version which using one multiplier and two adders in calcualtion of equation 1 is based on her contribution
size = 16;
CNN.v is using sixteenbysixteen.v
- Fork
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request
SP-CNN: A Scalable and Programmable CNN-based Accelerator, Dilan Manatunga, Hyesoon Kim, Saibal Mukhopadhyay GOMACTech, Mar. 2015
Enmao Diao
Ria Gupte
Hyesoon Kim
Joshua Lee
Sangeetha J.