Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Self checking test templates via synthesizable assertions

IP.com Disclosure Number: IPCOM000244285D
Publication Date: 2015-Nov-30
Document File: 3 page(s) / 28K

Publishing Venue

The IP.com Prior Art Database

Abstract

The method entails the modeling of a test template that, in addition to the known general skeleton of the test, includes also a set of assertions. These assertions describe properties that are to be validated at given points in the test. The properties can be written in any synthesizable assertion language (e.g., simple logical expression, or more complex languages such as SVA) and can also include any of the following three types of entities: - A reference to an architectural resource. (e.g., a reference to a general purpose register that the generator will choose to be an operand of an instruction) - A reference to a generator resource. (e.g., a number of instructions to be generated that the generator chooses at random) - A reference to a simulator resource. (e.g., a micro-architectural resource such as the cache) The "augmented" test template is then used to create an instance of the template which is a test program. The assertions in the template are then also synthesized to machine code and a compare instruction with appropriate branches that follow it are generated in the test program to inform whether the expected results of the test were verified via the assertions.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 49% of the total text.

Page 01 of 3

Self checking test templates via synthesizable assertions

Some hardware verification tools work by automatic generation of test programs that include processor instructions

The tests are run on the HW or on a simulation of the HW.

Our solution is part of an automatic test program generator tool that works based on a test-template provided by the tool user The test template include user directives that specify the desired test properties -

of data types, branch direction, etc.).

A central issue is how to check if the test program triggered a bug in the tested HW.

There are several known checking techniques, elaborated in section 2 below.

Their problems are that they are limited in the types of checking that they can perform, the types of test programs that they can be applied to

    The invention entails the modeling of a test template that, in addition to the known general skeleton of the test, includes also a set of assertions. These assertions describe properties that are to be validated at given points in the test. The properties can be written in any synthesizable assertion language (e.g., simple logical expression, or more complex languages such as SVA) and can also include any of the following three types of entities:

- A reference to an architectural resource. (e.g., a reference to a general purpose register that the generator will choose to be an operand of an instruction)

- A reference to a generator resource. (e.g., a number of instructions to be generated that the generator chooses at random)

- A reference to a simulator resource. (e.g., a micro-architectural resource such as the cache)

    The "augmented" test template is then used to create an instance of the template which is a test program. The assertions in the template are then also synthesized to machine code and a compare instruction with appropriate branches that follow it are generated in the test program to inform whether the expected results of the test were verified via the assertions.

    This method solves the problems presented in the previous section by the existing methods:

- It allows to check complex relations between resources

- It can be applied to non-deterministic tests.

- It does not require the test designer to write machine code specifically tailored to the test program, but rather declarative assertions corresponding to the template.

- It provides the capability to write assertions for a specific test template and not the generic assertions that describe "universal laws".

    We propose to extend the test template language with assertions that can be added in specified points in the test - including intermediate or final points.

The assertions would be written in some synthesizable assertion language.

The test generator would synthesize machine code for the assertions, and the machine code would be placed in the specified points in the generated test program that corresponds to the test template.

The synthesized code for the assertion would include some bra...