Template Based FPGA Computing Applied to Bioinformatics

Principal Investigator: William J. Dally

Students: Paul Hartke


Analyzing the ever increasing amount of DNA sequence data is computationally demanding. As a result, traditional analysis methodologies are unable to process them in a timely fashion. Custom computing systems specialized for the particular computation can increase processing efficiency. Dedicated hardware can be created to appropriately match the application's algorithmic requirements. However, such hardware specialization is often too inflexible to be retargeted once the original algorithm has been performed.

We describe an application for our accelerator using a template and an instance. The template describes the application's process structure, communication between processes, and key data structures. The instance specializes the template for a specific application by specifying "C" procedures that define the behavior of the process and by declaring process-specific state. This two-part specification facilitates re-use of code as a single template can be used to describe a range of similar applications (e.g., all applications using dynamic programming). Most application modifications are performed by changing only the instance code. Our approach also facilitates compilation to hardware. The template translates directly to Verilog code that instantiates the processing element (PE) shells and communication channels between the PEs. The instance then compiles into Verilog that defines the internals of each PE.

Template Based FPGA Computing - Concurrent VLSI Architecture Group - Stanford Department of Electrical Engineering