New Methods in Software Test of System-on-Silicon-based Solutions Lauta, May 2005 - Software verification platforms for SoC based Systems with continued availability over the entire product life cycle are rapidly becoming more important due to increasing complexity and time-to-market constraints. The high demand in terms of flexibility and efficiency however requires a paradigm shift to modular component-based concepts.
System-on-Chip-based solutions are coming on strong but their superior features and benefits are rarely exploited to the full extent possible, for many reasons. Integrated debug functions allow flexible access to complex chip-internal information that should be utilized not only in design but also in production and in the field. This however requires entirely new debug strategies. Also, distribution of software functions over multiple processor cores implies new verification models that take into account testing of the overall functionality and synchronization of each processor's individual software. On top of that, the integration of complete systems into one chip demands capabilities to extend the software test environment to meet upcoming requirements in a modular way. Therefore an open test platform, which allows for later insertion and extension of debug functions, is the indispensable condition for high efficiency. Modern component-based operating systems such as COM, CORBA or NET already provide the appropriate base technology for these strategies.
Infineon's AUDO-NG family shows a good example of how a software design can be inserted within a complex system simulation and test environment. The TC1796 is the first specimen of a new familiy of 32-Bit automotive microcontrollers. It includes two processor kernels, three internal busses, internal RAM and FLASH memory, as well as lots of automotive-specific peripherals. The primary applications for this new breed of silicon-based systems are engine management and control surveillance; applications distinguished by a complex and extremely dynamic processor environment.
In order to make such a complex system testable over its entire product life cycle, it is necessary to design an entirely new concept of an on-chip emulator. It is implemented and manufactured in a special layout version, called the TC1796ED. This consists of the TC1796 plus an Emulator Side Booster (ESB), which includes the functionality of a complete emulator for each of the relevant system-busses - one emulator each for the TriCore and PCP busses plus one emulator each for the two peripheral busses. In addition, there is an integrated logic function that connects events of the four respective emulators and a trace memory.
Of course, the system supports simple debugging mechanisms such as single step operation mode, but the simultaneous tracing of system states is especially critical for more demanding tasks such as software profiling and calibration. Because of limited on-chip trace memory the amount of data must be minimized. Sophisticated mechanisms for trigger signal generation and for trace qualification make sure that trace information were not lost. For this purpose there are a large number of comparators provided for program and data addresses as well as for data itself. The output of these comparators, along with other key signals, are routed to a combinatorial logic block, as well as to event counters and timers. With these tools, very complex interdependencies can be defined as triggers, and state machines can be implemented.
This powerful debug logic requires initializing as many as 500 32-bit registers in preparation for each distinctive analysis task. Such a task requires entirely new approaches and tools for support. pls developed a new approach with three levels of abstraction, to give a maximum degree of freedom in the description of the analysis task while at the same time preserving precise control.
The first level is an assembler-like notation, in which the resources of the emulator hardware can be utilized directly. The language amount of this notation, called "Trace Qualification Language" (TQL), is heavily oriented towards the combinatorial logic of the emulator hardware for generation and evaluation of trigger signals and trace data. The configuration information for the combinatorial connections, which is loaded into the ESB as register content, can be directly generated by assembly of a TQL script.
Here is an example of the applied TQL code:
tr1evt.data_adr1 = 0xa200045a; tr1evt.data_adr2 = 0xa200045b; ... tr1evt.data_range_read = false; tr1evt.data_range_write = true; ... tr1evt.code_range_exec = false; tr1evt.function = OR; signal readdata; signal writedata; readdata = tr0evt.out; writedata = tr1evt.out; tsu.prescaler = 1ms; | The second level is a notation that is comparable with a high level language in a syntax close to C. This language, called "High Level TQL" (HTQL), allows a more abstract description of analysis tasks without a detailed knowledge of given hardware resources. It does this by describing the desired trace configuration by means of a state machine. Thus, more complex debug tasks can be described in a comparatively simple way. For this purpose, the language abstraction of HTQL is closer to high level language constructs and only reflects a limited amount of the ESB hardware implementation. The core constructs of a HTQL-described state machine are the StateLabel statements, which represent the individual states. The appropriate IF-THEN-ELSE constructs then trigger the action and changeover of states (GOTO) under predetermined conditions (events).
The third level is the Graphic Entry (GE), a graphical editor, which generates the appropriate HTQL code from a graphical representation of a state machine. In effect, it operates as a front end of the HTQL compiler. Often-used configurations of individual states are filed in a predefined library, which can be extended or supplemented by user designs. XML was chosen as a data format to achieve a high degree of modularity, flexibility and usability. Analysis tasks set up on the basis of library elements can be saved and loaded in XML format. Besides supplementary user information there are three components that describe a state: the graphical representation, the parameter definition, and a template for the appropriate HTQL section. This method makes possible to provide a HTQL construct as a graphical element, if desired.
The advantages of this new approach for programming highly complex on-chip emulators are: - Test and measurement tasks can be described in hierarchical order and remain available for reuse as library functions.
- Utilization of the automatic resource administration allows dynamically generated multiple test tasks, as well as automatic loading into the emulator.
- It enables efficient use of complex debug systems without detailed knowledge of the underlying emulation hardware. This is due to the high abstraction level of the new language.
But the power of the language is not all to be considered. The structure of SoC-based embedded control applications nowadays usually incorporates various specialized cores, which take over highly dedicated tasks within the overall system. As a result, complex software mechanisms are most often required to support the individual cores in synchronizing their task parts. For a future multi-core test and debug environment this means that control and visualization of all required software components needs to be implemented under one consistent interface. Synchronization of all processes under the integrated debug hardware is required for tasks such as starting and stopping of individual cores simultaneously. Extensibility is likewise important, as the inevitable need to monitor and visualize additional signal sources in the system. Semiconductor manufacturers as well as tool suppliers are faced with new challenges due to a rapidly advancing system integration. Ultimately, an efficient verification of ever more complex systems over their entire life cycle requires: - design and test of systems with distributed intelligence
- powerful and flexible visualization of system states in a complex system
- use of open platforms and new tools to increase program design efficiency
- flexible ability to use existing tools beyond the product design phase, into areas of production, service and maintenance
The market is driving rapidly increasing system demands and continuously reduced product cycles. The market is right to demand it, but for the market the bottom line is: there will not be any truly optimized solutions in the future without close collaboration among semiconductor manufacturers, tool suppliers and industrial customers. Trademarks TriCore is a registered trademark of Infineon Technologies AG. Editors contact pls Programmierbare Logik & Systeme GmbH Stefan Weisse Technologiepark D-02991 Lauta Phone: +49 35722 / 384 - 0 Fax: +49 35722 / 384 - 69 Email:
This e-mail address is being protected from spam bots, you need JavaScript enabled to view it
Internet: http://www.pls-mc.com |