IP Library Granted Patent US 8,504,973
Granted Patent B1
US 8,504,973 · App. 13/088,300 · Granted Aug 6, 2013

Systems and methods for generating a test environment and test system surrounding a design of an integrated circuit

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 8,504,973
App. No.
13/088,300
Granted
Aug 6, 2013
Kind
B1
Abstract

Systems and methods for generating and using a test environment and a test system surrounding a design are described. The systems and methods may involve using a same application software for creating a design and for receiving a selection to generate the test environment and the test system. In response to receiving the selection, the systems and methods may execute a verification tool to create the test environment and test system. Moreover, a user may not fill in templates of components of the verification tool. The verification tool is integrated within the application software.

Claims (122)

1. A method comprising:

receiving, at a processing unit, a design selection from a user;

converting the design selection into a register transfer layer (RTL) design under test; generating, with the processing unit, in response to receiving the design selection, a test environment and a test system, the test system coupled with the RTL design under test; and

verifying, using the test environment, whether the RTL design under test is functional or nonfunctional by:

determining whether the RTL design under test is in compliance with a memory-mapped protocol, a streaming protocol, or a custom protocol, wherein said generating the test environment and the test system comprises:

generating a streaming monitor, a streaming bus functional module (BFM), a streaming driver, and a streaming generator in response to determining that the design is in compliance with the streaming protocol, wherein each of the streaming monitor, streaming BFM, streaming driver, and streaming generator is in compliance with the streaming protocol;

coupling the RTL design under test to the streaming monitor;

coupling the streaming monitor to the streaming BFM;

coupling the streaming BFM to the streaming driver; and

coupling the streaming driver to the streaming generator.

2. The method of claim 1 further comprising:

inserting a first protocol generator within the test environment and test system in response to said receiving, wherein the first protocol generator is in compliance with a first protocol;

receiving a determination to use a second protocol instead of the first protocol;

converting a first protocol to second protocol in response to receiving the determination to use the second protocol; and

replacing the first protocol generator with a second protocol generator in response to receiving the determination to use the second protocol.

3. The method of claim 1 wherein verifying whether the RTL design under test is functional or nonfunctional comprises:

determining whether the RTL design under test is in compliance with a memory-mapped protocol;

generating a stimulus in accordance with the memory-mapped protocol in response to determining that the RTL design under test is in compliance with the memory-mapped protocol;

driving the stimulus to test the RTL design under test;

storing an event related to the stimulus;

monitoring whether a response to the stimulus is received, wherein said response is generated by the design; and

sending the response in response to determining that the response is received.

4. The method of claim 1 wherein verifying whether the RTL design under test is functional or nonfunctional comprises:

determining whether the design is in compliance with a memory-mapped protocol, a streaming protocol, or a custom protocol;

generating a stimulus in accordance with the streaming protocol in response to determining that the design is in compliance with the streaming protocol;

driving the stimulus to the design;

storing an event related to the stimulus;

monitoring whether a response to the stimulus is received from the design; and

sending the response in response to determining that the response is received.

5. The method of claim 1 , wherein verifying whether the RTL design under test is functional or nonfunctional comprises:

determining whether the design is in compliance with a custom protocol;

generating a stimulus in accordance with the custom protocol in response to determining that the design is in compliance with the custom protocol;

driving the stimulus to the design; and

storing an event related to the stimulus.

6. The method of claim 1 further comprising:

receiving a selection to use a scoreboard; and

verifying functionality of the RTL design under test by executing the scoreboard.

7. The method of claim 1 further comprising:

generating a first stimulus in response to said receiving;

generating a second stimulus in response to said receiving;

receiving a selection to execute a scoreboard;

generating a first callback based on the first stimulus;

generating a second callback based on the second stimulus; and

executing the first and second callbacks simultaneously by executing the scoreboard.

8. A method comprising:

receiving, at a processing unit, a design selection from a user;

converting the design selection into a register transfer layer (RTL) design under test; generating, with the processing unit, in response to receiving the design selection, a test environment and a test system, the test system coupled with the RTL design under test; and

verifying, using the test environment, whether the RTL design under test is functional or nonfunctional by:

determining whether the RTL design under test is in compliance with a memory-mapped protocol, a streaming protocol, or a custom protocol, wherein said generating the test environment and the test system comprises:

generating a memory-mapped monitor, a memory-mapped bus functional module (BFM), a memory-mapped driver, and a memory-mapped generator in response to determining that the design is in compliance with the memory-mapped protocol, wherein each of the memory-mapped monitor, memory-mapped BFM, memory-mapped driver, and memory-mapped generator is in compliance with the memory-mapped protocol;

coupling the RTL design under test to the memory-mapped monitor;

coupling the memory-mapped monitor to the memory-mapped BFM;

coupling the memory-mapped BFM to the memory-mapped driver; and

coupling the memory-mapped driver to the memory-mapped generator.

9. A method comprising:

receiving, at a processing unit, a design selection from a user;

converting the design selection into a register transfer layer (RTL) design under test; generating, with the processing unit, in response to receiving the design selection, a test environment and a test system, the test system coupled with the RTL design under test; and

verifying, using the test environment, whether the RTL design under test is functional or nonfunctional by:

determining whether the RTL design under test is in compliance with a memory-mapped protocol, a streaming protocol, or a custom protocol, wherein said generating the test environment and the test system comprises:

generating a custom bus functional module (BFM), a custom driver, and a custom generator in response to determining that the design is in compliance with the custom protocol, wherein each of the custom BFM, custom driver, and custom generator is in compliance with a custom protocol, wherein the custom protocol is other than a memory-mapped protocol and a streaming protocol;

coupling the RTL design under test to the custom BFM;

coupling the custom BFM to the custom driver; and

coupling the custom driver to the custom generator.

10. A method comprising:

receiving, at a processing unit, a design selection from a user;

generating, with the processing unit, in response to receiving the design selection a test environment and a test system; and

verifying, using the test environment, whether the RTL design under test is functional or nonfunctional;

generating a first set of components that is in compliance with a first protocol and a second set of components that is in compliance with a second protocol in response to said receiving, wherein the components of the first set comprise a first component and a second component, wherein the components of the second set comprise a third component and a fourth component;

generating a first flow of information between the first component and the second component;

generating a second flow of information between the third component and the fourth component;

receiving a selection to create a dependency between the first flow of information and the second flow of information;

inserting a controller between the first component and the second component in response to said receiving to create the dependency;

inserting the controller between the third component and the fourth component in response to said receiving to create the dependency; and

modifying dependency between the first flow of information and the second flow of information; wherein

verifying whether the RTL design under test is functional or nonfunctional comprises:

determining whether the RTL design under test is in compliance with a memory-mapped protocol, a streaming protocol, or a custom protocol, wherein said generating the test environment and the test system comprises:

generating a streaming monitor, a streaming bus functional module (BFM), a streaming driver, and a streaming generator in response to determining that the design is in compliance with the streaming protocol, wherein each of the streaming monitor, streaming BFM, streaming driver, and streaming generator is in compliance with the streaming protocol;

coupling the RTL design under test to the streaming monitor;

coupling the streaming monitor to the streaming BFM;

coupling the streaming BFM to the streaming driver; and

coupling the streaming driver to the streaming generator.

11. A system comprising:

a memory operable to store data; and

a processor coupled with said memory, said processor operable to:

receive a design selection from a user using a software application;

convert the design selection into a register transfer layer (RTL) design under test; and

generate, in response to the reception of the design selection, a test environment and a test system, the test system coupled with the RTL design under test;

verify, using the test environment, whether the RTL design under test is functional or nonfunctional by:

determining whether the design is in compliance with a memory-mapped protocol, a streaming protocol, or a custom protocol;

generating a streaming monitor, a streaming bus functional module (BFM), a streaming driver, and a streaming generator in response to making the determination that the design is in compliance with the streaming protocol, wherein each of the streaming monitor, streaming BFM, streaming driver, and streaming generator is in compliance with the streaming protocol;

coupling the design to the streaming monitor;

coupling the streaming monitor to the streaming BFM;

coupling the streaming BFM to the streaming driver; and

coupling the streaming driver to the streaming generator.

12. A system comprising:

a memory operable to store data; and

a processor coupled with said memory, said processor operable to:

receive a design selection from a user using a software application;

convert the design selection into a register transfer layer (RTL) design under test; and

generate, in response to the reception of the design selection, a test environment and a test system, the test system coupled with the RTL design under test

verify, using the test environment, whether the RTL design under test is functional or nonfunctional by:

determining whether the RTL design under test is in compliance with a memory-mapped protocol, a streaming protocol, or a custom protocol;

generating a custom bus functional module (BFM), a custom driver, and a custom generator in response to making the determination that the design is in compliance with the custom protocol, wherein each of the custom BFM, custom driver, and custom generator is in compliance with the custom protocol;

coupling the design to the custom BFM;

coupling the custom BFM to the custom driver; and

coupling the custom driver to the custom generator.

13. A non-transitory computer-readable medium having instructions stored thereon that, if executed by a computing device, cause the computing device to perform operations comprising:

receiving a design selection from a user using a software application;

converting the design selection into a register transfer layer (RTL) design under test;

generating, in response to receiving the design selection a test environment and a test system, the test system coupled with the RTL design under test; and

verifying, using the test environment, whether the RTL design under test is functional or nonfunctional by:

determining whether the RTL design under test is in compliance with a memory-mapped protocol, a streaming protocol, or a custom protocol, wherein said generating the test environment and the test system comprises:

generating a streaming monitor, a streaming bus functional module (BFM), a streaming driver, and a streaming generator in response to determining that the design is in compliance with the streaming protocol, wherein each of the streaming monitor, streaming BFM, streaming driver, and streaming generator is in compliance with the streaming protocol;

coupling the RTL design under test to the streaming monitor;

coupling the streaming monitor to the streaming BFM;

coupling the streaming BFM to the streaming driver; and

coupling the streaming driver to the streaming generator.

14. The computer-readable medium of claim 13 , wherein the verifying whether the RTL design under test is functional or nonfunctional comprises:

inserting a first protocol generator within the test system and test environment in response to receiving the selection to create the test system and test environment, wherein the first protocol generator is in compliance with a first protocol;

receiving a determination to use a second protocol instead of the first protocol;

inserting a first protocol to second protocol converter in response to receiving the determination to use the second protocol; and

replacing the first protocol generator with a second protocol generator in response to receiving the determination to use the second protocol generator.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2011
From: LEONG, WAI KHEONG; ORTHNER, KENT
To: ALTERA CORPORATION
Reel/Frame 026524/0288 →