
(System Python)
A top-level schematic of the Sobel SoC can be found here.
Sobel's algorithm functions have been partitioned to the AVR which handles all memory management and data manipulation
and to the Sobel accelerator, along with the sqrt arithmetic component which handles all the numerical calculations.
The two processors (AVR and Sobel) communicate through a bridge that manages the interaction and data exchange between
them.
All the VHDL files describing the Sobel's system can be found below. The Sobel accelerator along with a clock divider
components and the bridge have been described in Python and we used SysPy to produce the XST compatible VHDL descriptions
(Python - VHDL descriptions).
The software running on the AVR processor has been written in C.The AVR's program memory has been initialized using
SysPy which makes a system call to the GCC compiler/AVR lib and automatically initializes the processor's program
memory with the executable file produced by the compiler (AVR_core).
A component from Xilinx's CoreLib library (sqrt component) has been used for square root calculation, needed by the Sobel algorithm,
by applying the CORDIC algorithm.
All the aforementioned components have been "glued" together in a top-level Python description using SysPy.
Main Page