Flexible accelerator design with programmatic interface types
TimeTuesday, July 12th2:45pm - 3pm PDT
Location2012, Level 2
DescriptionWith the growing integration of FPGAs into hyperscale cloud services, the complexity involving in describing interfaces, types, system topologies starts to strain against the limits of conventional approaches of register generators and HLS toolchains. We present BabelBrook, a lightweight framework in python that enables the description of complex interface contracts (on-chip, packetized, in-memory) across a variety of output languages (SV/HLS/tcl/SW-c/etc) with flexible code generation (permitting generation of stylized and maintainable code). By explicitly focusing on type hierarchies and leveraging introspection aspects of the Python language, its possible to describe complex systems with higher-order functions describing types and topologies. BabelBrook has been used in the modelling of complex accelerated storage services, reducing code duplication, increasing system-level design flexibility while preserving first-class control over output code.