http://www.impulsec.com/application_notes.htm
From the introduction:
QUOTE
The Impulse C compiler allows the use of customized platform- or application-specific hardware components, either through the use of Platform Support Packages or through explicitly referenced hardware primitive functions.
Custom hardware components may be required for a number of reasons. For example, a complex calculation may benefit from the use of a hand-crafted, low-level hardware primitive, or a custom hardware component related to system I/O may be required. Such components can be integrated into Impulse C at the language level using an open interface to the Impulse C compiler, or via a Platform Support Package library reference. Whether your goal is to redefine the division operator, add a new math library function, or provide an entire floating-point library for a new Platform Support Package, it’s possible to customize the C-to-HDL translation and optimization capabilities of Impulse C for your target hardware platform.
This document describes how custom hardware components can be specified and used via the Platform Support Package interface.
Custom hardware components may be required for a number of reasons. For example, a complex calculation may benefit from the use of a hand-crafted, low-level hardware primitive, or a custom hardware component related to system I/O may be required. Such components can be integrated into Impulse C at the language level using an open interface to the Impulse C compiler, or via a Platform Support Package library reference. Whether your goal is to redefine the division operator, add a new math library function, or provide an entire floating-point library for a new Platform Support Package, it’s possible to customize the C-to-HDL translation and optimization capabilities of Impulse C for your target hardware platform.
This document describes how custom hardware components can be specified and used via the Platform Support Package interface.












