TinyCore is a DSP core that supports stream-based processing of time domain audio or control data samples including single cycle multiply-adds and multiply-subtracts. With built in support for sample delay memory of varying size and automatically saturating arithmetic instructions, TinyCore makes it possible to implement a bi-quad filter in five instructions.
TinyCore is provided as a reconfigurable RTL model that permits synthesis of FPGA and ASIC gate-level netlists with a wide range of configurable parameters that can be selected for the needs of the application. From low-cost ICs demanding the smallest gate count, through to top-end pro-audio systems, TinyCore can be configured to give the performance you require.
Any combination of these parameters can be used:
• 1 - 32 audio I/O channels
• data path bit width from 16 to 48 bits
• 128 - 8192 instructions per audio sample period
• 1 - 3 data storage RAMs, each containing between 32 and 4096 data words
• optional external memory interface for effects requiring large delays (e.g. sparse FIR filters, reverbs)
• support for encrypted code so that effects can be used securely
TinyCore makes no assumptions on master clock frequency and so is independent of audio sample rate. It is optimised for low power and low gate count through a configurable memory access method and a split multiplier design.
For programming TinyCore, a suite of tools have been developed to achieve rapid prototyping and development and highly efficient implementation of DSP algorithms. TinyTools are centred on a graphical programming environment and the TinyDraw front-end allows the DSP engineer to visually create algorithms in a fast, intuitive manner.
Once designed, the DSP design is then optimised using TinyOpt. This ensures the maximum processing can be squeezed into any given TinyCore, and will allow the minimum specification TinyCore to be used, which ultimately saves gate count. TinyOpt utilises a twenty three pass optimisation to remove all unnecessary instructions to the point where it beats even Oxford Digital’s best assembly level experts by ~10%.
TinyTools then applies its very own assembler, TinyAsm, to create code that is ready to be loaded and executed straight away on TinyCore development hardware within seconds of completing a DSP schematic.
Once the DSP is running on TinyCore, coefficients in the DSP design can be adjusted using TinyGcon. Real-time control ensures easy and precise fine-tunings can be made to the algorithm, with the results immediately observable by listening and/or measurement.
Simulink-2-Tiny allows users of MathWorks Simulink (R) to replace TinyDraw. A blockset of TinyCore instructions is provided, which will produce bit-accurate simulation when run. An extraction tool then takes the DSP algorithm from the Simulink model, which allows the standard TinyTools suite to be run on the design, including the powerful TinyOpt optimising compiler.
- A comprehensive design environment and toolset
- Very fast work-flow through the use of high-level front-end hierarchical Graphical Programming Environment, Core Synthesis and back-end “Tuning” tools
- Very low gate count solutions for FPGA and ASIC
- Very efficient execution (e.g. only 5 instructions for a bi-quad filter with saturating arithmetic)
- Compact code: the high level compiler produces code that on average is 10% smaller than that produced by an expert Assembly Level programmer
- A scalable solution in bit-width, sampling frequency, instructions per sample and number of channels
- Automatic software re-use for different configurations of the TinyCore; no changes are required at the top design level as the compiler produces the required executable code automatically
- Support for encrypted code to allow effects manufacturers (e.g. SRS Labs Inc.) to provide library items that remain private (i.e. it is not possible to push down through the hierarchy to see the internal workings)
- HDL that is easily portable across different FPGAs and ASIC processes and geometries
- Audio DSP Effects library, including BassMaster bass enhancement, WidthMaster stereo widening, and the unique LoudMaster for improving the perceived loudness of the audio without increasing peak level.
- Real-time adjustment of parameters (whilst listening and/or taking measurements) on either evaluation boards or target hardware
- Real-time injection of test signals and ‘scope probe’ type debugging/audio monitoring
- Provision of Test Bench and Test Vectors for TinyCore including the ability to simulate the DSP output from the Graphical Programming front-end. Semiconductor manufacturers can validate their results by simulating the TinyCore including the desired effect pre- and post- synthesis as part of the sign-off process
- Extremely fast Time to Market for both FPGA and ASIC implementations through the use of the TinyTools, including the option Simulink-2-Tiny (e.g. delivery of DSP code for an application together with HDL for a custom core in 6 days)
- Provision of programmability (as opposed to fixed architecture) by use of the TinyCore de-serialises development of algorithms and silicon and allows substantial overlap in the process, thus reducing time to market even further
Block Diagram of the Low-power, low-gate-count, highly-configurable DSP core for audio and control processing