Tidal

 


VFX Article, Appendix B

B. The ADSP-2105

The Analog Devices ADSP-2105 is the engine of the VFX processor. It is curious how a company named Analog Devices, a niche manufacturer of analog signal processing and mixed signal IC's became a leader in digital Signal processing. It is actually an example of how a healthy company grows with its market and evolves to serve it. Analog Devices was always very strong in analog microelectronics and hybrids, developing many of the industry standards that are now second sourced by other manufacturers. As the market changed and microprocessors became ubiquitous, they developed the interface IC'S for use with them. Microprocessors didn't challenge their core market but they expanded it. The development of DSP IC's did present a challenge to their market since their strength was Analog Signal processing. Strictly Analog signal processing is, in many cases as in the VFX, being replaced by DSP. Analog Devices thus moved into the DSP market starting with MAC's and then DSP microprocessors (ADSP-2100) and finally, the DSP microcomputers such as the ADSP-2105. It says a lot for the marketing skills, engineering competence and management of Analog Devices that they have become leaders in the DSP field in such a short time. Of course TI has the largest market share, they invented the market, and they are a vast electronics company with tremendous resources. TI, however, must be feeling the pinch of Analog Device's foray into DSP and certainly the users benefit. The Analog Devices ADSP-2105 DSP microcomputer is arguably the best new DSP IC since TI invented DSP in 1982. It offers some very exciting design features that equal many more expensive DSP's.

First of all the 2105 is a second generation DSP microcomputer. It has significant architectural improvements over earlier generations. The 2105 has built in data memory (.5k words x 16 bits) and program memory (1k words x 24 bits) so it is really a DSP microcomputer and not a microprocessor. Both of these memory banks are implemented in fast static RAM. This allows the program memory to be loaded using the resident boot memory loader from a slow PROM or EPROM (250 nsec access) and keeps high speed data transfer inside the chip to reduce EMI and board layout requirements. The program and data memory can be easily expanded off chip when the internal data memory is not sufficient for the algorithms as we have done with the VFX processor. The chip has resources built in to simplify external memory hardware interfacing including separate selects for Program Memory, Data Memory and Boot memory and a programmable wait state generator to allow slow external memories.

The 2105 incorporates several peripheral devices and their associated interrupts. There is a built in 16 bit timer with programmable prescaler and interrupts. A high speed synchronous serial interface (SPORT1) which can interface to u-law and A-law CODECs using hardware companding as well as digital audio oriented D/A and A/D converters. Additionally, the serial port can serve to connect multiple 2105's together in parallel processing applications. The ADSP-2101 has a second identical serial port SPORT0.

The ADSP-2101 family, of which the 2105 is a member, is not only very high performance by virtue of its on chip resources but by it instruction set as well. With a 100 nsec cycle time, multiple operations per cycle and zero-overhead looping the numerical performance of the chip is very respectable. In addition, the 1.0 micron CMOS processing keeps the power dissipation of the 2105 to less than 1 Watt with a powerdown mode reducing that further to a mere 80 mW.

The ADSP-2105 has a large family tree that has several upward and downward compatible parts. The 2105 is the least expensive member of the tree with a flat unit price up to 100,000 pieces. The 2105 is almost a loss leader and allows individual hobbyists and price sensitive consumer electronics to implement 2105 designs. The 2105 has several more powerful brothers that are upwardly compatible with it. The ADSP-2101 DSP microcomputer has twice the on chip memory of the 2105 and a second serial interface. The 2106 is the same as the 2105 except it has masked ROM instead of RAM Program Data Memory. The 2102 is the same as the 2101 except it has masked ROM instead of RAM Program Data Memory. There are additional chips in the family with built in A/D converters and D/A converters.

The ADSP-2105 incorporates three execution units, 1) Barrel shifter, 2) Arithmetic Logic Unit (ALU) and 3) Multiplier Accumulator (MAC). These three units are optimized to their specific function and are therefore very fast, completing any instruction in one cycle. Access to the three execution units is made via various registers associated with each execution unit. For example, the ALU has the following 16 bit registers: AX0, AX1, AY0, AY1, AR and AF The MAC: MX0, MX1, MY0, MY1, MR0, MR1, MR2 and MF The Shifter: SB, SI, SE, SR1, SR0 In addition the 2105 incorporates two Data Address Generators (DAGs), one of which can perform bit reversing which is required by certain FFT algorithms. One DAG is used for accessing Program Memory Data (PMD) and the other for Data Memory Data (DMD). The DAG utilize a set of 3 registers to control indirect addressing and circular buffers. These are the Index registers (I0-I7), the Modify registers (M0-M7) and the Length (L0-L7) registers. For example, by setting up the registers so that I0 has the starting address, M0 has a value of 1 and L0 is zero, blocks of data can be moved from one buffer to another with very little programming.

DATA MOVE PROGRAM
START: I0=buffer#1; {Address of buffer#1 in DMD}
  M0=1; {Post modify value}
  I4=buffer#2; {Address of buffer#2 in PMD}
  M0=1; {Post modify value}
  CNTR=2048; {Number of words in buffer}
  DO MOVE_BUFFER UNTIL CE; {Do loop}
  AR=PM(I4,M4);  
  DM(I0,M0)=AR;  
  MOV_BUFFER: {End of the loop}


The L registers are used to handle circular buffers whereby the DAG resets the Index register to the start of the buffer on the next instruction after it reaches the end of the buffer For any microcomputer, including a DSP, to be successful it must have readily available low cost software tools. Analog Devices has supplied the ADSP-2105 with quality tools at a reasonable price. The assembly language is algebraic and straight forward.
For example to add two 16 bit numbers:

AY0=1200; {Store one number in AY0 register)}
AX0=200; {Store the second number in AX) register}
AR=AX0+AY0; {The result is stored in register AR}

There is a powerful PC based software simulator that allows software debugging without an expensive In Circuit Emulator (ICE), which is available of course. The 2105 has a capable interrupt handling capability. The interrupts can be individually masked or enabled, edge triggered or level sensitive. Interrupts are vectored to the following program memory locations: IRQ2 0004h SPORT0(Transmit) 0008h SPORT0(Receive) 000Ch SPORT1(Transmit) 0010h SPORT2(Receive) 0014h TIMER 0018h A second mirror set of Data registers can be enabled to facilitate fast context switching during interrupt servicing.

The VFX processor was developed using the Analog Devices ADSP-2101 EZ-Lab Kit. The Analog Devices EZ-Lab kit includes an EZ-LAB demo board, an ADSP-2101/5 family Assembler, Linker and other miscellaneous development software, including the essential Simulator. With this package you can design and debug software for certain applications with excellent success at minimal cost. Of course an In Circuit Emulator (ICE) speed up the development process albeit at a much higher price, the EZ-Lab kit sells for a little less than $500 dollars, an emulator is over $2000 dollars. For people with limited capital resources and small to medium complexity algorithms, the kit is great.


Next Chapter

Previous Chapter

VFX Table of Contents