sigmaDSP and similar devices

Started by rickman October 24, 2010
robert bristow-johnson  <rbj@audioimagination.com> wrote:

>i couldn't find the programmer's reference manual (or whatever they >call it at Spin). the only instructions the data sheet mentions is >LOG and EXP. i usually don't think it's worth much real estate on >silicon to implement log() and exp() at such a low level. i have yet >to use a log() or exp() at full-bandwidth audio (well, maybe for >limiting/compression, i guess i *did* use it once on every sample >without skipping).
This may be a silly question, but does it not have a multiplier? It's possible to implement multiplication by a series of log, addition, and exponent operations. But, nobody's done it that way for 40 years, except maybe in a Galois field, in which case it's only been 20 years.
>> It does have conditional execution >> (skip) as well, and can load programs from an external I2C EEPROM.
>does it have "jump" or "branch" instructions that can be conditionally >skipped over? if not, i can't see how to split up the computational >burden of a complex algorithm among many samples to spread the work >out.
There's an old result from Computer Science that you can implement any program without having a branch or jump instruction, so long as you have conditional assignments. The first audio DSP's I built in the late 70's always did it this way. The goal was utilization of the multiplier, and a branch breaks the flow of the pipeline, so it was really best to have straight sequential code. Steve
On Oct 25, 10:13=A0pm, robert bristow-johnson
<r...@audioimagination.com> wrote:
> On Oct 25, 11:47=A0am, emeb <ebromba...@gmail.com> wrote: > > > > > On Oct 24, 10:11=A0am, rickman <gnu...@gmail.com> wrote: > > > > I have been watching the sigmaDSP from ADI and the similar part from > > > TI. =A0These parts seem ideal for a lot of applications but the probl=
em
> > > I have is with the tools. =A0They don't let you write your own code. > > > You can only string together modules from their library. =A0They are > > > mostly filters and similar functions and I don't see how to do a lot > > > of very basic stuff that any other processor can do. > > > > I've contacted both TI and ADI support and they both say their tools > > > still don't support user written code and I don't see where that is > > > much of an issue with them. =A0Is this =A0because the parts are hard =
to
> > > program or because the parts are limited and they would be hard to us=
e
> > > to implement control functions for example. > > > > I wrote about this a couple of years ago and someone said I was > > > mistaken and they did support assembly language programming by the > > > user. =A0Anyone know anything about that? =A0Am I asking support the =
wrong
> > > questions? > > > > Rick > > > Have you looked at the Spin Semiconductor FV-1? > > >http://www.spinsemi.com/ > > hadn't heard of this chip, nor of the company.
Founded by Keith Barr who started Alesis and just passed away a few months back. He did the chip design on the FV-1 apparently. It bears a striking resemblance to some of the older parts from Alesis / Wavefront.
> > While aimed primarily at inexpensive audio effects, it does have some > > of the features you've mentioned, and the development environment is > > free. It's an odd beast, with 24-bit precision codec and ALU, 128-step > > stored program, 32k of 'floating point' buffer memory and a 3 channel > > low-speed ADC for user input. > > i couldn't find the programmer's reference manual (or whatever they > call it at Spin). =A0the only instructions the data sheet mentions is > LOG and EXP. =A0i usually don't think it's worth much real estate on > silicon to implement log() and exp() at such a low level. =A0i have yet > to use a log() or exp() at full-bandwidth audio (well, maybe for > limiting/compression, i guess i *did* use it once on every sample > without skipping).
All the instructions are described here: http://www.spinsemi.com/knowledge_base/inst_syntax.html The instruction set is very different from most DSPs - a lot of common filtering and interpolation functions are compressed down into single instructions. You can implement a 1st-order IIR in two instructions. There's special hardware for doing LFOs that can be accessed sort of like coprocessors. There is a true multiplier, but you can see that it's buried inside more complex processing paths.
> > It does have conditional execution > > (skip) as well, and can load programs from an external I2C EEPROM. > > does it have "jump" or "branch" instructions that can be conditionally > skipped over? =A0if not, i can't see how to split up the computational > burden of a complex algorithm among many samples to spread the work > out.
Looks like all it does is test conditions and skip a preset number of instructions ahead - no skipping back. Processing always starts at location 0 when a new sample is available from the codec. As noted earlier this is not a general-purpose DSP - strictly geared to a specific kind of audio processing. Reverbs, simple delays, filtering, etc., but very concise at doing those tasks. Eric
On Oct 25, 12:40&#2013266080;am, Andrew Reilly <areilly...@bigpond.net.au> wrote:
> On Sun, 24 Oct 2010 20:23:55 -0700, rickman wrote: > > I guess I don't see how they could not have conditional branching then. > > The ones that I've seen have a single block of program memory that is > entered at the "top" on the sample interrupt, and have an implicit "wait > for interrupt" at the bottom. &#2013266080;So you get a stored program and read
and
> write data and coefficient memory. &#2013266080;You can multiply, add and store,
and
> from that you can build filters of various sorts. &#2013266080;You could probably > make something that looked like decisions by processing "both branches" > and combining the results with a 1,0 or 0,1 mixer, but you don't get to > modify the program counter (or even see it.) &#2013266080;No loops: no need if
the
> program memory can hold as many instructions as can be executed in one > sample period. > > No conditional instructions and limited program memory size pretty much > rule out more complicated algorithms that use multi-rate or buffered > block processing. > > There is quite a bit that *can* be done within the model, though.
&#2013266080;For
> example (your example), I can't think of any particular reason why you > couldn't modulate the frequency of a sinusoid carrier that you were > generating.
It sounds like this part just won't do what I want in general. The idea is to replace the CODEC with something that can also do general DSP and this really isn't that part. Thanks anyway... Rick
On Oct 26, 2:39&#2013266080;am, emeb <ebromba...@gmail.com> wrote:
> On Oct 25, 10:13&#2013266080;pm, robert bristow-johnson > > > > <r...@audioimagination.com> wrote: > > On Oct 25, 11:47&#2013266080;am, emeb <ebromba...@gmail.com> wrote: > > > > On Oct 24, 10:11&#2013266080;am, rickman <gnu...@gmail.com> wrote: > > > > > I have been watching the sigmaDSP from ADI and the similar part from > > > > TI. &#2013266080;These parts seem ideal for a lot of applications but the
problem
> > > > I have is with the tools. &#2013266080;They don't let you write your own
code.
> > > > You can only string together modules from their library. &#2013266080;They
are
> > > > mostly filters and similar functions and I don't see how to do a lot > > > > of very basic stuff that any other processor can do. > > > > > I've contacted both TI and ADI support and they both say their tools > > > > still don't support user written code and I don't see where that is > > > > much of an issue with them. &#2013266080;Is this &#2013266080;because the
parts are hard to
> > > > program or because the parts are limited and they would be hard to use > > > > to implement control functions for example. > > > > > I wrote about this a couple of years ago and someone said I was > > > > mistaken and they did support assembly language programming by the > > > > user. &#2013266080;Anyone know anything about that? &#2013266080;Am I asking
support the wrong
> > > > questions? > > > > > Rick > > > > Have you looked at the Spin Semiconductor FV-1? > > > >http://www.spinsemi.com/ > > > hadn't heard of this chip, nor of the company. > > Founded by Keith Barr who started Alesis and just passed away a few > months back. He did the chip design on the FV-1 apparently. It bears a > striking resemblance to some of the older parts from Alesis / > Wavefront. > > > > While aimed primarily at inexpensive audio effects, it does have some > > > of the features you've mentioned, and the development environment is > > > free. It's an odd beast, with 24-bit precision codec and ALU, 128-step > > > stored program, 32k of 'floating point' buffer memory and a 3 channel > > > low-speed ADC for user input. > > > i couldn't find the programmer's reference manual (or whatever they > > call it at Spin). &#2013266080;the only instructions the data sheet mentions is > > LOG and EXP. &#2013266080;i usually don't think it's worth much real estate on > > silicon to implement log() and exp() at such a low level. &#2013266080;i have
yet
> > to use a log() or exp() at full-bandwidth audio (well, maybe for > > limiting/compression, i guess i *did* use it once on every sample > > without skipping). > > All the instructions are described here: > > http://www.spinsemi.com/knowledge_base/inst_syntax.html > > The instruction set is very different from most DSPs - a lot of common > filtering and interpolation functions are compressed down into single > instructions. You can implement a 1st-order IIR in two instructions. > There's special hardware for doing LFOs that can be accessed sort of > like coprocessors. There is a true multiplier, but you can see that > it's buried inside more complex processing paths. > > > > It does have conditional execution > > > (skip) as well, and can load programs from an external I2C EEPROM. > > > does it have "jump" or "branch" instructions that can be conditionally > > skipped over? &#2013266080;if not, i can't see how to split up the
computational
> > burden of a complex algorithm among many samples to spread the work > > out. > > Looks like all it does is test conditions and skip a preset number of > instructions ahead - no skipping back. Processing always starts at > location 0 when a new sample is available from the codec. > > As noted earlier this is not a general-purpose DSP - strictly geared > to a specific kind of audio processing. Reverbs, simple delays, > filtering, etc., but very concise at doing those tasks. > > Eric
It also has a monster footprint. My goal is to replace a 6x7 mm CODEC with a CODEC/DSP. This part is four times that size. They even call it a Reverb IC in the data sheet. Thanks for all the responses. I think I can bury this one and just continue to do the DSP in the FPGA. Rick
http://sites.google.com/site/nextaudiodsp/


Hi Rick:

ADI and with the SigmaDSP do have a way for experience assembly code programmers to
code their own algorithm. 

Let me know if you want to know more about the capabilities.

Miguel

On Tuesday, October 26, 2010 11:11:18 AM UTC-4, rickman wrote:
> On Oct 26, 2:39&#2013266080;am, emeb <ebromba...@gmail.com> wrote: > > On Oct 25, 10:13&#2013266080;pm, robert bristow-johnson > > > > > > > > <r...@audioimagination.com> wrote: > > > On Oct 25, 11:47&#2013266080;am, emeb <ebromba...@gmail.com> wrote: > > > > > > On Oct 24, 10:11&#2013266080;am, rickman <gnu...@gmail.com> wrote: > > > > > > > I have been watching the sigmaDSP from ADI and the similar part from > > > > > TI. &#2013266080;These parts seem ideal for a lot of applications but the
problem
> > > > > I have is with the tools. &#2013266080;They don't let you write your own
code.
> > > > > You can only string together modules from their library. &#2013266080;They
are
> > > > > mostly filters and similar functions and I don't see how to do a lot > > > > > of very basic stuff that any other processor can do. > > > > > > > I've contacted both TI and ADI support and they both say their tools > > > > > still don't support user written code and I don't see where that is > > > > > much of an issue with them. &#2013266080;Is this &#2013266080;because the
parts are hard to
> > > > > program or because the parts are limited and they would be hard to use > > > > > to implement control functions for example. > > > > > > > I wrote about this a couple of years ago and someone said I was > > > > > mistaken and they did support assembly language programming by the > > > > > user. &#2013266080;Anyone know anything about that? &#2013266080;Am I
asking support the wrong
> > > > > questions? > > > > > > > Rick > > > > > > Have you looked at the Spin Semiconductor FV-1? > > > > > >http://www.spinsemi.com/ > > > > > hadn't heard of this chip, nor of the company. > > > > Founded by Keith Barr who started Alesis and just passed away a few > > months back. He did the chip design on the FV-1 apparently. It bears a > > striking resemblance to some of the older parts from Alesis / > > Wavefront. > > > > > > While aimed primarily at inexpensive audio effects, it does have some > > > > of the features you've mentioned, and the development environment is > > > > free. It's an odd beast, with 24-bit precision codec and ALU, 128-step > > > > stored program, 32k of 'floating point' buffer memory and a 3 channel > > > > low-speed ADC for user input. > > > > > i couldn't find the programmer's reference manual (or whatever they > > > call it at Spin). &#2013266080;the only instructions the data sheet mentions
is
> > > LOG and EXP. &#2013266080;i usually don't think it's worth much real estate
on
> > > silicon to implement log() and exp() at such a low level. &#2013266080;i have
yet
> > > to use a log() or exp() at full-bandwidth audio (well, maybe for > > > limiting/compression, i guess i *did* use it once on every sample > > > without skipping). > > > > All the instructions are described here: > > > > http://www.spinsemi.com/knowledge_base/inst_syntax.html > > > > The instruction set is very different from most DSPs - a lot of common > > filtering and interpolation functions are compressed down into single > > instructions. You can implement a 1st-order IIR in two instructions. > > There's special hardware for doing LFOs that can be accessed sort of > > like coprocessors. There is a true multiplier, but you can see that > > it's buried inside more complex processing paths. > > > > > > It does have conditional execution > > > > (skip) as well, and can load programs from an external I2C EEPROM. > > > > > does it have "jump" or "branch" instructions that can be conditionally > > > skipped over? &#2013266080;if not, i can't see how to split up the
computational
> > > burden of a complex algorithm among many samples to spread the work > > > out. > > > > Looks like all it does is test conditions and skip a preset number of > > instructions ahead - no skipping back. Processing always starts at > > location 0 when a new sample is available from the codec. > > > > As noted earlier this is not a general-purpose DSP - strictly geared > > to a specific kind of audio processing. Reverbs, simple delays, > > filtering, etc., but very concise at doing those tasks. > > > > Eric > > It also has a monster footprint. My goal is to replace a 6x7 mm CODEC > with a CODEC/DSP. This part is four times that size. They even call > it a Reverb IC in the data sheet. > > Thanks for all the responses. I think I can bury this one and just > continue to do the DSP in the FPGA. > > Rick
On Wed, 12 Sep 2012 19:31:55 -0700, chavez.miguel wrote:

> Hi Rick: > > ADI and with the SigmaDSP do have a way for experience assembly code > programmers to code their own algorithm. > > Let me know if you want to know more about the capabilities. > > Miguel > > On Tuesday, October 26, 2010 11:11:18 AM UTC-4, rickman wrote:
If you had a real newsreader it would have been more obvious that you're resurrecting a two year old thread, and it would have required a bit of effort to top-post. Even Google Groups lets you know what the date is, and lets you bottom-post correctly, yes? -- My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com
On 9/12/2012 10:31 PM, chavez.miguel@gmail.com wrote:
> Hi Rick: > > ADI and with the SigmaDSP do have a way for experience assembly code programmers
to code their own algorithm.
> > Let me know if you want to know more about the capabilities. > > Miguel
Hi Miguel, Yes, I would be very interested. I don't have an immediate need for this, but I would like to stay current with these devices and tools. When I inquired about this I am pretty sure I got the equivalent of a cold shoulder from both ADI and TI regarding their respective parts. Seems these parts are for million unit type customers and they don't want to support smaller volume users. Also, have the parts improved over the last two years? I might be interested in a very low power device. Rick Historical info below:
> On Tuesday, October 26, 2010 11:11:18 AM UTC-4, rickman wrote: >> On Oct 26, 2:39 am, emeb<ebromba...@gmail.com> wrote: >>> On Oct 25, 10:13 pm, robert bristow-johnson >>> >>> >>> >>> <r...@audioimagination.com> wrote: >>>> On Oct 25, 11:47 am, emeb<ebromba...@gmail.com> wrote: >>> >>>>> On Oct 24, 10:11 am, rickman<gnu...@gmail.com> wrote: >>> >>>>>> I have been watching the sigmaDSP from ADI and the similar part from >>>>>> TI. These parts seem ideal for a lot of applications but the problem >>>>>> I have is with the tools. They don't let you write your own code. >>>>>> You can only string together modules from their library. They are >>>>>> mostly filters and similar functions and I don't see how to do a lot >>>>>> of very basic stuff that any other processor can do. >>> >>>>>> I've contacted both TI and ADI support and they both say their tools >>>>>> still don't support user written code and I don't see where that is >>>>>> much of an issue with them. Is this because the parts are hard to >>>>>> program or because the parts are limited and they would be hard to use >>>>>> to implement control functions for example. >>> >>>>>> I wrote about this a couple of years ago and someone said I was >>>>>> mistaken and they did support assembly language programming by the >>>>>> user. Anyone know anything about that? Am I asking support the wrong >>>>>> questions? >>> >>>>>> Rick >>> >>>>> Have you looked at the Spin Semiconductor FV-1? >>> >>>>> http://www.spinsemi.com/ >>> >>>> hadn't heard of this chip, nor of the company. >>> >>> Founded by Keith Barr who started Alesis and just passed away a few >>> months back. He did the chip design on the FV-1 apparently. It bears a >>> striking resemblance to some of the older parts from Alesis / >>> Wavefront. >>> >>>>> While aimed primarily at inexpensive audio effects, it does have some >>>>> of the features you've mentioned, and the development environment is >>>>> free. It's an odd beast, with 24-bit precision codec and ALU, 128-step >>>>> stored program, 32k of 'floating point' buffer memory and a 3 channel >>>>> low-speed ADC for user input. >>> >>>> i couldn't find the programmer's reference manual (or whatever they >>>> call it at Spin). the only instructions the data sheet mentions is >>>> LOG and EXP. i usually don't think it's worth much real estate on >>>> silicon to implement log() and exp() at such a low level. i have yet >>>> to use a log() or exp() at full-bandwidth audio (well, maybe for >>>> limiting/compression, i guess i *did* use it once on every sample >>>> without skipping). >>> >>> All the instructions are described here: >>> >>> http://www.spinsemi.com/knowledge_base/inst_syntax.html >>> >>> The instruction set is very different from most DSPs - a lot of common >>> filtering and interpolation functions are compressed down into single >>> instructions. You can implement a 1st-order IIR in two instructions. >>> There's special hardware for doing LFOs that can be accessed sort of >>> like coprocessors. There is a true multiplier, but you can see that >>> it's buried inside more complex processing paths. >>> >>>>> It does have conditional execution >>>>> (skip) as well, and can load programs from an external I2C EEPROM. >>> >>>> does it have "jump" or "branch" instructions that can be conditionally >>>> skipped over? if not, i can't see how to split up the computational >>>> burden of a complex algorithm among many samples to spread the work >>>> out. >>> >>> Looks like all it does is test conditions and skip a preset number of >>> instructions ahead - no skipping back. Processing always starts at >>> location 0 when a new sample is available from the codec. >>> >>> As noted earlier this is not a general-purpose DSP - strictly geared >>> to a specific kind of audio processing. Reverbs, simple delays, >>> filtering, etc., but very concise at doing those tasks. >>> >>> Eric >> >> It also has a monster footprint. My goal is to replace a 6x7 mm CODEC >> with a CODEC/DSP. This part is four times that size. They even call >> it a Reverb IC in the data sheet. >> >> Thanks for all the responses. I think I can bury this one and just >> continue to do the DSP in the FPGA. >> >> Rick >
>>When I inquired about this I am pretty sure I got the equivalent of a >>cold shoulder from both ADI and TI regarding their respective parts. >>Seems these parts are for million unit type customers and they don't >>want to support smaller volume users.
>>Also, have the parts improved over the last two years? I might be >>interested in a very low power device.
Hi again: Yes the parts and tools have improved vastly over the years. AND There are other (non-SigmaDSP parts that have been released for VERY low power applications). All I can say about companies wanting to focus on bigger customers, wouldn't you want the same if you had a business and employees to maintain? However I can tell that ADI is very much interested on ALL their customers so much that they host and promote a generally available forum: http://ez.analog.com/welcome SigmaDSP parts have also qualified consultants that could help you guide you if you have specific needs for your applications such as www.base10labs.com Regards Miguel
On Sunday, February 2, 2014 1:19:41 AM UTC-5, chavez. miguel wrote:
> >>When I inquired about this I am pretty sure I got the equivalent of a > > >>cold shoulder from both ADI and TI regarding their respective parts. > > >>Seems these parts are for million unit type customers and they don't > > >>want to support smaller volume users. > > > > >>Also, have the parts improved over the last two years? I might be > > >>interested in a very low power device. > > > > Hi again: > > > > Yes the parts and tools have improved vastly over the years. AND There are other
(non-SigmaDSP parts that have been released for VERY low power applications).
> > All I can say about companies wanting to focus on bigger customers, wouldn't you
want the same if you had a business and employees to maintain? However I can tell that ADI is very much interested on ALL their customers so much that they host and promote a generally available forum: http://ez.analog.com/welcome
> > SigmaDSP parts have also qualified consultants that could help you guide you if
you have specific needs for your applications such as www.base10labs.com
> > > > Regards > > > > Miguel
A good overview of these parts can be found in a recent BDTI article http://www.bdti.com/InsideDSP/2014/02/05/ADI Bob