This NB3000-based example design demonstrates how to use C as an implementation language for hardware components. The design implements a simple audio equalizer. It takes audio from the board's audio input and plays it back via the board's audio output – either to the speakers or the
Line Out jack. Use the Equalizer via the Nanoboard Interface component's run-time panel to select and achieve different audio effects.
The design style used implements the different processing elements of the design in different blocks. This is not a necessity, multiple C functions can be grouped together in one block. The audio samples have 16-bit dynamic range, this is also the precision used between components. As a result clipping occurs easily when the signal is amplified within a component. Clipping is displayed in the user interface.
The design includes C Code Symbols, as well as SPI_W, WB_I2S, WB_DualMaster, SRAM Controller, Nanoboard Interface, and Configurable Digital IO components.
The associated script project is linked to the FPGA project – through the NanoBoard Interface – to interact with various components to achieve the equalizer function. Some instrument controls are used in this project and linked to some events. The events are handled by the procedures defined in the script project. Two forms are in this project, one for general control of Gain, Echo and Delay. Another one is the equalizer control for various frequencies.
Altium Designer projects included in this download:
- NB3000_Audio_DSP.PrjFpg
- InstrumentScript.PrjScr