IP Library › Granted Patent US 10,539,609
Granted Patent B2
US 10,539,609 · App. 14/707,199 · Granted Jan 21, 2020

Method of converting high-level test specification language to low-level test implementation language

Inventors: Arthur Freitas (Toulouse, FR); Cedric Fau (Toulouse, FR); Cedric Labouesse (Aucamville, FR); Philippe Soleil (Aureville, FR); Pascal Sandrez (Toulouse, FR)
Assignee: NXP USA, Inc.
G01R31/2848
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,539,609
App. No.
14/707,199
Granted
Jan 21, 2020
Kind
B2
Abstract

A method comprising: recording test code defined in a high-level test specification language; and automated analysis of the test code defined in the high-level test specification language before a conversion of the high-level test specification language to a low-level test implementation language configured to enable testing of a target by a test module.

Claims (57)

1. A method comprising:

recording first test code defined in a high-level test specification language, wherein the first test code comprises a set of high-level instructions;

analyzing the first test code, wherein in analyzing the first test code, the method further comprises:

simulating a test of a target by a test module with the first test code;

for each high-level instruction, determining whether the high-level instruction is a serial instruction or a parallel instruction; and

for each high-level instruction, performing different estimates of time taken during testing to perform the high-level instruction in dependence upon said determination, wherein the performing different estimates of the time comprises estimating for each high-level instruction of the first test code defined in the high-level test specification language an upload time, an execution time, and a download time, the upload time being a time taken to upload data at the test module to perform a low-level instruction in the low-level test implementation language corresponding to the high-level instruction, the execution time being a time taken to execute the low-level instruction in the low-level test implementation language that corresponds to the high-level instruction, and the download time being a time taken to transfer data after execution of the low-level instruction in the low-level test implementation language that corresponds to the high-level instruction;

converting the first test code to second test code defined in a low-level test implementation language;

testing of the target by the test module using the second test code, wherein the performing different estimates operation is performed prior to the converting operation to determine an estimate of time taken to execute the portions of the second test code that are associated with corresponding portions of the first test code during the testing operation;

adding third test code defined in the low-level test implementation language to the second test code in response to testing of the target using the second test code; and

incorporating the third test code into the first test code.

2. A method as claimed in claim 1 , wherein the target is a real or simulated semiconductor device or integrated circuit.

3. A method as claimed in claim 1 , wherein, in analyzing the first test code, the method further comprises:

adapting the first test code.

4. A method as claimed in claim 3 , wherein, in adapting the first test code, the method further comprises:

removing a first portion of test code from the first test code;

adding a second portion of test code to the first test code; and

editing of a third portion of the first test code.

5. A method as claimed in claim 3 , wherein, in adapting the first test code the method further comprises:

adding a first portion of test code to the first test code, the first portion of test code being defined in the high-level test specification language; and

adding a second portion of test code to the second test code, the second portion of test code being defined in the low-level test implementation language.

6. A method as claimed in claim 3 , wherein, in adapting the first test code, the method further comprises:

adapting a first portion of the first test code in response to a change in a corresponding first portion of fourth test code defined in the low-level test implementation language.

7. A method as claimed in claim 1 , wherein, in analyzing the first test code, the method further comprises:

associating a portion of the first test code with a tag, and wherein in converting the first test code to the second test code, the portion of the first test code associated with the tag is converted into a corresponding portion of the second test code that is also associated with the tag.

8. A method as claimed in claim 1 , further comprising;

adding new test code to the first test code in response to definition of new low-level code in low-level test code corresponding to the test code, wherein the new test code is defined using the high-level test specification language if the new low-level code can be disassembled into high-level test specification language and is defined using the low-level test implementation language if the new low-level code cannot be disassembled into high-level test specification language.

9. A method as claimed in claim 1 , wherein in analyzing the first test code, the method further comprises:

detecting an operational problem within the first test code prior to converting the first test code to the second test code; and

flagging the operational problem.

10. A method as claimed in claim 1 , further comprising:

assessing simulated states of a device under test against expected states.

11. A method as claimed in claim 1 , further comprising:

assessing simulated pin states of the target for allowed and disallowed configurations of pin states.

12. A method as claimed in claim 11 , wherein a disallowed configuration of pin states exists because a pin is to be driven to two conflicting states or because a pin is to be overloaded.

13. A method as claimed in claim 1 , further comprising:

assessing simulated test module states for disallowed configurations of states.

14. A method as claimed in claim 1 , further comprising:

producing a data structure recording interconnections of pins of the target and instruments of the test module and states of pins determined by interconnected instruments.

15. An apparatus comprising:

a processor; and

a computer program code stored in memory that, when executed by the processor, performs a method comprising:

recording first test code defined in a high-level test specification language, wherein the first test code comprises a set of high-level instructions;

analyzing the first test code, wherein analyzing the first test code includes simulating a test of a target by a test module with the first test code, determining for each high-level instruction, whether the high-level instruction is a serial instruction or a parallel instruction, and performing different estimates of time taken during testing to perform the high-level instruction in dependence upon said determination, wherein the performing different estimates of the time comprises estimating for each high-level instruction of the first test code defined in the high-level test specification language an upload time, an execution time, and a download time, the upload time being a time taken to upload data at the test module to perform a low-level instruction in the low-level test implementation language corresponding to the high-level instruction, the execution time being a time taken to execute the low-level instruction in the low-level test implementation language that corresponds to the high-level instruction, and the download time being a time taken to transfer data after execution of the low-level instruction in the low-level test implementation language that corresponds to the high-level instruction;

converting the first test code to second test code defined in a low-level test implementation language;

testing of the target by the test module using the second test code, wherein the performing different estimates operation is performed prior to the converting operation to determine an estimate of time taken to execute the portions of the second test code that are associated with corresponding portions of the first test code during the testing operation;

adding third test code defined in the low-level test implementation language to the second test code in response to testing of the target using the second test code; and

incorporating the third test code into the first test code.

16. A tangible, non-transitory data carrier stored with computer program that, when run on a computer, performs a method comprising:

recording first test code defined in a high-level test specification language, wherein the first test code comprises a set of high-level instructions;

analyzing the first test code, wherein in analyzing the first test code, the method further comprises:

simulating a test of a target by a test module with the first test code;

for each high-level instruction, determining whether the high-level instruction is a serial instruction or a parallel instruction; and

performing different estimates of time taken during testing to perform the high-level instruction in dependence upon said determination, wherein the performing different estimates of the time comprises estimating for each high-level instruction of the first test code defined in the high-level test specification language an upload time, an execution time, and a download time, the upload time being a time taken to upload data at the test module to perform a low-level instruction in the low-level test implementation language corresponding to the high-level instruction, the execution time being a time taken to execute the low-level instruction in the low-level test implementation language that corresponds to the high-level instruction, and the download time being a time taken to transfer data after execution of the low-level instruction in the low-level test implementation language that corresponds to the high-level instruction;

converting the first test code to second test code defined in a low-level test implementation language;

testing of the target by the test module using the second test code, wherein the performing different estimates operation is performed prior to the converting operation to determine an estimate of time taken to execute the portions of the second test code that are associated with corresponding portions of the first test code during the testing operation;

adding third test code defined in the low-level test implementation language to the second test code in response to testing of the target using the second test code; and

incorporating the third test code into the first test code.

Assignments (15)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 20, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037565/0510 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 20, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037565/0527 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0859 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 6, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036284/0363 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 6, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036284/0339 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 6, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036284/0105 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2015
From: FREITAS, ARTHUR; FAU, CÉDRIC; LABOUESSE, CÉDRIC; SOLEIL, PHILIPPE; SANDREZ, PASCAL
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 035594/0729 →
Priority Claims (1)
WO PCT/IB2014/002945 · Dec 8, 2014 · international
Continuity (1)
Related Publication 20160161544A1 · Jun 9, 2016