Automatic generation of hardware/software interfaces
M King, N Dave, Arvind - ACM SIGARCH Computer Architecture News, 2012 - dl.acm.org
M King, N Dave, Arvind
ACM SIGARCH Computer Architecture News, 2012•dl.acm.orgEnabling new applications for mobile devices often requires the use of specialized hardware
to reduce power consumption. Because of time-to-market pressure, current design
methodologies for embedded applications require an early partitioning of the design,
allowing the hardware and software to be developed simultaneously, each adhering to a
rigid interface contract. This approach is problematic for two reasons:(1) a detailed hardware-
software interface is difficult to specify until one is deep into the design process, and (2) it …
to reduce power consumption. Because of time-to-market pressure, current design
methodologies for embedded applications require an early partitioning of the design,
allowing the hardware and software to be developed simultaneously, each adhering to a
rigid interface contract. This approach is problematic for two reasons:(1) a detailed hardware-
software interface is difficult to specify until one is deep into the design process, and (2) it …
Enabling new applications for mobile devices often requires the use of specialized hardware to reduce power consumption. Because of time-to-market pressure, current design methodologies for embedded applications require an early partitioning of the design, allowing the hardware and software to be developed simultaneously, each adhering to a rigid interface contract. This approach is problematic for two reasons: (1) a detailed hardware-software interface is difficult to specify until one is deep into the design process, and (2) it prevents the later migration of functionality across the interface motivated by efficiency concerns or the addition of features. We address this problem using the Bluespec Codesign Language~(BCL) which permits the designer to specify the hardware-software partition in the source code, allowing the compiler to synthesize efficient software and hardware along with transactors for communication between the partitions. The movement of functionality across the hardware-software boundary is accomplished by simply specifying a new partitioning, and since the compiler automatically generates the desired interface specifications, it eliminates yet another error-prone design task. In this paper we present BCL, an extension of a commercially available hardware design language (Bluespec SystemVerilog), a new software compiling scheme, and preliminary results generated using our compiler for various hardware-software decompositions of an Ogg Vorbis audio decoder, and a ray-tracing application.
ACM Digital Library