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

Assembly language

SigmaDSP & SigmaStudio ZipZap May 17, 2011 00:00 8 replies Original on forum ↗
Subscribe
ZipZap Question
May 17, 2011 00:00

I saw in the FAQ that C and assembly are not officially supported but is there any unofficial info available for assembly? This is how I program DSPs and I am fine if there is no official support but docs on the assembly language and any pointers to assemblers (official ADI or non-official third party/open source) would be great. There are things I want to do and it appears that SigmaStudio does not support them but I'm sure the chip can do them so being able to program in assembly would be a great help to me.

assembly

SigmaDSP

MagicRuB Reply
May 19, 2011 00:00

The assembly instruction set is intentionally not pupblished. To use the SigmaDSPs you must use SigmaStudio. That tool is rediculously easy to use, have you tried it yet?

ZipZap Reply
May 20, 2011 00:00

Yes, I have looked at the tool and it appears to remove me too far from what I need to do. For example, I need to initialize two variables on load of a program then only update the values under program control. This is very easy on any DSP in assembly but I see no way to do it in SigmaStudio. It really is a shame as one of the SigmaDSPs has exactly what I need (minus OTP but can live with that) but it puts me too far away from the hardware to make it do what I need.

MagicRuB Reply
May 21, 2011 00:00

I need to initialize two variables on load of a program then only update the values under program control.

This is done with the "DC Source" block. In SigmaStudio you set this to your bootup value and then change in run-time via a uP or via MUXes from state machines, GPIO (MP) pins and timers. The SigmaStudio environment feel restricting but I have been able to figure out a way to do pretty much anything I've ever wanted to do in code. Everythign is easier when you hook up an external uProcessor via I2C/SPI, are you doing that now or are you doing a stand alone system?

ZipZap Reply
May 21, 2011 00:00

Plan is for it to be stand alone, no other uP in the system.

I found the DC block you mentioned but it only has an output, no input so how does one update the value? If this works, 99% of the blocks I use will come from the "Basic DSP" (multipliers, adders, etc) and I just need to read the value at one point in the algorithm, do calculations based on it, the sample from and ADC, etc. then write an updated value back to use on the next sample.

A few additional blocks like a "Register" block (there must be internal gp registers as well as memory in the chip) that can be read and written to, a "Trig" block for SIN and COS, table look up is fine, linear interpolation is fine for most of my uses. Oh, found "look up tables" in the s/w, they may do.

MagicRuB Reply
May 22, 2011 00:00

99% of the blocks I use will come from the "Basic DSP" (multipliers, adders, etc)

What exactly is it that you're making? This is an audio DSP and there are a ton of audio related algorithms (like peak hold and limiters an filters and compressors ect). If you're looking for micro managment of regsiters with super flexible discontinuous data processing then maybe the SigmaDSP isn't the best part for the job.

In a stand alone system here is what I suggest:

Configure a MUX to route multiple DC blocks with pre-determined static values

Use a timer, zero crossing, conditional, zero detect, state machine ect ect modules to trigger the mux to switch between different DC values. You can then use the feedback module to loop your stuff back to use in your algorithm. All the tools are there, you can do it!

ZipZap Reply
May 23, 2011 00:00

I am doing an audio app which is why I was looking at the Sigma line as it has the features in the price range I am targeting but I'm going to probably look at another that will give me the low level access I need. I'm used to doing things as I need in the way I feel is best, not using a block where I really don't know what is in it. Thanks for responding, I do appreciate the time you took to reply.

ADIApproved Reply
May 25, 2011 00:00

Hi ZipZap,

Like MagicRub mentioned, SigmaStudio intentionally creates a layer of abstraction between the user and the code so that the system can get up and running quickly and development times can be drastically reduced. The support structure is based around the concept that the user will be working full-time in the GUI and not dealing with line-level assembly code. The basic DSP blocks do give some low-level support for creating new concepts (I routinely use these to prototype new ideas to the software team) but in some cases they are not the most elegant or efficient tools to complete the job.

If you have any concrete examples of functionality you'd like to integrate into your system, please share them and we can try to help find a way to implement them using pre-existing cells in the library. If you want a function that doesn't exist but would be useful to a broad base of customers, we can create that cell and integrate it in the next release of SigmaStudio.

If you really want to do line-level coding and have absolute control over every aspect of the DSP, then SigmaDSP is probably not the right tool for the job.

Please keep us posted if you have any thoughts or questions.

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin