Tensilica Instruction Extension
   HOME

TheInfoList



OR:

Tensilica Instruction Extension refers to the proprietary language that is used to customize
Tensilica Tensilica was a company based in Silicon Valley in the semiconductor intellectual property core business. It is now a part of Cadence Design Systems. Tensilica is known for its customizable Xtensa microprocessor core. Other products include: HiF ...
's
Xtensa Tensilica was a company based in Silicon Valley in the semiconductor intellectual property core business. It is now a part of Cadence Design Systems. Tensilica is known for its customizable Xtensa microprocessor core. Other products include: HiF ...
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: #Manually written and attached to the required processor core. #Automatically generated using Xtensa Xpress. Manual coding is similar to programming using
Verilog Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits at the register-transfer level of abstraction. It is also ...
, a
Hardware description language In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, and most commonly, digital logic circuits. A hardware description language e ...
. Automatic generation of TIE code is done using Xtensa Xpress tool. This is done by first compiling and 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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
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: #A Modeling Environment that can be simulated using ISS #A Compiler Toolchain for the Configured Processor Core that includes the TIE intrinsics to be used #Hardware RTL Source Code for TIE and
EDA EDA or Eda may refer to: Computing * Electronic design automation * Enterprise Desktop Alliance, a computer technology consortium * Enterprise digital assistant * Estimation of distribution algorithm * Event-driven architecture * Exploratory ...
scripts for synthesis and Verification


TIE testing and verification

Once the code has been compiled using the TIE compiler, there are minimum two levels of verification and testing required to verify the functionality. #Software testing: Using the intrinsic interfaces of TIE operations from C/C++, the TIEs are first integrated with the C code that tests the required application functionality. After such integration, testing of the software running on the Xtensa core is performed by using the software simulator on PC (The Xtensa simulator on PC is called Instruction Set Simulator - ISS). #Hardware verification: The TIE compiler's output RTL and Netlists are given as input to various simulators like Modelsim. the required functionality of the TIE is verified by hardware simulation. Such verification requires a Hardware/Software co-simulation environment to be prepared, where the required software can be tested for its functionality.


Example

{{Empty section, date=July 2010


External links

* TIE syntax highlight script for Vim editor : http://www.vim.org/scripts/script.php?script_id=1964
TIE Tie has two principal meanings: * Tie (draw), a finish to a competition with identical results, particularly sports * Necktie, a long piece of cloth worn around the neck or shoulders Tie or TIE may also refer to: Engineering and technology * Ti ...