Tensilica Instruction Extension

Tensilica Instruction Extension refers to the proprietary language that is used to customize Tensilica's Xtensa processor core architecture.
By using TIE, the user can customize the Xtensa architecture by adding custom instructions and register files, instantiating TIE Ports and Queues for multiprocessor communication, and adding pre-configured extensions (such as Tensilica's DSP). Software applications can greatly benefit from properly targeted user-defined instructions, while TIE ports and TIE queues facilitate multiprocessor communication by adding separate input and output interfaces to the processor core. Using the TIE language and Xtensa Xplorer toolkit, the generation and verification of the instructions used to extend the processor ISA are automated. Such automation helps to reduce the hardware verification time that typically consumes a large percentage of the project duration of a typical hardware developed for the same functionality.
History.
TIE was added by Tensilica to extend the instruction set of the Xtensa processors.
TIE Creation.
TIE code can be created in two ways. TIE can be:
Manual coding is similar to programming using Verilog, a Hardware description language. Automatic generation of TIE code is done using Xtensa Xpress tool. This is done by first compiling & executing the code using the Xplorer and Xtensa Xpress tools. Xpress analyses the code that will be executed on the processor and generates additional TIE instructions for the processor core. These additional instructions will be automatically substituted when the C/C++ compiler generates the assembly code, preventing any manual intervention. This provides a complete user abstraction to the automatic TIE generation process.
Interface to C/C++.
TIE extended instructions are called "operations" in TIE language. Since TIE compiler generates compiler intrinsics for each TIE operation, the TIE instructions can be invoked directly using the function call semantics of C language. The C compiler takes care of translating the TIE intrinsics into the appropriate instructions to be executed in the assembly code that is generated.
TIE Compilation.
The TIE compiler is used to compile code written in TIE language. TIE compiler automates the generation of the designer defined hardware instructions additions to the processor core.
TIE compilation produces the following outputs:
TIE Testing & Verification.
Once the code has been compiled using the TIE compiler, there are minimum two levels of verification & testing required to verify the functionality.