Hardware accelerator for PPC microprocessor by: Dimitry Stolberg Reem Kopitman Instructor: Evgeny Fiksman
Abstract Problem There are complex software functions (e.g. FFT) which takes a lot of CPU recourses Common ways of hardware implementation of such function are complicated Solution Implement whole application in software using ASC technology
What is ASC ? A Stream Compiler for FPGAs Input : One code stream of mixed software and hardware Output : Two loadable files of software and hardware BUS Power PC Memory Adoption Layer ASC
Hello World in ASC #include "asc.h" main(int argc, char **argv) { printf("Hello World\n"); STREAM_START; // ASC code start // Hardware Variable Declarations HWint in(IN); HWint out(OUT); HWint tmp(TMP); STREAM_LOOP(16); tmp = (in << 1) + 55; out = tmp; STREAM_END; // ASC code end } Software Hello World Hardware
Project Goals Implement the interface between generic module and a CPU bus using ASC Check speed acceleration on some specific function vs. same function in software.
General Block Scheme PPC405 Peripherals OPB bus Generic Block Interface to OPB bus FPGA
S/W & H/W requirements Xilinx Virtex II Pro FPGA with internal PPC405 CPU mounted on evaluation board ASC – A Stream Compiler PamDC: a C++ Library for the Simulation and Generation of Xilinx FPGA Designs
Project milestones Study functions in PamDC library Understand existing sample of similar interface and design of architecture Implementation of the interface for generic module
Project milestones Test of interface with simple existing block Design of more complex module Test of interface with the new module