Computer Design Project is a student driven project at NTNU where students work together designing a computer system. The students are involved in the entire process, from early design, making the PCB, choosing components, and writing software to run on the system.
The task given was to create an array-based parallel image processor with focus on performance. An array processor is a grid of processing elements, where each of the processing elements are able to communicate with its north, south, east and west neighbors.
Upon the completion of the Computer Design Project we wrote a detailed technical report detailing every step of the way of from the very start of the design process, implementation of all the various components, system testing, deployment and usage of 256 Shades of Gray.
Download the entire source code repository for the 256 Shades of Gray machine directly from GitHub. This includes all source VHDL project files for the LENA architecture and all source C-files for the SCU. Fork it and make your own machine.
The processing part of LENA processor is the SIMD array. It is organized in a two-dimensional matrix (3x2), as specified by the project assignment. Each node processes one word at a time and can communicate with its four direct neighbors.
256 Shades of Gray has a optimal maximum frame rate of 21 FPS, while the average frame rate is around 13 FPS when utilizing the DMA module for pushing new data to the SIMD nodes in the background. This is very good considering that our target frame rate was 10 FPS.