System-on-a-chip (SoC) processor cores are configurable, but the extent of changes possible by an SoC designer varies significantly. Fixed processor cores like ARM, MIPS, and PowerPC tend to limit the changes that can be made to the basic configuration. ARC Cores takes a more flexible approach, while retaining a 32-bit processing core. ARC Cores' ARCtangent architecture has been used in SoCs, ASICs, ASSPs, and FPGAs. It doesn't include floating-point support.
The ARCtangent-A5 adds the ARCompact 16-bit compressed instruction set. It allows a mix of 16- and 32-bit instructions, providing a 30% reduction in code size. Instructions are aligned on 16-bit boundaries. The A4 and A5 aren't binary compatible, but there's a conversion program that takes A4 binaries and generates A5 binaries. The core can be very small (10.5 kgates), though this includes no cache.
Besides making adjustments to the processor core, the ARChitect design tool can select peripherals. It's more of an SoC design tool than a processor configuration tool. Although the 32-bit architecture must be retained, almost anything else can change, including registers and interfaces. www.arccores.com
Complete processor design flexibility has its chores. In particular, toolsets and operating systems must be created, or developers will have to create them on their own. Tensilica's design tool Xtensa takes this into account when designers develop a custom processor design.
Xtensa is remarkably easy to use. It shows an estimate of performance and real estate costs during the design process. Tradeoffs often mean giving up a megahertz or two of clock speed for features like wider buses or larger caches. More features translates into more power consumption. Tensilica's approach offers the advantage of estimates made up front rather than after a design has been implemented.
Xtensa has a conventional processor architecture and instruction set. The instruction set implemented on a particular system reflects the target attributes selected when the system is designed.
Tensilica's TIE (Tensilica Instruction Extension) technology enables implementation of custom instructions. Although it's similar to in-struction extensions in other core designs, TIE provides a more flexible environment for taking advantage of core resources.
Real-time operating-system support includes VxWorks and ATI Nucleus Plus. C and C++ compilers, assemblers, and debuggers for these platforms are generated with a system design. www.tensilica.com