SlideShare a Scribd company logo
1 of 52
http://www.dncltech.com
Abouts :
DNCL Technologies Electronic design service and embedded system development, PCB
design, CPLD design & FPGA design and manufacturing service.
DNCL Technologies offers custom electronic design, embedded system design product
development and pcb design,FPGA based design & CPLD design,Fireware & device
drivers development, RTOS –Vxworks,Kernal programming ,Application Development
and android development .we design all types of electronic circuit or producing according
to custom specification at affordable costs while maintaining highest quality product.
Contact us for your custom electronic product development and manufacturing.
ARCHITECTURE OF TMS320C3X
INTRODUCTION
• The TMS320C3X series of digital signal processors (DSPs) are high performance
CMOS 32-bit floating point devices in the TMS320 family of single-chip DSPs.
• The C3X devices integrate both system control and math-intensive functions on a
single controller. This integration allows fast, easy data movement and high-speed
numeric processing performance.
• Extensive internal bussing and a powerful DSP instruction set provide the devices
with the speed and flexibility to execute up to 60million floating-point operations
per second(MFLOPS) and 30 million fixed-point instructions per second(MIPS).
• The devices also feature a high degree of on-chip parallelism that allows user to
perform up to 11 operations in a single instruction.
AN OVERVIEW OF TMS320C3X
• The C3X family consists of three members: C30, C31, and C32.
• These processors can perform parallel multiply and arithmetic logic unit (ALU)
operations on integer or floating-point data in a single cycle.
http://www.dncltech.com
http://www.dncltech.com
• These processors consist of the following
General-purpose register file, program cache, dedicated auxiliary register
arithmetic units(ARAU),internal dual-access memories, direct memory
access channel(DMA) supporting concurrent I/O, large address space,
multiprocessor interface, internal and external generated wait states,
external interface ports, timers, serial ports and multiple-interrupt
structure
Device Name Frequency cycle
time
(MHz/ns)
Memory(words)
On-chip Off-
chip
Peripherals
C30(5v) 27/75
33/60
40/50
50/40
RAM=2K
16M*32
ROM=4K
8K*32
Cache=64
Serial port=2
DMA channel=1
Timers=2
C31(5V) 27/75
33/60
40/50
50/40
60/33
RAM=2K
16M*32
ROM is boot
loaded
Cache=64
Serial port=1
DMA channel=1
Timers=2
L31(3.3V 33/60
40/50
RAM=2K
16M*32
ROM is boot
loaded
Cache=64
Serial port=1
DMA channel=1
Timers=2
C32(5V) 40/50
50/40
60/33
RAM=512K
16M*32/
ROM is Boot
16/8
Loaded
Cache=64
Serial port=1
DMA channel=2
Timers=2
INTERNAL ARCHITECTURE
Major Blocks:
1. Central Processing Unit
2. Memory Unit(RAM, ROM, Cache)
http://www.dncltech.com
http://www.dncltech.com
3. Peripherals (Serial ports, Timers, etc) and
4. DMA Controller
CENTRAL PROCESSING UNIT(CPU)
• C3X devices have a registered based CPU architecture.
• CPU has following units
1. Internal buses(CPU1,CPU2,REG1,REG2)
2. Floating-point/Integer multiplier
3. Arithmetic logic unit(ALU)
4. 32-bit Barrel shifter
5. Auxiliary register arithmetic units(ARAUs)
6. CPU register file
CPU INTERNAL BUS(CPU1,CPU2,REG1,REG2)
• Consists of 4buses
• Data bus DDATA carries data to CPU through CPU1 AND CPU2
• CPU1 ND CPU2 bus can carry two data memory operands to the multiplier, ALU
and register file for every machine cycle.
• Internal to CPU are two buses REG1 and REG2, these buses can carry two data
values from the register file to multiply and ALU for every machine cycle.
FLOATING-POINT/INTEGER MULTIPLIER
• Performs multiplication on 24-bit integer and 32-bit floating pt values in single
instruction.
• Operations at speed upto 33ns per instruction cycle.
• For higher speed, parallel instructions can be used.
http://www.dncltech.com
http://www.dncltech.com
• For floating pt multiplication, i/p =>32-bits ; o/p=>40 -bits
• For integer multiplication, i/p=>24-bit; o/p=>32-bits
ARITHEMETIC LOGIC UNIT (ALU) AND BARREL SHIFTER
• Performs single cycle arithmetic and logical operations.
http://www.dncltech.com
CPU ARCHITECTURE
http://www.dncltech.com
• It performs operation on 32-bit integer, 32-bit logical ad 40-bit floating pt data.
• It performs integer and floating pt conversion in a single cycle.
• The results of ALU are always maintained at 32-bit integer (or) 40-bit floating pt
formats.
• The barrel shifter is used to shift the operands upto 32-bits left or right in a single
cycle.
AUXILIARY REGISTER ARITHEMETIC UNIT (ARAU)
• The C3X family processors consists of two ARAUs(ARAU0,ARAU2)
• These two units can generate two addresses in a single cycle.
• The ARAUs operate in parallel with the multiplier and ALU.
• It is used for indirect addressing mode.
• Supports address displacement and address displacement can be indicated in the
assembly code using displacement field or two index register(IR0&IR1)
• It supports circular and bit-reversed addressing modes.
TMS320C3X ARCHITECTURE
MEMORY ORGANIZATION:
• The total memory space of a C3X processor is 16 million (16M) 32-bit words.
• This space contains Program, data and I/O spaces. The C3X processors have
on-chip RAM, ROM and cache memories.
• The memory organization and internal buses are shown in the diagram.
• In C3X, there are two RAM blocks, Block0 and Block1, (each of 1Kx32 bits
in C30 and C31 and each of 256x32 bits in C32) and a ROM block (4K x 32
bits only in C30 and boot loader in C31 and C32).
• The RAM and ROM blocks are capable of supporting two CPU accesses (dual
access memory) in a single cycle.
• A 64 X 32 bit instruction cache is present to store often-repeated sections of
code. This will reduce the number of off-chip accesses.
http://www.dncltech.com
http://www.dncltech.com
MEMORY INTERNAL BUSES:
• The high performance of C3X processors is due to the internal buses and
parallelism.
• The memory buses are
 Program bus
 Data bus
 DMA bus
• The separate program bus consists of program address (PADDR) bus and
program data (PDATA) bus.
• There are two data address buses (DADDR1 and DADDR2) and one data
(DDATA) bus.
• The DMA bus contains DMA address (DMAADDR) bus and a DMA data
(DMADATA) bus.
http://www.dncltech.com
http://www.dncltech.com
• These buses allow parallel instruction code fetch from program memory, two data
accesses and DMA access and electronics product design companies in
Bangalore
• These buses connect on-chip memory, off-chip memory and on-chip peripherals.
• All address buses are 24 bits and data buses are 32 bits in size.
• The PC is connected to PADDR bus and the IR is connected to PDATA bus.
These buses can fetch a single instruction word for every machine cycle.
• The two data address buses are connected to the AR unit, which generates the
data memory addresses and the data bus is connected to the CPU over CPU1 and
CPU2 buses, which carry the data to the CPU.
• The DMA controller is connected with a 24-bit address bus (DMAADDR) and a
32-bit data bus (DMADATA). These buses allow the DMA to perform memory
access in parallel with the memory accesses occurring from the data and program
buses.
CACHE MEMORY
• 64x32 bit instruction cache
• storing the repeatedly accessed code reduces the off-chip memory access
• cache frees external buses which can be used by DMA or other system elements
• Data reads and writes bypasses the cache
• the instruction fetches from the on chip memory do not modify the cache
CACHE CONTROL BITS
• In the status register there are 3 control bits that manages the cache
• all the 64 words present in the cache has a flag bit P
• At reset cache is cleared and zero is written to these 3 control bits
1. Cache Clear Bit(CC)
‘1’-clears the 64 words & P flags of cache
http://www.dncltech.com
http://www.dncltech.com
2. Cache Enable Bit (CE)
‘1’-enables cache & works according to cache algorithm
‘0’- Disables cache and there will not be any updates or
modifications of the cache entries
2. Cache Freeze (CF)
‘1’- cache is frozen and its operation is determined along
with CE bit
CE CF FUNCTION
0 0 Cache not enabled
0 1 Cache not enabled
1 0 Cache enabled and not
frozen
1 1 Cache enabled and frozen
When cache is frozen and it is enabled, no modification of
the state of cache is allowed, but the instruction code fetch
from the cache is allowed.
CACHE ARCHITECTURE
• The Cache RAM is divided into 2 segments each containing 32 words
• There are segment start address registers of 19 bit for each segment
• Cache architecture consists of LRU stack which determines least recently
used segment of the 2.
• Each time the segment is accessed its segment number (0 or 1) is removed
and pushed to the top of the stack
• the number at the top is the most recently used and the number at the
bottom of the stack is the least recently used
http://www.dncltech.com
http://www.dncltech.com
CACHE ALGORITHM
http://www.dncltech.com
http://www.dncltech.com
• When CPU requests an instruction word from external memory,
the cache algorithm checks if the word is already present in the
cache
• the 24-bit instruction word address is split into 19MSBs that
determine the segment and 5 LSBs that define the address of
instr.word within that segment
• This algorithm compares 19MSBs of the instruction address with
the 2 SSA registers
• If match occurs, then the address has been previously accessed
and so the word is accessed again and then the P flag is set
• If match doesn’t occur, the least recently used segment is used for
writing the instruction word.
• All the P flags in that segment is cleared and the SSA register is
loaded with the 19 MSBs of the instruction address
• Instruction word is fetched from the external memory, copied into
the cache and the corresponding P flag is set.
• The segment number now accessed is pushed to the top of the
stack. Thus the other segment number will come to the bottom of
the stack.
PERIPHERALS:
The C3X processor peripherals includes
• Timers
• Serial Ports
• DMA(Direct Memory Access) Controllers
http://www.dncltech.com
Block Diagram of C3X Peripherals
http://www.dncltech.com
The Peripheral bus is used to communicate with other peripherals. The peripheral bus
consists of 24-bit address bus and 32-bit data bus.
PERIPHERALS/PROCESSOR C30 C31 C32
Timer 2 2 2
Serial Port 2 1 1
DMA Controllers 1 1 2
TIMERS:
• The C3X timers are general-purpose 32-bit timer/event counters
• The timer operates in two signaling modes
 Internal clocking
 External clocking
• With internal clock, we can use the timer to signal external devices such as A/D
converter, D/A converter, etc.
• With external clock, timer can count the external events and interrupts the CPU
after a specified number of events.
• Each timer has an I/O pin that can be configured as an
 Input pin
http://www.dncltech.com
http://www.dncltech.com
 Output pin
 General-purpose I/O pin
• The three memory mapped registers are used by timers. They are
 Global control register(GCR)
 Period register(PR)
 Counter register(CR)
• Global Control Register
 Determines the operating mode of the timer
 Monitors timer status
 Controls the function of I/O pin of the timer
• The period register specifies the timer’s signaling frequency
• The counter register contains the current value of the incrementing counter
• For the required mode of timer operation, the control word for the Global Control
Register, and for the required frequency, the count value of the period register are
stored in the respective memory-mapped address locations
TIMER OPERATION:
• The timer can operate both for internal and external clock signals.
• Depending upon the timer output frequency, the divide ratio of the input clock is
loaded into the timer period register.
• For each input clock pulse, the timer counter (32-bits) increments.
• The increment operation can be programmed for leading edge or the falling edge
of the input clock.
• The counter register (32-bits) holds the current count value of the counter.
• The period register content and the counter register content are compared in the
comparator.
http://www.dncltech.com
http://www.dncltech.com
• If the values are equal, an internal interrupt is generated, the pulse generator
generates a pulse, the counter is reset and starts incrementing and this action is
repeated.
• The pulse generator can generate two types of external clock signals, the pulse or
the clock signal.
TIMER GLOBAL CONTROL REGISTER:
• The timer global control register is a 32-bit register that contains the global and
the port control bits for the timer.
• The bits 3-0 are the port control bits; bits 11-6 are the timer global control bits.
• At reset, all the bits are set to 0 except the DATIN bit.
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
SERIAL PORT:
• The C30 and C32 devices have two serial ports. These serial ports are
independent bidirectional serial ports and are identical.
• The C31 device has only one serial port, which is also a bidirectional port.
• Each serial port has eight control registers, which are memory mapped, and can
be programmed by the user for the desired modes of operation.
• The control registers include
 A Global Control Register
 Two control registers for serial I/O pins
 Three transmit/receive timer registers
 One data transmit register
 One data receive register
• The serial ports can be programmed to transfer 8, 16, 24 and 32 bits of data words
simultaneously in both directions.
• The clock signal needed for the serial port can be generated in DSP itself by
programming the timer, or it can be externally supplied.
• The serial port can transmit data words in continuous mode or burst mode
TRANSMIT SECTION:
• In the transmit section of the serial port, the data transmit register (DXR) will
hold the 32-bit data to be transmitted and it is copied to transmit shift register
(XSR), whenever the XSR is empty.
• Once XSR starts shifting the data bits to the DX pin, the next data word is copied
to the DXR register.
• Once the DXR content is completely copied to XSR register, the transmit ready
(XRDY) bit is set in the serial port global control register.
• This will initiate a serial port transmit interrupt (XINT) and this signal indicates
that the DXR is ready to accept new data.
• The transmit frame synchronization (FSX) signal will be generated at the
beginning of each frame and this initiates the data transfer.
• All the transmit section operations are synchronized by the transmit clock signal
(CLKX).
http://www.dncltech.com
http://www.dncltech.com
RECEIVE SECTION:
• At the receive section of the serial port, the data from the DR pin is shifted into
receive shift register (RSR).
• The content of RSR is copied to the data receive register (DRR) and from this
register it is read by the CPU.
• Once the RSR content is completely copied to DRR, the receive ready bit
(RRDY) in the serial port global control register is set.
• This initiates the serial port receive interrupt (RINT).
• Similar to transmit section, the receive frame synchronization (FSR) of the
receiver section initiates the receive operation and receiver clock signal CLKR is
used to synchronize all the receiver sections.
DMA CONTROLLER:
• The DMA controller is a programmable peripheral that transfers blocks of data to
any location in the memory map without interfering with CPU operation.
• The ’C3x can interface to slow, external memories and peripherals without
reducing throughput to the CPU. The ’C3x DMA controller features are:
http://www.dncltech.com
http://www.dncltech.com
 Transfers to and from anywhere in the processor’s memory map. For
example, transfers can be made to and from on-chip memory, off-chip
memory, and on-chip serial ports.
 One DMA channel for memory-to-memory transfers in ‘C30 and ‘C31.
Two DMA channels for memory-to-memory transfers in ‘C32.
 Concurrent CPU and DMA controller operation with DMA transfers at the
same rate as the CPU (supported by separate internal DMA address and
data buses).
 Source and destination-address registers with auto increment/decrement.
 Synchronization of data transfers via external and internal interrupts.
DMA FUNCTIONAL DESCRIPTION:
• The DMA controller supports one (‘C30 and ‘C31) or two (‘C32) DMA channels
that perform transfers to and from anywhere in the ‘C3x memory map.
• Each DMA channel is controlled by four registers that are mapped in the ‘C3x
peripheral address space.
• The DMA controller has dedicated on-chip address and data buses. All accesses
made by the DMA channels are arbitrated in the DMA controller and take place
over these dedicated buses.
• The DMA channels transfer data in a sequential time-slice fashion, rather than
simultaneously, because they share common buses.
• The DMA channels can run constantly or can be triggered by external (INT3–0)
or internal (on-chip timers and serial ports) interrupts.
DMA BASIC OPERATION
• If a block of data is to be transferred from one region in memory to another region
in memory, the following sequence is performed:
DMA Registers Initialization
1) The source-address register of a DMA channel is loaded with the address of the
memory location to read from.
2) The destination-address register of the same DMA channel is loaded with the
address of the memory location to write to.
3) The transfer counter is loaded with the number of words to be transferred.
4) The DMA channel control register is loaded with the appropriate modes to
synchronize the DMA controller reads and writes with interrupts.
DMA Start
5) The DMA controller is started through the DMA START field in the DMA
channel control register.
http://www.dncltech.com
http://www.dncltech.com
Word Transfers
6) The DMA channel reads a word from the source-address register and writes it
to a temporary register within the DMA channel.
7) After a read by the DMA channel, the source-address register is incremented,
decremented, or unchanged depending on the INCSRC or DECSRC bit fields of DMA
channel control register.
8) After the read operation completes, the DMA channel writes the temporary
register value to the destination-address pointed to by the destination address register.
9) After the destination-address has been fetched, the transfer-counter register is
decremented and the destination-address register is incremented, decremented, or
unchanged, depending on the INCDST or DECDST bit fields of the DMA channel
control register.
10) During every data write, the transfer counter is decremented. The block
transfer terminates when the transfer counter reaches zero and the write of the last
transfer is completed. The DMA channel sets the transfer-counter interrupt (TCINT) flag
in the DMA channel control register.
• After the completion of a block transfer, the DMA controller can be programmed
to do several things:
 Stop until reprogrammed (TC = 1)
 Continue transferring data (TC = 0)
 Generate an interrupt to signal the CPU that the block transfer is complete
(TCINT = 1)
• The DMA can be stopped by setting the START bits to 00, 01, or 10. When the
DMA is restarted (START = 11), it completes any pending transfer.
DMA REGISTERS:
• Each DMA channel has four registers designated as follows:
http://www.dncltech.com
http://www.dncltech.com
 Control register: contains the status and mode information about the
associated DMA channel
 Source-address register: contains the memory address of data to be read
 Destination-address register: contains the memory address where data is
written
 Transfer-counter register: contains the block size to move
• After reset, the control register, the transfer counter, and the auxiliary transfer
counter registers are set to 0s and the other registers are undefined.
ASSEMBLY LANGUAGE INSTRUCTIONS:
• There are 113 instructions organized into six groups
1. Load and Store
2. two-operand arithmetic/logical
3. three-operand arithmetic/logical
4. Program control
5. Interlocked operations
6. Parallel operations
The general syntax of assembly instructions is as follows:
1. three operand instructions
mnemonic src2,src1,dst
 source operands- register and indirect addressing modes
 destination operand-register addressing mode
2. other instructions
mnemonic src,dst
 source operand- general addressing mode
 destination operand- register addressing mode
i) Load and Store Instructions
• ‘C3X processors support 13 load and store instructions
http://www.dncltech.com
http://www.dncltech.com
• memory to register(load) and register to memory (store)
• certain instructions can manipulate data on system stack
ii) Two-operand Instructions
• There are 35 two-operand arithmetic and logical instructions
• the source operand can be a memory word, a register or a part of the instruction
• destination operand should always be a register
iii) Three-operand Instructions
• there are 17 three-operand instructions
• single cycle execution. Destination should always be a register.
iv) Program- Control Instructions
• There are 17 instructions which affect the program flow
• repeat instructions, both standard and delayed branches, call and return
instructions
v) Interlocked –operation Instructions
• There are 5 instructions which support interlocked operations.
• These instructions are used for multiprocessor communication through
external signals (XF0 and XF1) to allow for powerful synchronisation
mechanisms.
• Source-direct and indirect addressing modes, destination-register only.
vi) Parallel-operation instructions
http://www.dncltech.com
http://www.dncltech.com
• instructions can occur in pairs that will be executed in parallel
• each instruction in a pair is entered as a separate source statement
• the instruction in a pair should be written followed by ( ll)
Load Instructions
• The load instructions can load integer and floating point values. It’s possible to
load separately the floating-point exponent and mantissa.
• The load operation can be performed both in interlocked and parallel operation
modes.
Instruction Description
LDP Load Data page pointer
LDI Load integer
LDF Load floating point value
LDM Load floating point mantissa
LDE Load floating point exponent
LDII Load integer, interlocked
LDFI Load floating point value, interlocked
LDF ll LDF Load floating point value, parallel
LDI ll LDI Load integer, parallel
Store instructions
• the operands can be stored both in parallel and interlocked operations.
• the source operand can be accessed only with register addressing mode and the
destination operand can be accessed with general addressing modes.
Instruction Description
STI Store integer operand
STF Store floating point operand
STIl Store integer operand, interlocked
STFl Store floating point value, interlocked
http://www.dncltech.com
http://www.dncltech.com
STI ll STI Store integer operand parallel
STF ll STF Store floating point operand parallel
Addition/Subtraction Instructions
• two operand as well as three operand instructions are available.
• it is also possible to add and the carry bit and subtract the borrow bit with the
operands in some instructions.
Instruction Description
ADDC Add integers with carry
ADDF Add floating point operands
ADDI Add integer operands
ADDC3 add two integer source operands with carry
ADDF3 Add two floating point source operands
ADDI3 add two integer source operands
SUBB Subtract integer with borrow
SUBF Subtract floating point operands
SUBI Subtract integer operands
SUBRB Subtract reverse integer with borrow
SUBRF Subtract reverse floating point value
SUBRI Subtract reverse integer value
SUBB3 Subtract two source floating point operands
with borrow
SUBF3 Subtract two floating point source operands
SUBI3 Subtract two integer source operands
Multiply instructions:
• in two operand instructions, the product of the destination and sorce operands is
sored in the destination operand.
• in three operand instructions, the product of the 2 source operands is stored in the
destination operand.
http://www.dncltech.com
http://www.dncltech.com
Instruction Description
MPYF Multiply floating point operands
MPYI Multiply integer operands
MPYF3 Multiply two floating point source operands
MPYI3 Multiply two integer source operands
Logical Instructions:
• the two operand and three operand logical OR, AND and XOR operations can be
performed.
• the complement operation can be separately performed for the operands or it can
be performed along with the AND operation.
Instruction Description
AND Logical AND operation
ANDN Logical AND between dest and
complement of the source operand
NOT Logical complement operation
OR Logical OR operation
XOR Logical exclusive OR operation
AND3 Logical AND between two source operands
ANDN3 Logical AND operation between source1
operand and the complement of the source2
operand
OR3 Logical-OR between two source operands
XOR3 Logical exclusive-OR between two source
operands
Conditional instructions:
• there are 20 conditions that can be specified in the condition field.
• conditions include signed and unsigned comparisons, comparisons to ‘0’, and
comparisons based on the status of individual flags of status register.
• the load, branch, call, return and trap can be conditional instructions.
http://www.dncltech.com
http://www.dncltech.com
Condition Description
Unconditional Compares
U Unconditional
Unsigned Compares
LO Lower than
LS Lower than or same as
HI Higher than
HS Higher than or same as
EQ Equal to
NE Not equal to
Signed compares
LT Less than
LE Less than or equal to
GT Greater than
GE Greater than or equal to
EQ Equal to
NE Not equal to
Compare to Zero
Z Zero
NZ Not zero
P Positive
N Negative
NN Nonnegative
Compare to condition flags
NN Nonnegative
N Negative
NZ Nonzero
Z Zero
NV No overflow
V overflow
NUF No underflow
UF underflow
NC No carry
C carry
NLUF No latched floating-point underflow
NLV No latched overflow
LV Latched overflow
LUF Latched floating-point underflow
http://www.dncltech.com
http://www.dncltech.com
ZUF Zero or floating point underflow
Shift and Rotate Instructions:
• right as well as left shift and rotate operations can be performed
• 2 kinds of shift- arithmetic and logical
• Syntax: 2-operand- mnemonic count, dst
3-operand- mnemonic count, src, dst
• Count>0, left shift operation is performed. the lower order bits which are
shifted in are zero-filled and the higher order bits are shifted out through
the carry bit. same for both arithmetic and logical shifts
• Count<0, right shift operation is done. In arithmetic shift, the higher order
bits are sign extended and the lower order bits are shifted out through the
carry bit.
• in logical shift, the higher order bits are zero filled and the lower order bits
are shifted out through the carry bit.
• only 7 LSBs of the count operand is considered.
• Syntax of rotate instruction: mnemonic dst
• rotate right- LSB bit is transferred into the MSB bit. Rotate left is vice-
versa. In both the cases, the shifted bit is copied into the carry bit.
• Rotate through carry bit is also possible.
Instruction Description
ASH Arithmetic shift
ASH3 Arithmetic shit-3 operand
LSH Logical shift
LSH3 Logical shift-3 operand
ROL Rotate left
ROLC Rotate left through carry
ROR Rotate right
http://www.dncltech.com
http://www.dncltech.com
RORC Rotate right through carry
Program Control Instructions:
• there 17 instructions in this group.
• certain program control instructions support both conditional and unconditional
operations.
• Branch and call:
 the branch operation can be conditional, unconditional, delayed and
decrement branch instructions.
 Normal branch operation happens only after 4 machine cycles.
 in delayed branch, the instruction is delayed by 3 machine cycles and is
executed only in the 4th
machine cycle. the effect is a single cycle branch.
 the syntax of branch/ call instruction is mnemonic src.
• Repeat:
 two repeat instructions to support zero-over-head looping.
RPTB- repeat a block of code
RPTS- repeat a single instruction
 these 2 instructions are 4-cycle instructions, the subsequent executions of
the loop have no overhead.
 there are 3 memory mapped registers
• RS- Repeat start address register => holds the address of
the first instruction of the block code to be repeated.
• RE-Repeat end address register => holds the address of the
last instruction
• RC-Repeat counter register => contains the value one less
than the number of times the block to be repeated.
http://www.dncltech.com
http://www.dncltech.com
 there are 2 flag bits RM bit (specifies whether the processor is
working in repeat mode) and S bit (necessary to describe the single
instruction repeat operation, but can't be programmed)
Low-Power Control Instructions:
• it consists of four instructions that can be used for low-power modes.
• the IDLE instruction stops the CPU operations until an interrupt is received.
• The IDLE2 instruction removes the functional clock input from the internal
devices.
• In LOPOWER instruction the processor continues the execution of instructions at
the reduced clock rate.
• For MAXSPEED, it exits the LOPOWER mode and starts execution with full
speed.
Instruction Description
http://www.dncltech.com
Instruction Description
BR Standard Unconditional Branch
BRD Delayed unconditional Branch
Bcond Standard conditional branch
BcondD Delayed conditional branch
DBcond Decrement and standard conditional branch
DBcondD Decrement and standard conditional branch
CALL Call subroutine unconditionally
CALL cond Call subroutine conditionally
RET cond Return conditionally from subroutine
RETI cond Return conditionally from interrupt
http://www.dncltech.com
IDLE Idle until interrupt
IDLE2 Low-power idle
LOPOWER Divide the clock by 16
MAXSPEED Restore clock to regular speed
ADDRESSING MODES OF TMS320C3X:
The ’C3x supports five groups of powerful addressing modes. Six types of
addressing that allow data access from memory, registers, and the instruction word can be
used within the groups.
ADDRESSING TYPES:
You can access data from memory, registers, and the instruction word by using five types
of addressing:
Register addressing. A CPU register contains the operand.
http://www.dncltech.com
http://www.dncltech.com
Direct addressing. The data address is formed by concatenating the eight least
significant bits (LSBs) of the data-page (DP) register and the 16 LSBs of the instruction.
Indirect addressing. An auxiliary register contains the address of the operand.
Immediate addressing. The operand is a 16-bit or 24-bit immediate value.
PC-relative addressing. A 16-bit or 24-bit displacement to the program counters (PC).
Two specialized modes are available for use in filters, FFTs, and DSP algorithms:
Circular addressing. An auxiliary register is incremented/decremented with regards to a
circular buffer boundary.
Bit-reverse addressing. An auxiliary register is transferred to its bit reversed
representation that contains the address of the operand.
Register Addressing
In register addressing, a CPU register contains the operand.
Example:
ADDI R3, R4
Direct Addressing
In direct addressing, the data address is formed by the concatenation of the
eight LSBs of the data-page pointer (DP) with the 16 LSBs of the instruction word (expr).
This results in 256 pages (64K words per page), allowing you to access a
large address space without requiring a change of the page pointer.
The syntax and operation for direct addressing are:
Syntax: @expr
Operation: address = DP concatenated with expr
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing
Indirect addressing specifies the address of an operand in memory through the
contents of an auxiliary register, optional displacements, and index registers.
Only the 24 LSBs of the auxiliary registers and index registers are used in
indirect addressing. The auxiliary register arithmetic units (ARAUs) perform the
unsigned arithmetic on these lower 24 bits. The upper eight bits are unmodified.
http://www.dncltech.com
http://www.dncltech.com
The flexibility of indirect addressing is possible because the ARAUs on the
’C3x modify auxiliary registers in parallel with operations within the main CPU.
Indirect addressing is specified by a 5-bit field in the instruction word, referred
to as the mod field (shown in Table 6–2). A displacement is either an explicit unsigned 8-
bit integer contained in the instruction word or an implicit displacement of 1.
Two index registers, IR0 and IR1, can also be used in indirect addressing,
enabling the use of 24-bit indirect displacement. In some cases, an addressing scheme
using circular or bit-reversed addressing is optional.
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing With Predisplacement Add
The address of the operand to fetch is the sum of an auxiliary register (ARn) and
the displacement (disp). The displacement is either an 8-bit unsigned integer contained in
the instruction word or an implied value of 1.
Operation: operand address = ARn + disp
Assembler Syntax: *+ARn(disp)
Modification Field: 00000
Indirect Addressing With Predisplacement Subtract
The address of the operand to fetch is the contents of an auxiliary register
(ARn) minus the displacement (disp). The displacement is either an 8-bit unsigned
integer contained in the instruction word or an implied value of 1.
Operation: operand address = ARn – disp
Assembler Syntax: *–ARn(disp)
Modification Field: 00001
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing With Predisplacement Add and Modify
The address of the operand to fetch is the sum of an auxiliary register (ARn)
and the displacement (disp). The displacement is either an 8-bit unsigned integer
contained in the instruction word or an implied value of 1. After the data is fetched, the
auxiliary register is updated with the address generated.
Operation: operand address = ARn + disp
ARn = ARn + disp
Assembler Syntax: *++ARn (disp)
Modification Field: 00010
Indirect Addressing With Predisplacement Subtract and Modify
The address of the operand to fetch is the contents of an auxiliary register (ARn) minus
the displacement (disp). The displacement is either an 8-bit unsigned integer contained in
the instruction word or an implied value of 1.
After the data is fetched, the auxiliary register is updated with the address generated.
Operation: operand address = ARn – disp
ARn = ARn – disp
Assembler Syntax: *-- ARn(disp)
Modification Field: 00011
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing With Postdisplacement Add and Modify
The address of the operand to fetch is the contents of an auxiliary register
(ARn). After the operand is fetched, the displacement (disp) is added to the auxiliary
register. The displacement is either an 8-bit unsigned integer contained in the instruction
word or an implied value of 1.
Operation: operand address = ARn
ARn = ARn + disp
Assembler Syntax: *ARn ++(disp)
Modification Field: 00100
Indirect Addressing With Postdisplacement Subtract and Modify
The address of the operand to fetch is the contents of an auxiliary register (ARn). After
the operand is fetched, the displacement (disp) is subtracted from the auxiliary register.
The displacement is either an 8-bit unsigned integer contained in the instruction word or
an implied value of 1.
Operation: operand address = ARn
ARn = ARn – disp
Assembler Syntax: *ARn --(disp)
Modification Field: 00101
Indirect Addressing With Postdisplacement Add and Circular Modify
http://www.dncltech.com
http://www.dncltech.com
The address of the operand to fetch is the contents of an auxiliary register
(ARn). After the operand is fetched, the displacement (disp) is added to the contents of
the auxiliary register using circular addressing. This result is used to update the auxiliary
register. The displacement is either an 8-bit unsigned integer contained in the instruction
word or an implied value of 1.
Operation: operand address = ARn
ARn = circ(ARn +disp)
Assembler Syntax: *ARn ++(disp)%
Modification Field: 00110
Indirect Addressing With Postdisplacement Subtract and Circular Modify
The address of the operand to fetch is the contents of an auxiliary register
(ARn). After the operand is fetched, the displacement (disp) is subtracted from the
contents of the auxiliary register using circular addressing. This result is used to update
the auxiliary register. The displacement is either an 8-bit unsigned integer contained in
the instruction word or an implied value of 1.
Operation: operand address = ARn
ARn = circ(ARn – disp)
Assembler Syntax: *ARn --(disp)%
Modification Field: 00111
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing With Preindex Add
The address of the operand to fetch is the sum of an auxiliary register (ARn)
and an index register (IR0 or IR1).
Operation: operand address = ARn + IRm
Assembler Syntax: *+ARn(IRm)
Modification Field: 01000 if m = 0
10000 if m = 1
Indirect Addressing With Preindex Subtract
The address of the operand to fetch is the difference of an auxiliary register
(ARn) and an index register (IR0 or IR1).
Operation: operand address = ARn – IRm
Assembler Syntax: *–ARn(IRm)
Modification Field: 01001 if m = 0
10001 if m = 1
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing With Preindex Add and Modify
The address of the operand to fetch is the sum of an auxiliary register (ARn)
and an index register (IR0 or IR1). After the data is fetched, the auxiliary register is
updated with the generated address.
Operation: operand address = ARn + IRm
ARn = ARn + IRm
Assembler Syntax: *++ARn(IRm)
Modification Field: 01010 if m = 0
10010 if m = 1
Indirect Addressing With Preindex Subtract and Modify
The address of the operand to fetch is the difference between an auxiliary
register (ARn) and an index register (IR0 or IR1). The resulting address becomes the new
contents of the auxiliary register.
Operation: operand address = ARn – IRm
ARn = ARn – IRm
Assembler Syntax: *--ARn(IRm)
Modification Field: 01011 if m = 0
10011 if m = 1
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing With Postindex Add and Modify
The address of the operand to fetch is the contents of an auxiliary register (ARn).
After the operand is fetched, the index register (IR0 or IR1) is added to the auxiliary
register.
Operation: operand address = ARn
ARn = ARn + IRm
Assembler Syntax: *ARn ++(IRm)
Modification Field: 01100 if m = 0
10100 if m = 1
Indirect Addressing With Postindex Subtract and Modify
The address of the operand to fetch is the contents of an auxiliary register (ARn). After
the operand is fetched, the index register (IR0 or IR1) is subtracted from the auxiliary
register.
Operation: operand address = ARn
ARn = ARn – IRm
Assembler Syntax: *ARn --(IRm)
Modification Field: 01101 if m = 0
10101 if m = 1
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing With Postindex Add and Circular Modify
The address of the operand to fetch is the contents of an auxiliary register
(ARn). After the operand is fetched, the index register (IR0 or IR1) is added to the
auxiliary register. This value is evaluated using circular addressing and replaces the
contents of the auxiliary register.
Operation: operand address = ARn
ARn = circ(ARn + IRm)
Assembler Syntax: *ARn ++(IRm)%
Modification Field: 01110 if m = 0
10110 if m = 1
Indirect Addressing With Postindex Subtract and Circular Modify
The address of the operand to fetch is the contents of an auxiliary register
(ARn). After the operand is fetched, the index register (IR0 or IR1) is subtracted from the
auxiliary register. This result is evaluated using circular addressing and replaces the
contents of the auxiliary register.
Operation: operand address = ARn
ARn = circ(ARn – IRm)
Assembler Syntax: *ARn –– (IRm)%
Modification Field: 01111 if m = 0
10111 if m = 1
http://www.dncltech.com
http://www.dncltech.com
Indirect Addressing With Postindex Add and Bit-Reversed Modify
The address of the operand to fetch is the contents of an auxiliary register (ARn). After
the operand is fetched, the index register (IR0) is added to the auxiliary register. This
addition is performed with a reverse-carry propagation and can be used to yield a bit-
reversed (B) address. This value replaces the contents of the auxiliary register.
Operation: operand address = ARn
ARn = B(ARn + IR0)
Assembler Syntax: *ARn++(IR0)B
Modification Field: 11001
Immediate Addressing
In immediate addressing, the operand is a 16-bit (short) or 24-bit (long)
immediate value contained in the 16 or 24 LSBs of the instruction word (expr).
Depending on the data types assumed for the instruction, the short-immediate operand
can be a 2s-complement integer, an unsigned integer, or a floating-point number.
This is the syntax for this mode:
Syntax: expr
http://www.dncltech.com
http://www.dncltech.com
In long-immediate addressing, the operand is a 24-bit unsigned immediate value
contained in the 24 LSBs of the instruction word (expr).
This is the syntaxfor this mode:
Syntax: expr
PC-Relative Addressing
Program counter (PC)-relative addressing is used for branching. It adds the
contents of the 16 or 24 LSBs of the instruction word to the PC register. The assembler
takes the src (a label or address) specified by the user and generates a displacement. If the
branch is a standard branch, this displacement is equal to [label – (instruction
address+1)]. If the branch is a delayed branch, this displacement is equal to [label –
(instruction address+3)].
The displacement is stored as a 16-bit or 24-bit signed integer in the LSBs of
the instruction word. The displacement is added to the PC during the pipeline decode
phase. Notice that because the PC is incremented by 1 in the fetch phase, the
displacement is added to this incremented PC value.
Syntax: expr (src)
http://www.dncltech.com
http://www.dncltech.com
The 24-bit addressing mode encodes the program-control instructions (for
example, BR, BRD, CALL, RPTB, and RPTBD). Depending on the instruction, the new
PC value is derived by adding a 24-bit signed value in the instruction word with the
present PC value.
Bit 24 determines the type of branch (D = 0 for a standard branch or D = 1
for a delayed branch).
Bit-Reversed Addressing
http://www.dncltech.com
http://www.dncltech.com
The ’C3x can implement fast Fourier transforms (FFT) with bit-reversed
addressing.
Whenever data in increasing sequence order is transformed by an FFT, the
resulting data is presented in bit-reversed order. To recover this data in the correct order,
certain memory locations must be swapped. By using the bit-reversed addressing mode,
swapping data is unnecessary.
The data is accessed by the CPU in bit-reversed order rather than sequentially. For
correct bit-reversed access, the base address of bit-reversed access, the base address must
be located on a boundary given by the size of the FFT table.
Similar to circular addressing, the base address of bit-reversed addressing must
follow this criteria.
1. Base address must be aligned to a K-bit boundary (that is, the K LSBs of the
starting address of the buffer/table must be 0) as follows:
where:
R = length of table/buffer
K = number of 0s in the LSBs of the
buffer/table starting address
2. Size of the buffer/table must be less than or equal to 64K (16 bits)
The CPU bit-reversed operation can be illustrated by assuming an FFT table of size
2n. When real and imaginary data are stored in separate arrays, the n LSBs of the base
address must be 0, and IR0 must be equal to 2n–1 (half of the FFT size).
When real and imaginary data are stored in consecutive memory locations (Real0,
Imaginary0, Real1, Imaginary1, Real2, Imaginary2, etc.), the n+1 LSBs of the base
address must be 0, and IR0 must be equal to 2n (FFT size).
For CPU bit-reversed addressing, one auxiliary register points to the physical
location of data. Adding IR0 (in bit-reversed addressing) to this auxiliary register
performs a reverse-carry propagation. IR0 is treated as an unsigned integer.
To illustrate bit-reversed addressing, assume 8-bit auxiliary registers. Let AR2 contain
the value 0110 0000 (96). This is the base address of the data in memory assuming a 16-
entry table. Let IR0 contain the value 0000 1000 (8).
Example 6–26 shows a sequence of modifications of AR2 and the resulting values of
AR2.
http://www.dncltech.com
http://www.dncltech.com
Circular Addressing
http://www.dncltech.com
http://www.dncltech.com
Many DSP algorithms, such as convolution and correlation, require a circular
buffer in memory. In convolution and correlation, the circular buffer acts as a sliding
window that contains the most recent data to process.
As new data is brought in, the new data overwrites the oldest data by increasing the
pointer to the data through the buffer in counter-clockwise fashion. When the pointer
accesses the end of the buffer, the device sets the pointer to the beginning of the buffer.
For example, Figure 1(a) shows a circular buffer that holds six values. Figure
1(b) shows how this buffer is implemented in the ’C3x memory space.
Figure 2. shows this buffer after writing three values.
Figure 3.shows this buffer after writing eight values.
http://www.dncltech.com
http://www.dncltech.com
To implement a circular buffer in the ’C3x, the following criteria must be satisfied
(more than one circular buffer can be implemented on the ’C3x as long as the size of the
buffers are identical):
1. Specify the size of the circular buffer (R) by storing the length of the buffer in
the block-size register (BK). The size of the buffer must be less than or equal to 64K (16
bits).
2. Align the start of the buffer to a K-bit boundary (that is, the K LSBs of the
starting address of the circular buffer must be 0) by satisfying the following formula:
where:
R = length of circular buffer
K = number of 0s in the LSBs of the circular
buffer starting address
http://www.dncltech.com
http://www.dncltech.com
In circular addressing, index refers to the K LSBs (from the K-bit boundary criteria) of
the auxiliary register selected, and step is the quantity being added to or subtracted from
the auxiliary register. Follow these two rules when you use circular addressing:
1. The step used must be less than or equal to the block size.
The step size is treated as an unsigned integer. If an index register (IR) is used as a
step increment or decrement, it is also treated as an unsigned integer.
2. The first time the circular queue is addressed, the auxiliary register must be
pointing to an element in the circular queue.
3. The algorithm for circular addressing is as follows:
If 0 ≤ index + step < BK: index = index + step.
Else if index + step ≥ BK: index = index + step – BK.
Else if index + step < 0: index = index + step + BK.
Example 1. shows circular addressing operation. Assuming that all ARs are four bits, let
AR0 = 0000 and BK = 0110 (block size of 6), shows a sequence of modifications and the
resulting value of AR0. It also shows how the pointer steps through the circular queue
with a variety of step sizes (both incrementing and decrementing).
Circular Addressing
*AR0++(5)% ; AR0 = 0 (0 value)
*AR0++(2)% ; AR0 = 5 (1st value)
*AR0– –(3)% ; AR0 = 1 (2nd value)
*AR0++(6)% ; AR0 = 4 (3rd value)
*AR0– –% ; AR0 = 4 (4th value)
*AR0 ; AR0 = 3 (5th value)
http://www.dncltech.com
http://www.dncltech.com
http://www.dncltech.com

More Related Content

What's hot

ARM Cortex-M3 Training
ARM Cortex-M3 TrainingARM Cortex-M3 Training
ARM Cortex-M3 TrainingRaghav Nayak
 
Microprocess Microconroller mcq 1000+
Microprocess Microconroller mcq 1000+Microprocess Microconroller mcq 1000+
Microprocess Microconroller mcq 1000+Kumaran K
 
Introduction to Interfacing Technique
Introduction to Interfacing TechniqueIntroduction to Interfacing Technique
Introduction to Interfacing TechniqueMabeth MaRiyah Ramos
 
Embedded systems notes
Embedded systems notesEmbedded systems notes
Embedded systems notesShikha Sharma
 
Motorola Mc68040 Microprocessor :::
Motorola Mc68040 Microprocessor :::Motorola Mc68040 Microprocessor :::
Motorola Mc68040 Microprocessor :::Ariful Islam
 
Microprocessor Motorola 68020
Microprocessor Motorola 68020Microprocessor Motorola 68020
Microprocessor Motorola 68020Aniket Raj
 
Microprocessorandmicroconrollermcq3 121116120640-phpapp02
Microprocessorandmicroconrollermcq3 121116120640-phpapp02Microprocessorandmicroconrollermcq3 121116120640-phpapp02
Microprocessorandmicroconrollermcq3 121116120640-phpapp02Yazeed Khalid
 
Question paper with solution the 8051 microcontroller based embedded systems...
Question paper with solution  the 8051 microcontroller based embedded systems...Question paper with solution  the 8051 microcontroller based embedded systems...
Question paper with solution the 8051 microcontroller based embedded systems...manishpatel_79
 
dma controller Direct Memory Access,The 8237 DMA Controller dma
dma controller Direct Memory Access,The 8237 DMA Controller dmadma controller Direct Memory Access,The 8237 DMA Controller dma
dma controller Direct Memory Access,The 8237 DMA Controller dmaAgathiSiva
 
Microprocessors-based systems (under graduate course) Lecture 1 of 9
Microprocessors-based systems (under graduate course) Lecture 1 of 9 Microprocessors-based systems (under graduate course) Lecture 1 of 9
Microprocessors-based systems (under graduate course) Lecture 1 of 9 Randa Elanwar
 
Evolution of microprocessors and 80486 Microprocessor.
Evolution of microprocessors and 80486 Microprocessor.Evolution of microprocessors and 80486 Microprocessor.
Evolution of microprocessors and 80486 Microprocessor.Ritwik MG
 

What's hot (19)

ARM Cortex-M3 Training
ARM Cortex-M3 TrainingARM Cortex-M3 Training
ARM Cortex-M3 Training
 
Microprocess Microconroller mcq 1000+
Microprocess Microconroller mcq 1000+Microprocess Microconroller mcq 1000+
Microprocess Microconroller mcq 1000+
 
Introduction to Interfacing Technique
Introduction to Interfacing TechniqueIntroduction to Interfacing Technique
Introduction to Interfacing Technique
 
Unit 1
Unit 1Unit 1
Unit 1
 
Intel+80286
Intel+80286Intel+80286
Intel+80286
 
80486
8048680486
80486
 
Embedded systems notes
Embedded systems notesEmbedded systems notes
Embedded systems notes
 
Motorola Mc68040 Microprocessor :::
Motorola Mc68040 Microprocessor :::Motorola Mc68040 Microprocessor :::
Motorola Mc68040 Microprocessor :::
 
TMS320C5x
TMS320C5xTMS320C5x
TMS320C5x
 
Microprocessor Motorola 68020
Microprocessor Motorola 68020Microprocessor Motorola 68020
Microprocessor Motorola 68020
 
Pentium processor
Pentium processorPentium processor
Pentium processor
 
486 or 80486 DX Architecture
486 or 80486 DX Architecture486 or 80486 DX Architecture
486 or 80486 DX Architecture
 
Microprocessorandmicroconrollermcq3 121116120640-phpapp02
Microprocessorandmicroconrollermcq3 121116120640-phpapp02Microprocessorandmicroconrollermcq3 121116120640-phpapp02
Microprocessorandmicroconrollermcq3 121116120640-phpapp02
 
Question paper with solution the 8051 microcontroller based embedded systems...
Question paper with solution  the 8051 microcontroller based embedded systems...Question paper with solution  the 8051 microcontroller based embedded systems...
Question paper with solution the 8051 microcontroller based embedded systems...
 
dma controller Direct Memory Access,The 8237 DMA Controller dma
dma controller Direct Memory Access,The 8237 DMA Controller dmadma controller Direct Memory Access,The 8237 DMA Controller dma
dma controller Direct Memory Access,The 8237 DMA Controller dma
 
80386 & 80486
80386 & 8048680386 & 80486
80386 & 80486
 
Microprocessors-based systems (under graduate course) Lecture 1 of 9
Microprocessors-based systems (under graduate course) Lecture 1 of 9 Microprocessors-based systems (under graduate course) Lecture 1 of 9
Microprocessors-based systems (under graduate course) Lecture 1 of 9
 
Evolution of microprocessors and 80486 Microprocessor.
Evolution of microprocessors and 80486 Microprocessor.Evolution of microprocessors and 80486 Microprocessor.
Evolution of microprocessors and 80486 Microprocessor.
 
Advanced microprocessor
Advanced microprocessorAdvanced microprocessor
Advanced microprocessor
 

Viewers also liked

Viewers also liked (13)

Pancreatitis aguda final
Pancreatitis aguda finalPancreatitis aguda final
Pancreatitis aguda final
 
Pancreatitis aguda
Pancreatitis agudaPancreatitis aguda
Pancreatitis aguda
 
PANCREATITIS AGUDA
PANCREATITIS AGUDAPANCREATITIS AGUDA
PANCREATITIS AGUDA
 
Graficos
GraficosGraficos
Graficos
 
Alisson valdez
Alisson valdezAlisson valdez
Alisson valdez
 
Mercadoindustrial.es Nº 110 Febrero 2017
Mercadoindustrial.es Nº 110 Febrero 2017Mercadoindustrial.es Nº 110 Febrero 2017
Mercadoindustrial.es Nº 110 Febrero 2017
 
Pancreatitis aguda
Pancreatitis agudaPancreatitis aguda
Pancreatitis aguda
 
fungal disease in fishes
 fungal  disease  in fishes fungal  disease  in fishes
fungal disease in fishes
 
Aclara. Gimnasia del bienestar
Aclara. Gimnasia del bienestarAclara. Gimnasia del bienestar
Aclara. Gimnasia del bienestar
 
Research into Film/Empire House Styles
Research into Film/Empire House StylesResearch into Film/Empire House Styles
Research into Film/Empire House Styles
 
Role of Analytics in Digital Business
Role of Analytics in Digital BusinessRole of Analytics in Digital Business
Role of Analytics in Digital Business
 
Corporate governance of eastern bank limited (3)
Corporate governance of eastern bank limited (3)Corporate governance of eastern bank limited (3)
Corporate governance of eastern bank limited (3)
 
PANCREATITIS AGUDA 2015
PANCREATITIS AGUDA 2015PANCREATITIS AGUDA 2015
PANCREATITIS AGUDA 2015
 

Similar to Electronics product design companies in bangalore

Features of tms_320_2nd_generation_dsp
Features of tms_320_2nd_generation_dspFeatures of tms_320_2nd_generation_dsp
Features of tms_320_2nd_generation_dspSmriti Tikoo
 
Architecture Of TMS320C50 DSP Processor
Architecture Of TMS320C50 DSP ProcessorArchitecture Of TMS320C50 DSP Processor
Architecture Of TMS320C50 DSP ProcessorJanelle Martinez
 
Introduction to 80386 microprocessor
Introduction to 80386 microprocessorIntroduction to 80386 microprocessor
Introduction to 80386 microprocessorShehrevar Davierwala
 
Introduction to i.MX27 Multimedia Applications Processors
Introduction to i.MX27 Multimedia Applications ProcessorsIntroduction to i.MX27 Multimedia Applications Processors
Introduction to i.MX27 Multimedia Applications ProcessorsPremier Farnell
 
Introduction to Digital Signal processors
Introduction to Digital Signal processorsIntroduction to Digital Signal processors
Introduction to Digital Signal processorsPeriyanayagiS
 
MPC854XE: PowerQUICC III Processors
MPC854XE: PowerQUICC III ProcessorsMPC854XE: PowerQUICC III Processors
MPC854XE: PowerQUICC III ProcessorsPremier Farnell
 
Module -4_microprocessor (1).pptx
Module -4_microprocessor (1).pptxModule -4_microprocessor (1).pptx
Module -4_microprocessor (1).pptxDrVaibhavMeshram
 
microcontroller 8051 17.07.2023.pdf
microcontroller 8051 17.07.2023.pdfmicrocontroller 8051 17.07.2023.pdf
microcontroller 8051 17.07.2023.pdf818Farida
 

Similar to Electronics product design companies in bangalore (20)

Features of tms_320_2nd_generation_dsp
Features of tms_320_2nd_generation_dspFeatures of tms_320_2nd_generation_dsp
Features of tms_320_2nd_generation_dsp
 
Uint3 vtu format
Uint3 vtu formatUint3 vtu format
Uint3 vtu format
 
Dsp ajal
Dsp  ajalDsp  ajal
Dsp ajal
 
U I - 4. 80386 Real mode.pptx
U I - 4. 80386 Real mode.pptxU I - 4. 80386 Real mode.pptx
U I - 4. 80386 Real mode.pptx
 
Microprocessor
MicroprocessorMicroprocessor
Microprocessor
 
Architecture Of TMS320C50 DSP Processor
Architecture Of TMS320C50 DSP ProcessorArchitecture Of TMS320C50 DSP Processor
Architecture Of TMS320C50 DSP Processor
 
TMS320C6X Architecture
TMS320C6X ArchitectureTMS320C6X Architecture
TMS320C6X Architecture
 
Mpi unit i_8086_architectures
Mpi unit i_8086_architecturesMpi unit i_8086_architectures
Mpi unit i_8086_architectures
 
Introduction to 80386 microprocessor
Introduction to 80386 microprocessorIntroduction to 80386 microprocessor
Introduction to 80386 microprocessor
 
DSPA.pptx
DSPA.pptxDSPA.pptx
DSPA.pptx
 
Introduction to i.MX27 Multimedia Applications Processors
Introduction to i.MX27 Multimedia Applications ProcessorsIntroduction to i.MX27 Multimedia Applications Processors
Introduction to i.MX27 Multimedia Applications Processors
 
Introduction to Digital Signal processors
Introduction to Digital Signal processorsIntroduction to Digital Signal processors
Introduction to Digital Signal processors
 
AN5097.pdf
AN5097.pdfAN5097.pdf
AN5097.pdf
 
Tms320V5X
Tms320V5XTms320V5X
Tms320V5X
 
MPC854XE: PowerQUICC III Processors
MPC854XE: PowerQUICC III ProcessorsMPC854XE: PowerQUICC III Processors
MPC854XE: PowerQUICC III Processors
 
Introduction to 80386
Introduction to 80386Introduction to 80386
Introduction to 80386
 
Module -4_microprocessor (1).pptx
Module -4_microprocessor (1).pptxModule -4_microprocessor (1).pptx
Module -4_microprocessor (1).pptx
 
microcontroller 8051 17.07.2023.pdf
microcontroller 8051 17.07.2023.pdfmicrocontroller 8051 17.07.2023.pdf
microcontroller 8051 17.07.2023.pdf
 
unit-2.pptx
unit-2.pptxunit-2.pptx
unit-2.pptx
 
Processors selection
Processors selectionProcessors selection
Processors selection
 

More from Ashok Kumar.k

Embedded systems Technology
Embedded  systems TechnologyEmbedded  systems Technology
Embedded systems TechnologyAshok Kumar.k
 
Embedded technology ( http://www.5square.in)
Embedded technology ( http://www.5square.in)Embedded technology ( http://www.5square.in)
Embedded technology ( http://www.5square.in)Ashok Kumar.k
 
final year mechanical engineering projects at bangalore
final year mechanical engineering projects at bangalorefinal year mechanical engineering projects at bangalore
final year mechanical engineering projects at bangaloreAshok Kumar.k
 
Final year ece,eee,mechanical project at Bangalore
Final year ece,eee,mechanical project at BangaloreFinal year ece,eee,mechanical project at Bangalore
Final year ece,eee,mechanical project at BangaloreAshok Kumar.k
 
final year embedded systems projects in chennai
final year embedded systems projects in chennaifinal year embedded systems projects in chennai
final year embedded systems projects in chennaiAshok Kumar.k
 
Final year mechanical projects in bangalore
Final year mechanical projects in bangaloreFinal year mechanical projects in bangalore
Final year mechanical projects in bangaloreAshok Kumar.k
 
Final year embedded projects in bangalore
Final year embedded projects in bangaloreFinal year embedded projects in bangalore
Final year embedded projects in bangaloreAshok Kumar.k
 
Final year ece projects in chennai,bangalore,vijayawada
Final year ece projects in chennai,bangalore,vijayawadaFinal year ece projects in chennai,bangalore,vijayawada
Final year ece projects in chennai,bangalore,vijayawadaAshok Kumar.k
 
final year engineering ece projects in chennal,bangalore,vijayawada,kakinada
final year  engineering ece projects in chennal,bangalore,vijayawada,kakinadafinal year  engineering ece projects in chennal,bangalore,vijayawada,kakinada
final year engineering ece projects in chennal,bangalore,vijayawada,kakinadaAshok Kumar.k
 
final year embedded system projects in chennai
final year embedded system projects in chennai final year embedded system projects in chennai
final year embedded system projects in chennai Ashok Kumar.k
 

More from Ashok Kumar.k (11)

Embedded systems Technology
Embedded  systems TechnologyEmbedded  systems Technology
Embedded systems Technology
 
Embedded technology ( http://www.5square.in)
Embedded technology ( http://www.5square.in)Embedded technology ( http://www.5square.in)
Embedded technology ( http://www.5square.in)
 
Embedded systems
Embedded systems  Embedded systems
Embedded systems
 
final year mechanical engineering projects at bangalore
final year mechanical engineering projects at bangalorefinal year mechanical engineering projects at bangalore
final year mechanical engineering projects at bangalore
 
Final year ece,eee,mechanical project at Bangalore
Final year ece,eee,mechanical project at BangaloreFinal year ece,eee,mechanical project at Bangalore
Final year ece,eee,mechanical project at Bangalore
 
final year embedded systems projects in chennai
final year embedded systems projects in chennaifinal year embedded systems projects in chennai
final year embedded systems projects in chennai
 
Final year mechanical projects in bangalore
Final year mechanical projects in bangaloreFinal year mechanical projects in bangalore
Final year mechanical projects in bangalore
 
Final year embedded projects in bangalore
Final year embedded projects in bangaloreFinal year embedded projects in bangalore
Final year embedded projects in bangalore
 
Final year ece projects in chennai,bangalore,vijayawada
Final year ece projects in chennai,bangalore,vijayawadaFinal year ece projects in chennai,bangalore,vijayawada
Final year ece projects in chennai,bangalore,vijayawada
 
final year engineering ece projects in chennal,bangalore,vijayawada,kakinada
final year  engineering ece projects in chennal,bangalore,vijayawada,kakinadafinal year  engineering ece projects in chennal,bangalore,vijayawada,kakinada
final year engineering ece projects in chennal,bangalore,vijayawada,kakinada
 
final year embedded system projects in chennai
final year embedded system projects in chennai final year embedded system projects in chennai
final year embedded system projects in chennai
 

Recently uploaded

What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 

Recently uploaded (20)

What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 

Electronics product design companies in bangalore

  • 1. http://www.dncltech.com Abouts : DNCL Technologies Electronic design service and embedded system development, PCB design, CPLD design & FPGA design and manufacturing service. DNCL Technologies offers custom electronic design, embedded system design product development and pcb design,FPGA based design & CPLD design,Fireware & device drivers development, RTOS –Vxworks,Kernal programming ,Application Development and android development .we design all types of electronic circuit or producing according to custom specification at affordable costs while maintaining highest quality product. Contact us for your custom electronic product development and manufacturing. ARCHITECTURE OF TMS320C3X INTRODUCTION • The TMS320C3X series of digital signal processors (DSPs) are high performance CMOS 32-bit floating point devices in the TMS320 family of single-chip DSPs. • The C3X devices integrate both system control and math-intensive functions on a single controller. This integration allows fast, easy data movement and high-speed numeric processing performance. • Extensive internal bussing and a powerful DSP instruction set provide the devices with the speed and flexibility to execute up to 60million floating-point operations per second(MFLOPS) and 30 million fixed-point instructions per second(MIPS). • The devices also feature a high degree of on-chip parallelism that allows user to perform up to 11 operations in a single instruction. AN OVERVIEW OF TMS320C3X • The C3X family consists of three members: C30, C31, and C32. • These processors can perform parallel multiply and arithmetic logic unit (ALU) operations on integer or floating-point data in a single cycle. http://www.dncltech.com
  • 2. http://www.dncltech.com • These processors consist of the following General-purpose register file, program cache, dedicated auxiliary register arithmetic units(ARAU),internal dual-access memories, direct memory access channel(DMA) supporting concurrent I/O, large address space, multiprocessor interface, internal and external generated wait states, external interface ports, timers, serial ports and multiple-interrupt structure Device Name Frequency cycle time (MHz/ns) Memory(words) On-chip Off- chip Peripherals C30(5v) 27/75 33/60 40/50 50/40 RAM=2K 16M*32 ROM=4K 8K*32 Cache=64 Serial port=2 DMA channel=1 Timers=2 C31(5V) 27/75 33/60 40/50 50/40 60/33 RAM=2K 16M*32 ROM is boot loaded Cache=64 Serial port=1 DMA channel=1 Timers=2 L31(3.3V 33/60 40/50 RAM=2K 16M*32 ROM is boot loaded Cache=64 Serial port=1 DMA channel=1 Timers=2 C32(5V) 40/50 50/40 60/33 RAM=512K 16M*32/ ROM is Boot 16/8 Loaded Cache=64 Serial port=1 DMA channel=2 Timers=2 INTERNAL ARCHITECTURE Major Blocks: 1. Central Processing Unit 2. Memory Unit(RAM, ROM, Cache) http://www.dncltech.com
  • 3. http://www.dncltech.com 3. Peripherals (Serial ports, Timers, etc) and 4. DMA Controller CENTRAL PROCESSING UNIT(CPU) • C3X devices have a registered based CPU architecture. • CPU has following units 1. Internal buses(CPU1,CPU2,REG1,REG2) 2. Floating-point/Integer multiplier 3. Arithmetic logic unit(ALU) 4. 32-bit Barrel shifter 5. Auxiliary register arithmetic units(ARAUs) 6. CPU register file CPU INTERNAL BUS(CPU1,CPU2,REG1,REG2) • Consists of 4buses • Data bus DDATA carries data to CPU through CPU1 AND CPU2 • CPU1 ND CPU2 bus can carry two data memory operands to the multiplier, ALU and register file for every machine cycle. • Internal to CPU are two buses REG1 and REG2, these buses can carry two data values from the register file to multiply and ALU for every machine cycle. FLOATING-POINT/INTEGER MULTIPLIER • Performs multiplication on 24-bit integer and 32-bit floating pt values in single instruction. • Operations at speed upto 33ns per instruction cycle. • For higher speed, parallel instructions can be used. http://www.dncltech.com
  • 4. http://www.dncltech.com • For floating pt multiplication, i/p =>32-bits ; o/p=>40 -bits • For integer multiplication, i/p=>24-bit; o/p=>32-bits ARITHEMETIC LOGIC UNIT (ALU) AND BARREL SHIFTER • Performs single cycle arithmetic and logical operations. http://www.dncltech.com CPU ARCHITECTURE
  • 5. http://www.dncltech.com • It performs operation on 32-bit integer, 32-bit logical ad 40-bit floating pt data. • It performs integer and floating pt conversion in a single cycle. • The results of ALU are always maintained at 32-bit integer (or) 40-bit floating pt formats. • The barrel shifter is used to shift the operands upto 32-bits left or right in a single cycle. AUXILIARY REGISTER ARITHEMETIC UNIT (ARAU) • The C3X family processors consists of two ARAUs(ARAU0,ARAU2) • These two units can generate two addresses in a single cycle. • The ARAUs operate in parallel with the multiplier and ALU. • It is used for indirect addressing mode. • Supports address displacement and address displacement can be indicated in the assembly code using displacement field or two index register(IR0&IR1) • It supports circular and bit-reversed addressing modes. TMS320C3X ARCHITECTURE MEMORY ORGANIZATION: • The total memory space of a C3X processor is 16 million (16M) 32-bit words. • This space contains Program, data and I/O spaces. The C3X processors have on-chip RAM, ROM and cache memories. • The memory organization and internal buses are shown in the diagram. • In C3X, there are two RAM blocks, Block0 and Block1, (each of 1Kx32 bits in C30 and C31 and each of 256x32 bits in C32) and a ROM block (4K x 32 bits only in C30 and boot loader in C31 and C32). • The RAM and ROM blocks are capable of supporting two CPU accesses (dual access memory) in a single cycle. • A 64 X 32 bit instruction cache is present to store often-repeated sections of code. This will reduce the number of off-chip accesses. http://www.dncltech.com
  • 6. http://www.dncltech.com MEMORY INTERNAL BUSES: • The high performance of C3X processors is due to the internal buses and parallelism. • The memory buses are  Program bus  Data bus  DMA bus • The separate program bus consists of program address (PADDR) bus and program data (PDATA) bus. • There are two data address buses (DADDR1 and DADDR2) and one data (DDATA) bus. • The DMA bus contains DMA address (DMAADDR) bus and a DMA data (DMADATA) bus. http://www.dncltech.com
  • 7. http://www.dncltech.com • These buses allow parallel instruction code fetch from program memory, two data accesses and DMA access and electronics product design companies in Bangalore • These buses connect on-chip memory, off-chip memory and on-chip peripherals. • All address buses are 24 bits and data buses are 32 bits in size. • The PC is connected to PADDR bus and the IR is connected to PDATA bus. These buses can fetch a single instruction word for every machine cycle. • The two data address buses are connected to the AR unit, which generates the data memory addresses and the data bus is connected to the CPU over CPU1 and CPU2 buses, which carry the data to the CPU. • The DMA controller is connected with a 24-bit address bus (DMAADDR) and a 32-bit data bus (DMADATA). These buses allow the DMA to perform memory access in parallel with the memory accesses occurring from the data and program buses. CACHE MEMORY • 64x32 bit instruction cache • storing the repeatedly accessed code reduces the off-chip memory access • cache frees external buses which can be used by DMA or other system elements • Data reads and writes bypasses the cache • the instruction fetches from the on chip memory do not modify the cache CACHE CONTROL BITS • In the status register there are 3 control bits that manages the cache • all the 64 words present in the cache has a flag bit P • At reset cache is cleared and zero is written to these 3 control bits 1. Cache Clear Bit(CC) ‘1’-clears the 64 words & P flags of cache http://www.dncltech.com
  • 8. http://www.dncltech.com 2. Cache Enable Bit (CE) ‘1’-enables cache & works according to cache algorithm ‘0’- Disables cache and there will not be any updates or modifications of the cache entries 2. Cache Freeze (CF) ‘1’- cache is frozen and its operation is determined along with CE bit CE CF FUNCTION 0 0 Cache not enabled 0 1 Cache not enabled 1 0 Cache enabled and not frozen 1 1 Cache enabled and frozen When cache is frozen and it is enabled, no modification of the state of cache is allowed, but the instruction code fetch from the cache is allowed. CACHE ARCHITECTURE • The Cache RAM is divided into 2 segments each containing 32 words • There are segment start address registers of 19 bit for each segment • Cache architecture consists of LRU stack which determines least recently used segment of the 2. • Each time the segment is accessed its segment number (0 or 1) is removed and pushed to the top of the stack • the number at the top is the most recently used and the number at the bottom of the stack is the least recently used http://www.dncltech.com
  • 10. http://www.dncltech.com • When CPU requests an instruction word from external memory, the cache algorithm checks if the word is already present in the cache • the 24-bit instruction word address is split into 19MSBs that determine the segment and 5 LSBs that define the address of instr.word within that segment • This algorithm compares 19MSBs of the instruction address with the 2 SSA registers • If match occurs, then the address has been previously accessed and so the word is accessed again and then the P flag is set • If match doesn’t occur, the least recently used segment is used for writing the instruction word. • All the P flags in that segment is cleared and the SSA register is loaded with the 19 MSBs of the instruction address • Instruction word is fetched from the external memory, copied into the cache and the corresponding P flag is set. • The segment number now accessed is pushed to the top of the stack. Thus the other segment number will come to the bottom of the stack. PERIPHERALS: The C3X processor peripherals includes • Timers • Serial Ports • DMA(Direct Memory Access) Controllers http://www.dncltech.com Block Diagram of C3X Peripherals
  • 11. http://www.dncltech.com The Peripheral bus is used to communicate with other peripherals. The peripheral bus consists of 24-bit address bus and 32-bit data bus. PERIPHERALS/PROCESSOR C30 C31 C32 Timer 2 2 2 Serial Port 2 1 1 DMA Controllers 1 1 2 TIMERS: • The C3X timers are general-purpose 32-bit timer/event counters • The timer operates in two signaling modes  Internal clocking  External clocking • With internal clock, we can use the timer to signal external devices such as A/D converter, D/A converter, etc. • With external clock, timer can count the external events and interrupts the CPU after a specified number of events. • Each timer has an I/O pin that can be configured as an  Input pin http://www.dncltech.com
  • 12. http://www.dncltech.com  Output pin  General-purpose I/O pin • The three memory mapped registers are used by timers. They are  Global control register(GCR)  Period register(PR)  Counter register(CR) • Global Control Register  Determines the operating mode of the timer  Monitors timer status  Controls the function of I/O pin of the timer • The period register specifies the timer’s signaling frequency • The counter register contains the current value of the incrementing counter • For the required mode of timer operation, the control word for the Global Control Register, and for the required frequency, the count value of the period register are stored in the respective memory-mapped address locations TIMER OPERATION: • The timer can operate both for internal and external clock signals. • Depending upon the timer output frequency, the divide ratio of the input clock is loaded into the timer period register. • For each input clock pulse, the timer counter (32-bits) increments. • The increment operation can be programmed for leading edge or the falling edge of the input clock. • The counter register (32-bits) holds the current count value of the counter. • The period register content and the counter register content are compared in the comparator. http://www.dncltech.com
  • 13. http://www.dncltech.com • If the values are equal, an internal interrupt is generated, the pulse generator generates a pulse, the counter is reset and starts incrementing and this action is repeated. • The pulse generator can generate two types of external clock signals, the pulse or the clock signal. TIMER GLOBAL CONTROL REGISTER: • The timer global control register is a 32-bit register that contains the global and the port control bits for the timer. • The bits 3-0 are the port control bits; bits 11-6 are the timer global control bits. • At reset, all the bits are set to 0 except the DATIN bit. http://www.dncltech.com
  • 16. http://www.dncltech.com SERIAL PORT: • The C30 and C32 devices have two serial ports. These serial ports are independent bidirectional serial ports and are identical. • The C31 device has only one serial port, which is also a bidirectional port. • Each serial port has eight control registers, which are memory mapped, and can be programmed by the user for the desired modes of operation. • The control registers include  A Global Control Register  Two control registers for serial I/O pins  Three transmit/receive timer registers  One data transmit register  One data receive register • The serial ports can be programmed to transfer 8, 16, 24 and 32 bits of data words simultaneously in both directions. • The clock signal needed for the serial port can be generated in DSP itself by programming the timer, or it can be externally supplied. • The serial port can transmit data words in continuous mode or burst mode TRANSMIT SECTION: • In the transmit section of the serial port, the data transmit register (DXR) will hold the 32-bit data to be transmitted and it is copied to transmit shift register (XSR), whenever the XSR is empty. • Once XSR starts shifting the data bits to the DX pin, the next data word is copied to the DXR register. • Once the DXR content is completely copied to XSR register, the transmit ready (XRDY) bit is set in the serial port global control register. • This will initiate a serial port transmit interrupt (XINT) and this signal indicates that the DXR is ready to accept new data. • The transmit frame synchronization (FSX) signal will be generated at the beginning of each frame and this initiates the data transfer. • All the transmit section operations are synchronized by the transmit clock signal (CLKX). http://www.dncltech.com
  • 17. http://www.dncltech.com RECEIVE SECTION: • At the receive section of the serial port, the data from the DR pin is shifted into receive shift register (RSR). • The content of RSR is copied to the data receive register (DRR) and from this register it is read by the CPU. • Once the RSR content is completely copied to DRR, the receive ready bit (RRDY) in the serial port global control register is set. • This initiates the serial port receive interrupt (RINT). • Similar to transmit section, the receive frame synchronization (FSR) of the receiver section initiates the receive operation and receiver clock signal CLKR is used to synchronize all the receiver sections. DMA CONTROLLER: • The DMA controller is a programmable peripheral that transfers blocks of data to any location in the memory map without interfering with CPU operation. • The ’C3x can interface to slow, external memories and peripherals without reducing throughput to the CPU. The ’C3x DMA controller features are: http://www.dncltech.com
  • 18. http://www.dncltech.com  Transfers to and from anywhere in the processor’s memory map. For example, transfers can be made to and from on-chip memory, off-chip memory, and on-chip serial ports.  One DMA channel for memory-to-memory transfers in ‘C30 and ‘C31. Two DMA channels for memory-to-memory transfers in ‘C32.  Concurrent CPU and DMA controller operation with DMA transfers at the same rate as the CPU (supported by separate internal DMA address and data buses).  Source and destination-address registers with auto increment/decrement.  Synchronization of data transfers via external and internal interrupts. DMA FUNCTIONAL DESCRIPTION: • The DMA controller supports one (‘C30 and ‘C31) or two (‘C32) DMA channels that perform transfers to and from anywhere in the ‘C3x memory map. • Each DMA channel is controlled by four registers that are mapped in the ‘C3x peripheral address space. • The DMA controller has dedicated on-chip address and data buses. All accesses made by the DMA channels are arbitrated in the DMA controller and take place over these dedicated buses. • The DMA channels transfer data in a sequential time-slice fashion, rather than simultaneously, because they share common buses. • The DMA channels can run constantly or can be triggered by external (INT3–0) or internal (on-chip timers and serial ports) interrupts. DMA BASIC OPERATION • If a block of data is to be transferred from one region in memory to another region in memory, the following sequence is performed: DMA Registers Initialization 1) The source-address register of a DMA channel is loaded with the address of the memory location to read from. 2) The destination-address register of the same DMA channel is loaded with the address of the memory location to write to. 3) The transfer counter is loaded with the number of words to be transferred. 4) The DMA channel control register is loaded with the appropriate modes to synchronize the DMA controller reads and writes with interrupts. DMA Start 5) The DMA controller is started through the DMA START field in the DMA channel control register. http://www.dncltech.com
  • 19. http://www.dncltech.com Word Transfers 6) The DMA channel reads a word from the source-address register and writes it to a temporary register within the DMA channel. 7) After a read by the DMA channel, the source-address register is incremented, decremented, or unchanged depending on the INCSRC or DECSRC bit fields of DMA channel control register. 8) After the read operation completes, the DMA channel writes the temporary register value to the destination-address pointed to by the destination address register. 9) After the destination-address has been fetched, the transfer-counter register is decremented and the destination-address register is incremented, decremented, or unchanged, depending on the INCDST or DECDST bit fields of the DMA channel control register. 10) During every data write, the transfer counter is decremented. The block transfer terminates when the transfer counter reaches zero and the write of the last transfer is completed. The DMA channel sets the transfer-counter interrupt (TCINT) flag in the DMA channel control register. • After the completion of a block transfer, the DMA controller can be programmed to do several things:  Stop until reprogrammed (TC = 1)  Continue transferring data (TC = 0)  Generate an interrupt to signal the CPU that the block transfer is complete (TCINT = 1) • The DMA can be stopped by setting the START bits to 00, 01, or 10. When the DMA is restarted (START = 11), it completes any pending transfer. DMA REGISTERS: • Each DMA channel has four registers designated as follows: http://www.dncltech.com
  • 20. http://www.dncltech.com  Control register: contains the status and mode information about the associated DMA channel  Source-address register: contains the memory address of data to be read  Destination-address register: contains the memory address where data is written  Transfer-counter register: contains the block size to move • After reset, the control register, the transfer counter, and the auxiliary transfer counter registers are set to 0s and the other registers are undefined. ASSEMBLY LANGUAGE INSTRUCTIONS: • There are 113 instructions organized into six groups 1. Load and Store 2. two-operand arithmetic/logical 3. three-operand arithmetic/logical 4. Program control 5. Interlocked operations 6. Parallel operations The general syntax of assembly instructions is as follows: 1. three operand instructions mnemonic src2,src1,dst  source operands- register and indirect addressing modes  destination operand-register addressing mode 2. other instructions mnemonic src,dst  source operand- general addressing mode  destination operand- register addressing mode i) Load and Store Instructions • ‘C3X processors support 13 load and store instructions http://www.dncltech.com
  • 21. http://www.dncltech.com • memory to register(load) and register to memory (store) • certain instructions can manipulate data on system stack ii) Two-operand Instructions • There are 35 two-operand arithmetic and logical instructions • the source operand can be a memory word, a register or a part of the instruction • destination operand should always be a register iii) Three-operand Instructions • there are 17 three-operand instructions • single cycle execution. Destination should always be a register. iv) Program- Control Instructions • There are 17 instructions which affect the program flow • repeat instructions, both standard and delayed branches, call and return instructions v) Interlocked –operation Instructions • There are 5 instructions which support interlocked operations. • These instructions are used for multiprocessor communication through external signals (XF0 and XF1) to allow for powerful synchronisation mechanisms. • Source-direct and indirect addressing modes, destination-register only. vi) Parallel-operation instructions http://www.dncltech.com
  • 22. http://www.dncltech.com • instructions can occur in pairs that will be executed in parallel • each instruction in a pair is entered as a separate source statement • the instruction in a pair should be written followed by ( ll) Load Instructions • The load instructions can load integer and floating point values. It’s possible to load separately the floating-point exponent and mantissa. • The load operation can be performed both in interlocked and parallel operation modes. Instruction Description LDP Load Data page pointer LDI Load integer LDF Load floating point value LDM Load floating point mantissa LDE Load floating point exponent LDII Load integer, interlocked LDFI Load floating point value, interlocked LDF ll LDF Load floating point value, parallel LDI ll LDI Load integer, parallel Store instructions • the operands can be stored both in parallel and interlocked operations. • the source operand can be accessed only with register addressing mode and the destination operand can be accessed with general addressing modes. Instruction Description STI Store integer operand STF Store floating point operand STIl Store integer operand, interlocked STFl Store floating point value, interlocked http://www.dncltech.com
  • 23. http://www.dncltech.com STI ll STI Store integer operand parallel STF ll STF Store floating point operand parallel Addition/Subtraction Instructions • two operand as well as three operand instructions are available. • it is also possible to add and the carry bit and subtract the borrow bit with the operands in some instructions. Instruction Description ADDC Add integers with carry ADDF Add floating point operands ADDI Add integer operands ADDC3 add two integer source operands with carry ADDF3 Add two floating point source operands ADDI3 add two integer source operands SUBB Subtract integer with borrow SUBF Subtract floating point operands SUBI Subtract integer operands SUBRB Subtract reverse integer with borrow SUBRF Subtract reverse floating point value SUBRI Subtract reverse integer value SUBB3 Subtract two source floating point operands with borrow SUBF3 Subtract two floating point source operands SUBI3 Subtract two integer source operands Multiply instructions: • in two operand instructions, the product of the destination and sorce operands is sored in the destination operand. • in three operand instructions, the product of the 2 source operands is stored in the destination operand. http://www.dncltech.com
  • 24. http://www.dncltech.com Instruction Description MPYF Multiply floating point operands MPYI Multiply integer operands MPYF3 Multiply two floating point source operands MPYI3 Multiply two integer source operands Logical Instructions: • the two operand and three operand logical OR, AND and XOR operations can be performed. • the complement operation can be separately performed for the operands or it can be performed along with the AND operation. Instruction Description AND Logical AND operation ANDN Logical AND between dest and complement of the source operand NOT Logical complement operation OR Logical OR operation XOR Logical exclusive OR operation AND3 Logical AND between two source operands ANDN3 Logical AND operation between source1 operand and the complement of the source2 operand OR3 Logical-OR between two source operands XOR3 Logical exclusive-OR between two source operands Conditional instructions: • there are 20 conditions that can be specified in the condition field. • conditions include signed and unsigned comparisons, comparisons to ‘0’, and comparisons based on the status of individual flags of status register. • the load, branch, call, return and trap can be conditional instructions. http://www.dncltech.com
  • 25. http://www.dncltech.com Condition Description Unconditional Compares U Unconditional Unsigned Compares LO Lower than LS Lower than or same as HI Higher than HS Higher than or same as EQ Equal to NE Not equal to Signed compares LT Less than LE Less than or equal to GT Greater than GE Greater than or equal to EQ Equal to NE Not equal to Compare to Zero Z Zero NZ Not zero P Positive N Negative NN Nonnegative Compare to condition flags NN Nonnegative N Negative NZ Nonzero Z Zero NV No overflow V overflow NUF No underflow UF underflow NC No carry C carry NLUF No latched floating-point underflow NLV No latched overflow LV Latched overflow LUF Latched floating-point underflow http://www.dncltech.com
  • 26. http://www.dncltech.com ZUF Zero or floating point underflow Shift and Rotate Instructions: • right as well as left shift and rotate operations can be performed • 2 kinds of shift- arithmetic and logical • Syntax: 2-operand- mnemonic count, dst 3-operand- mnemonic count, src, dst • Count>0, left shift operation is performed. the lower order bits which are shifted in are zero-filled and the higher order bits are shifted out through the carry bit. same for both arithmetic and logical shifts • Count<0, right shift operation is done. In arithmetic shift, the higher order bits are sign extended and the lower order bits are shifted out through the carry bit. • in logical shift, the higher order bits are zero filled and the lower order bits are shifted out through the carry bit. • only 7 LSBs of the count operand is considered. • Syntax of rotate instruction: mnemonic dst • rotate right- LSB bit is transferred into the MSB bit. Rotate left is vice- versa. In both the cases, the shifted bit is copied into the carry bit. • Rotate through carry bit is also possible. Instruction Description ASH Arithmetic shift ASH3 Arithmetic shit-3 operand LSH Logical shift LSH3 Logical shift-3 operand ROL Rotate left ROLC Rotate left through carry ROR Rotate right http://www.dncltech.com
  • 27. http://www.dncltech.com RORC Rotate right through carry Program Control Instructions: • there 17 instructions in this group. • certain program control instructions support both conditional and unconditional operations. • Branch and call:  the branch operation can be conditional, unconditional, delayed and decrement branch instructions.  Normal branch operation happens only after 4 machine cycles.  in delayed branch, the instruction is delayed by 3 machine cycles and is executed only in the 4th machine cycle. the effect is a single cycle branch.  the syntax of branch/ call instruction is mnemonic src. • Repeat:  two repeat instructions to support zero-over-head looping. RPTB- repeat a block of code RPTS- repeat a single instruction  these 2 instructions are 4-cycle instructions, the subsequent executions of the loop have no overhead.  there are 3 memory mapped registers • RS- Repeat start address register => holds the address of the first instruction of the block code to be repeated. • RE-Repeat end address register => holds the address of the last instruction • RC-Repeat counter register => contains the value one less than the number of times the block to be repeated. http://www.dncltech.com
  • 28. http://www.dncltech.com  there are 2 flag bits RM bit (specifies whether the processor is working in repeat mode) and S bit (necessary to describe the single instruction repeat operation, but can't be programmed) Low-Power Control Instructions: • it consists of four instructions that can be used for low-power modes. • the IDLE instruction stops the CPU operations until an interrupt is received. • The IDLE2 instruction removes the functional clock input from the internal devices. • In LOPOWER instruction the processor continues the execution of instructions at the reduced clock rate. • For MAXSPEED, it exits the LOPOWER mode and starts execution with full speed. Instruction Description http://www.dncltech.com Instruction Description BR Standard Unconditional Branch BRD Delayed unconditional Branch Bcond Standard conditional branch BcondD Delayed conditional branch DBcond Decrement and standard conditional branch DBcondD Decrement and standard conditional branch CALL Call subroutine unconditionally CALL cond Call subroutine conditionally RET cond Return conditionally from subroutine RETI cond Return conditionally from interrupt
  • 29. http://www.dncltech.com IDLE Idle until interrupt IDLE2 Low-power idle LOPOWER Divide the clock by 16 MAXSPEED Restore clock to regular speed ADDRESSING MODES OF TMS320C3X: The ’C3x supports five groups of powerful addressing modes. Six types of addressing that allow data access from memory, registers, and the instruction word can be used within the groups. ADDRESSING TYPES: You can access data from memory, registers, and the instruction word by using five types of addressing: Register addressing. A CPU register contains the operand. http://www.dncltech.com
  • 30. http://www.dncltech.com Direct addressing. The data address is formed by concatenating the eight least significant bits (LSBs) of the data-page (DP) register and the 16 LSBs of the instruction. Indirect addressing. An auxiliary register contains the address of the operand. Immediate addressing. The operand is a 16-bit or 24-bit immediate value. PC-relative addressing. A 16-bit or 24-bit displacement to the program counters (PC). Two specialized modes are available for use in filters, FFTs, and DSP algorithms: Circular addressing. An auxiliary register is incremented/decremented with regards to a circular buffer boundary. Bit-reverse addressing. An auxiliary register is transferred to its bit reversed representation that contains the address of the operand. Register Addressing In register addressing, a CPU register contains the operand. Example: ADDI R3, R4 Direct Addressing In direct addressing, the data address is formed by the concatenation of the eight LSBs of the data-page pointer (DP) with the 16 LSBs of the instruction word (expr). This results in 256 pages (64K words per page), allowing you to access a large address space without requiring a change of the page pointer. The syntax and operation for direct addressing are: Syntax: @expr Operation: address = DP concatenated with expr http://www.dncltech.com
  • 31. http://www.dncltech.com Indirect Addressing Indirect addressing specifies the address of an operand in memory through the contents of an auxiliary register, optional displacements, and index registers. Only the 24 LSBs of the auxiliary registers and index registers are used in indirect addressing. The auxiliary register arithmetic units (ARAUs) perform the unsigned arithmetic on these lower 24 bits. The upper eight bits are unmodified. http://www.dncltech.com
  • 32. http://www.dncltech.com The flexibility of indirect addressing is possible because the ARAUs on the ’C3x modify auxiliary registers in parallel with operations within the main CPU. Indirect addressing is specified by a 5-bit field in the instruction word, referred to as the mod field (shown in Table 6–2). A displacement is either an explicit unsigned 8- bit integer contained in the instruction word or an implicit displacement of 1. Two index registers, IR0 and IR1, can also be used in indirect addressing, enabling the use of 24-bit indirect displacement. In some cases, an addressing scheme using circular or bit-reversed addressing is optional. http://www.dncltech.com
  • 36. http://www.dncltech.com Indirect Addressing With Predisplacement Add The address of the operand to fetch is the sum of an auxiliary register (ARn) and the displacement (disp). The displacement is either an 8-bit unsigned integer contained in the instruction word or an implied value of 1. Operation: operand address = ARn + disp Assembler Syntax: *+ARn(disp) Modification Field: 00000 Indirect Addressing With Predisplacement Subtract The address of the operand to fetch is the contents of an auxiliary register (ARn) minus the displacement (disp). The displacement is either an 8-bit unsigned integer contained in the instruction word or an implied value of 1. Operation: operand address = ARn – disp Assembler Syntax: *–ARn(disp) Modification Field: 00001 http://www.dncltech.com
  • 37. http://www.dncltech.com Indirect Addressing With Predisplacement Add and Modify The address of the operand to fetch is the sum of an auxiliary register (ARn) and the displacement (disp). The displacement is either an 8-bit unsigned integer contained in the instruction word or an implied value of 1. After the data is fetched, the auxiliary register is updated with the address generated. Operation: operand address = ARn + disp ARn = ARn + disp Assembler Syntax: *++ARn (disp) Modification Field: 00010 Indirect Addressing With Predisplacement Subtract and Modify The address of the operand to fetch is the contents of an auxiliary register (ARn) minus the displacement (disp). The displacement is either an 8-bit unsigned integer contained in the instruction word or an implied value of 1. After the data is fetched, the auxiliary register is updated with the address generated. Operation: operand address = ARn – disp ARn = ARn – disp Assembler Syntax: *-- ARn(disp) Modification Field: 00011 http://www.dncltech.com
  • 38. http://www.dncltech.com Indirect Addressing With Postdisplacement Add and Modify The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the displacement (disp) is added to the auxiliary register. The displacement is either an 8-bit unsigned integer contained in the instruction word or an implied value of 1. Operation: operand address = ARn ARn = ARn + disp Assembler Syntax: *ARn ++(disp) Modification Field: 00100 Indirect Addressing With Postdisplacement Subtract and Modify The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the displacement (disp) is subtracted from the auxiliary register. The displacement is either an 8-bit unsigned integer contained in the instruction word or an implied value of 1. Operation: operand address = ARn ARn = ARn – disp Assembler Syntax: *ARn --(disp) Modification Field: 00101 Indirect Addressing With Postdisplacement Add and Circular Modify http://www.dncltech.com
  • 39. http://www.dncltech.com The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the displacement (disp) is added to the contents of the auxiliary register using circular addressing. This result is used to update the auxiliary register. The displacement is either an 8-bit unsigned integer contained in the instruction word or an implied value of 1. Operation: operand address = ARn ARn = circ(ARn +disp) Assembler Syntax: *ARn ++(disp)% Modification Field: 00110 Indirect Addressing With Postdisplacement Subtract and Circular Modify The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the displacement (disp) is subtracted from the contents of the auxiliary register using circular addressing. This result is used to update the auxiliary register. The displacement is either an 8-bit unsigned integer contained in the instruction word or an implied value of 1. Operation: operand address = ARn ARn = circ(ARn – disp) Assembler Syntax: *ARn --(disp)% Modification Field: 00111 http://www.dncltech.com
  • 40. http://www.dncltech.com Indirect Addressing With Preindex Add The address of the operand to fetch is the sum of an auxiliary register (ARn) and an index register (IR0 or IR1). Operation: operand address = ARn + IRm Assembler Syntax: *+ARn(IRm) Modification Field: 01000 if m = 0 10000 if m = 1 Indirect Addressing With Preindex Subtract The address of the operand to fetch is the difference of an auxiliary register (ARn) and an index register (IR0 or IR1). Operation: operand address = ARn – IRm Assembler Syntax: *–ARn(IRm) Modification Field: 01001 if m = 0 10001 if m = 1 http://www.dncltech.com
  • 41. http://www.dncltech.com Indirect Addressing With Preindex Add and Modify The address of the operand to fetch is the sum of an auxiliary register (ARn) and an index register (IR0 or IR1). After the data is fetched, the auxiliary register is updated with the generated address. Operation: operand address = ARn + IRm ARn = ARn + IRm Assembler Syntax: *++ARn(IRm) Modification Field: 01010 if m = 0 10010 if m = 1 Indirect Addressing With Preindex Subtract and Modify The address of the operand to fetch is the difference between an auxiliary register (ARn) and an index register (IR0 or IR1). The resulting address becomes the new contents of the auxiliary register. Operation: operand address = ARn – IRm ARn = ARn – IRm Assembler Syntax: *--ARn(IRm) Modification Field: 01011 if m = 0 10011 if m = 1 http://www.dncltech.com
  • 42. http://www.dncltech.com Indirect Addressing With Postindex Add and Modify The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the index register (IR0 or IR1) is added to the auxiliary register. Operation: operand address = ARn ARn = ARn + IRm Assembler Syntax: *ARn ++(IRm) Modification Field: 01100 if m = 0 10100 if m = 1 Indirect Addressing With Postindex Subtract and Modify The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the index register (IR0 or IR1) is subtracted from the auxiliary register. Operation: operand address = ARn ARn = ARn – IRm Assembler Syntax: *ARn --(IRm) Modification Field: 01101 if m = 0 10101 if m = 1 http://www.dncltech.com
  • 43. http://www.dncltech.com Indirect Addressing With Postindex Add and Circular Modify The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the index register (IR0 or IR1) is added to the auxiliary register. This value is evaluated using circular addressing and replaces the contents of the auxiliary register. Operation: operand address = ARn ARn = circ(ARn + IRm) Assembler Syntax: *ARn ++(IRm)% Modification Field: 01110 if m = 0 10110 if m = 1 Indirect Addressing With Postindex Subtract and Circular Modify The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the index register (IR0 or IR1) is subtracted from the auxiliary register. This result is evaluated using circular addressing and replaces the contents of the auxiliary register. Operation: operand address = ARn ARn = circ(ARn – IRm) Assembler Syntax: *ARn –– (IRm)% Modification Field: 01111 if m = 0 10111 if m = 1 http://www.dncltech.com
  • 44. http://www.dncltech.com Indirect Addressing With Postindex Add and Bit-Reversed Modify The address of the operand to fetch is the contents of an auxiliary register (ARn). After the operand is fetched, the index register (IR0) is added to the auxiliary register. This addition is performed with a reverse-carry propagation and can be used to yield a bit- reversed (B) address. This value replaces the contents of the auxiliary register. Operation: operand address = ARn ARn = B(ARn + IR0) Assembler Syntax: *ARn++(IR0)B Modification Field: 11001 Immediate Addressing In immediate addressing, the operand is a 16-bit (short) or 24-bit (long) immediate value contained in the 16 or 24 LSBs of the instruction word (expr). Depending on the data types assumed for the instruction, the short-immediate operand can be a 2s-complement integer, an unsigned integer, or a floating-point number. This is the syntax for this mode: Syntax: expr http://www.dncltech.com
  • 45. http://www.dncltech.com In long-immediate addressing, the operand is a 24-bit unsigned immediate value contained in the 24 LSBs of the instruction word (expr). This is the syntaxfor this mode: Syntax: expr PC-Relative Addressing Program counter (PC)-relative addressing is used for branching. It adds the contents of the 16 or 24 LSBs of the instruction word to the PC register. The assembler takes the src (a label or address) specified by the user and generates a displacement. If the branch is a standard branch, this displacement is equal to [label – (instruction address+1)]. If the branch is a delayed branch, this displacement is equal to [label – (instruction address+3)]. The displacement is stored as a 16-bit or 24-bit signed integer in the LSBs of the instruction word. The displacement is added to the PC during the pipeline decode phase. Notice that because the PC is incremented by 1 in the fetch phase, the displacement is added to this incremented PC value. Syntax: expr (src) http://www.dncltech.com
  • 46. http://www.dncltech.com The 24-bit addressing mode encodes the program-control instructions (for example, BR, BRD, CALL, RPTB, and RPTBD). Depending on the instruction, the new PC value is derived by adding a 24-bit signed value in the instruction word with the present PC value. Bit 24 determines the type of branch (D = 0 for a standard branch or D = 1 for a delayed branch). Bit-Reversed Addressing http://www.dncltech.com
  • 47. http://www.dncltech.com The ’C3x can implement fast Fourier transforms (FFT) with bit-reversed addressing. Whenever data in increasing sequence order is transformed by an FFT, the resulting data is presented in bit-reversed order. To recover this data in the correct order, certain memory locations must be swapped. By using the bit-reversed addressing mode, swapping data is unnecessary. The data is accessed by the CPU in bit-reversed order rather than sequentially. For correct bit-reversed access, the base address of bit-reversed access, the base address must be located on a boundary given by the size of the FFT table. Similar to circular addressing, the base address of bit-reversed addressing must follow this criteria. 1. Base address must be aligned to a K-bit boundary (that is, the K LSBs of the starting address of the buffer/table must be 0) as follows: where: R = length of table/buffer K = number of 0s in the LSBs of the buffer/table starting address 2. Size of the buffer/table must be less than or equal to 64K (16 bits) The CPU bit-reversed operation can be illustrated by assuming an FFT table of size 2n. When real and imaginary data are stored in separate arrays, the n LSBs of the base address must be 0, and IR0 must be equal to 2n–1 (half of the FFT size). When real and imaginary data are stored in consecutive memory locations (Real0, Imaginary0, Real1, Imaginary1, Real2, Imaginary2, etc.), the n+1 LSBs of the base address must be 0, and IR0 must be equal to 2n (FFT size). For CPU bit-reversed addressing, one auxiliary register points to the physical location of data. Adding IR0 (in bit-reversed addressing) to this auxiliary register performs a reverse-carry propagation. IR0 is treated as an unsigned integer. To illustrate bit-reversed addressing, assume 8-bit auxiliary registers. Let AR2 contain the value 0110 0000 (96). This is the base address of the data in memory assuming a 16- entry table. Let IR0 contain the value 0000 1000 (8). Example 6–26 shows a sequence of modifications of AR2 and the resulting values of AR2. http://www.dncltech.com
  • 49. http://www.dncltech.com Many DSP algorithms, such as convolution and correlation, require a circular buffer in memory. In convolution and correlation, the circular buffer acts as a sliding window that contains the most recent data to process. As new data is brought in, the new data overwrites the oldest data by increasing the pointer to the data through the buffer in counter-clockwise fashion. When the pointer accesses the end of the buffer, the device sets the pointer to the beginning of the buffer. For example, Figure 1(a) shows a circular buffer that holds six values. Figure 1(b) shows how this buffer is implemented in the ’C3x memory space. Figure 2. shows this buffer after writing three values. Figure 3.shows this buffer after writing eight values. http://www.dncltech.com
  • 50. http://www.dncltech.com To implement a circular buffer in the ’C3x, the following criteria must be satisfied (more than one circular buffer can be implemented on the ’C3x as long as the size of the buffers are identical): 1. Specify the size of the circular buffer (R) by storing the length of the buffer in the block-size register (BK). The size of the buffer must be less than or equal to 64K (16 bits). 2. Align the start of the buffer to a K-bit boundary (that is, the K LSBs of the starting address of the circular buffer must be 0) by satisfying the following formula: where: R = length of circular buffer K = number of 0s in the LSBs of the circular buffer starting address http://www.dncltech.com
  • 51. http://www.dncltech.com In circular addressing, index refers to the K LSBs (from the K-bit boundary criteria) of the auxiliary register selected, and step is the quantity being added to or subtracted from the auxiliary register. Follow these two rules when you use circular addressing: 1. The step used must be less than or equal to the block size. The step size is treated as an unsigned integer. If an index register (IR) is used as a step increment or decrement, it is also treated as an unsigned integer. 2. The first time the circular queue is addressed, the auxiliary register must be pointing to an element in the circular queue. 3. The algorithm for circular addressing is as follows: If 0 ≤ index + step < BK: index = index + step. Else if index + step ≥ BK: index = index + step – BK. Else if index + step < 0: index = index + step + BK. Example 1. shows circular addressing operation. Assuming that all ARs are four bits, let AR0 = 0000 and BK = 0110 (block size of 6), shows a sequence of modifications and the resulting value of AR0. It also shows how the pointer steps through the circular queue with a variety of step sizes (both incrementing and decrementing). Circular Addressing *AR0++(5)% ; AR0 = 0 (0 value) *AR0++(2)% ; AR0 = 5 (1st value) *AR0– –(3)% ; AR0 = 1 (2nd value) *AR0++(6)% ; AR0 = 4 (3rd value) *AR0– –% ; AR0 = 4 (4th value) *AR0 ; AR0 = 3 (5th value) http://www.dncltech.com