ΣSigmaStudio Ask AI Русский Log in

ADAU1452 and SigmaStudio - Loops and Subroutines?

SigmaDSP & SigmaStudio eingber Apr 25, 2016 00:00 3 replies Original on forum ↗
Subscribe
eingber Question
Apr 25, 2016 00:00

I'm planning to implement four instances of an audio chain in the ADAU1452 (along with two ADAU1961 or ADAU1761 codecs). Some aspects of the four audio chains will be identical, like certain FIR filters, and some will be tuned differently in each audio chain (like equalizer settings). It will be running at less than 48kHz.

The ADAU1452 data sheet says that the program length can be up to 8192 words, or 8192 instructions per sample. But running at lower sample rates allows more instructions to execute per sample. For example, at 16 kHz, it can execute up to 18,432 instructions per sample.

My question is, is the SigmaStudio compiler smart enough to organize execution into subroutines and loops to efficiently implement the four instances of the audio chain such that I'll be able to execute >8192 instructions per sample?

Thanks!

Ed

Audio Signal Processors

adau1452

Integrated/Special Purpose A/D Converters

SigmaDSP Audio Processors

adau1761

adau1961

Audio CODECs

Show More

ADIApproved Reply
Apr 25, 2016 00:00

HI Ed:

The simple answer is NO. A SigmaStudio project will run all elements design into it all the time. Currently there is no way to partition the signal flow into different execution modes, For now, my recommendation is to create a single signal flow where users can easily toggle modes by using: index selectable filters, selected muxes (for the parts of the signal flow that are different), override of coefficients....

We can further help if you are open to share more description for what you are trying to do.

Miguel

eingber Reply
Apr 27, 2016 00:00

Thanks, Miguel.

My question is driven by my application and the ADAU1452 data sheet, Table 26 "Maximum Instructions Per Sample, Depending on System Clock and DSP Core Sample Rate", and its note 1 "The instructions per sample in these cases [of System Clock and Sample Rate] exceed the program memory size of 8192 words; therefore to utilize the full number of instructions, subroutines or branches are required in the SigmaStudio program."

Does SigmaStudio actually enable this potential? If so, what do I need to be aware of when creating the schematic?

Here is an illustration of what I'm asking.

Thanks!

Ed

ADIApproved Reply
Apr 27, 2016 00:00

Hi Ed:

Some specific algorithms (ie. biquad filter) make use of subroutines already, this is why the application engineer wrote this on the datasheet however generically speaking SigmaStudio doesn't have a way to tell the linker / assembler that some blocks need to be executed conditinallly or as part of a subroutine. In other words, what the datasheets is trying to advise the user (at least up to now) is to search for algorithms that contain subroutines to save program memory. SigmaStudio does need to catch up with the Hardware and allow conditional signal flow execution as you suggest

Miguel