Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abdallahabusidu/dcnn
A detailed low-level chip that applies a CNN classifier over a grayscaled image (MNIST handwritten digits dataset).
https://github.com/abdallahabusidu/dcnn
Last synced: 5 days ago
JSON representation
A detailed low-level chip that applies a CNN classifier over a grayscaled image (MNIST handwritten digits dataset).
- Host: GitHub
- URL: https://github.com/abdallahabusidu/dcnn
- Owner: abdallahabusidu
- License: mit
- Created: 2021-05-08T17:44:23.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-06-28T21:29:42.000Z (over 3 years ago)
- Last Synced: 2025-01-09T21:03:27.188Z (about 1 month ago)
- Language: VHDL
- Homepage:
- Size: 2.46 MB
- Stars: 5
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![](https://i.ibb.co/z607zXT/DCNN-ACCELERATORlogos-transparent.png)
[![GitHub stars](https://img.shields.io/github/stars/abdallahabusedo/DCNN)](https://github.com/abdallahabusedo/DCNN/stargazers) [![GitHub issues](https://img.shields.io/github/issues/abdallahabusedo/DCNN)](https://github.com/abdallahabusedo/DCNN/issues) [![GitHub forks](https://img.shields.io/github/forks/abdallahabusedo/DCNN)](https://github.com/abdallahabusedo/DCNN/network) [![GitHub](https://img.shields.io/github/license/abdallahabusedo/DCNN)](https://github.com/abdallahabusedo/DCNN/blob/main/LICENSE)
![]()
## Description
A detailed low-level chip that applies a CNN classifier over a grayscaled image (MNIST handwritten digits dataset).
The chip is a stand-alone chip that reads the image & CNN layers from user, applies the layers (convolution / pooling) consequently, and generates the output label (0 - 9).## Design
[![](https://i.ibb.co/n8NYzqX/1.png)]()
[![](https://i.ibb.co/GVfLPGB/CPU-CHIP.png)]()
The process is divided into 3 modules:
1. IO Module
The image & CNN info will be compressed before sending them to the DCNN accelerator (this part is a software script that applies the compression algorithm - RLE - on the input). Then the compressed files are sent over a parallel port (16bit) to the DCNN accelerator. The received data will be decompressed by the hardware and saved on a local RAM.
![](https://i.ibb.co/T0Xs5mW/2.png)
2. CNN Module
The CNN layers are read and applied one by one in the CNN module.
For each layer the module loops over the image using sliding 2D windows and computing the filter result for the middle pixels.
The result of each layer is saved in the local RAM to be processed by the next layer.![](https://i.ibb.co/6Z5w6qJ/4.png)
3. FC Module
The last CNN layer result is passed to a fully connected neural network that generates the probability for each label.
Finally a softmax layer is used to choose the classifier prediction.![](https://i.ibb.co/H74XTYJ/3.png)
## TOOLS
- Vhdl
- Verilog
- Modelsim
- Python## Contributors
Thanks goes to these wonderful people ✨
Kareem Mohamed
Ebrahim Gomaa
Eman Othman
Tarek Samy
Abdullah Zaher
Aya Samir
Hager Ismael
Nihal Mansour
Asmaa Sayed## License
> This software is licensed under MIT License, See [License](https://github.com/abdallahabusedo/DCNN/blob/main/LICENSE)