140 likes | 238 Views
TMS320C6416. VLIW Architecture DSP. TMS320C6416. Manufactured in year 2000, Texas Instruments C6000 Series The fastest DSP of its time Other variants C6414, C6415. TMS320C6416. TMS320C6416. Maximum clock speed 720 MHz 1.39 ns instruction cycle time Eight 32-bit instruction per cycle
E N D
TMS320C6416 VLIW Architecture DSP
TMS320C6416 • Manufactured in year 2000, Texas Instruments • C6000 Series • The fastest DSP of its time • Other variants C6414, C6415
TMS320C6416 • Maximum clock speed 720 MHz • 1.39 ns instruction cycle time • Eight 32-bit instruction per cycle • Twenty eight operations per cycle • 5760 MIPS
TMS320C6416 • Advance VLIW DSP core (VelociTI.2) • Eight independent functional units Functional units handle load/store and arithmetic operations • 6 ALUs Each supports single 32-bit, dual 16-bit or quad 8-bit arithmetic operations per clock cycle • Two multiplier support Four 16x16 multiply (32-bit result), or eight 8x8 multiply (16- bit result) operations per clock cycle
TMS320C6416 • 64 32-bit general purpose registers • 8-bit overflow protection • Veterbi Decoder Coprocessor (VCP) Supports over 600 7.95 Kbps Adaptive Multi-rate (AMR), an audio compression scheme • Turbo Processor Coprocessor (TCP) Supports up 7 2-Mbps or 43 384-Kbps Third Generation Partnership Project (3GPP), another compression scheme
TMS320C6416 • L1 cache memory (16K byte) L1P Program Cache used direct mapped scheme. • L1 16K byte L1D Data Cache uses 2-way set associative scheme. • 1MB L2 cache memory.
TMS320C6416 • Two External Memory Interfaces (EMIF) One EMIF-A 64-bit, one EMIF-B 16-bit • Static Ram (SRAM) and Erasable/Programmable Rom (EPROM) Asynchronous Memories • Synchronous Dynamic Ram (SDRAM) Synchronous Burst Static Ram (SBSRAM) Synchronous Memories
TMS320C6416 • Code Composer, a Development Tool
TMS320C6416 • Code Composer (File Browser)
TMS320C6416 • Code Composer (Hello World.C) /* ======== hello.c ======== */ #include <stdio.h> #include "hello.h" #define BUFSIZE 30 struct PARMS str = { 2934, 9432, 213, 9432, &str }; /* * ======== main ======== */ void main() { #ifdef FILEIO int i; char scanStr[BUFSIZE]; char fileStr[BUFSIZE]; size_t readSize; FILE *fptr; #endif /* write a string to stdout */ puts("hello world!\n");
TMS320C6416 • Code Composer (Hello World.C) continue #ifdef FILEIO /* clear char arrays */ for (i = 0; i < BUFSIZE; i++) { scanStr[i] = 0 /* deliberate syntax error */ fileStr[i] = 0; } /* read a string from stdin */ scanf("%s", scanStr); /* open a file on the host and write char array */ fptr = fopen("file.txt", "w"); fprintf(fptr, "%s", scanStr); fclose(fptr); /* open a file on the host and read char array */ fptr = fopen("file.txt", "r"); fseek(fptr, 0L, SEEK_SET); readSize = fread(fileStr, sizeof(char), BUFSIZE, fptr); printf("Read a %d byte char array: %s \n", readSize, fileStr); fclose(fptr); #endif }
TMS320C6416 • Code Composer (Graph Options Window)
TMS320C6416 • Code Composer (For more details) http://focus.ti.com/lit/ug/spru301c/spru301c.pdf