IP Library › Granted Patent US 12,724,070
Granted Patent B1
US 12,724,070 · App. 18/215,015 · Granted Sep 1, 2026

Seamless universal verification methodology

Inventors: Sneha Prabhu Math (San Jose, CA); Udhay Sankar Venugopal (Austin, TX)
Assignee: Amazon Technologies, Inc.
G01R31/318307G01R31/318314G06F30/3308G01R31/318357G01R31/3187G01R31/31901G01R31/31903G01R31/31917G06F11/25G06F11/261G06F11/263G06F11/267G06F11/273G06F30/331G06F30/367G06F30/398
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 12,724,070
App. No.
18/215,015
Granted
Sep 1, 2026
Kind
B1
Abstract

Universal Verification Methodology (UVM) for testing an integrated circuit includes receiving a configuration object having an address map code. A template code is enabled to be associated with the testing and it includes at least specifications associated with the UVM. A utility module is compiled to provide a model and a testbench environment within the UVM, where the model and the testbench environment are represented by a first class script and that is based in part on input from the template code and from the configuration object. A change is determined in the configuration object and a second class script is automatically generated using the utility module and based in part on the change in the configuration object, where the specifications remain unchanged for the second class script. The integrated circuit is tested using the second class script.

Claims (45)

1 . A system, comprising:

at least one processor and memory comprising instructions that when executed by the at least one processor causes the system to:

receive a configuration object comprising an address map code, the configuration object to be used to test an integrated circuit using Universal Verification Methodology (UVM);

enable a template code to be associated with the testing and comprising at least specifications associated with the UVM;

compile a utility module to provide a model and a testbench environment within the UVM, the model and the testbench environment represented by a first class script and the utility module based in part on input from the template code and from the configuration object;

determine a change in the configuration object;

automatically generate a second class script using the utility module and based in part on the change in the configuration object, wherein the specifications remain unchanged for the second class script; and

test the integrated circuit using the second class script.

2 . The system of claim 1 , wherein the address map code comprises a register transfer language (RTL) code or comprises YAML Ain′t Markup Language® code.

3 . The system of claim 1 , wherein the specifications comprise SoC (System On Chip) or IP (Intellectual Property) block data for testing SoC or IP blocks associated with the integrated circuit.

4 . The system of claim 1 , wherein the first class script and the second class script each comprise testing requirements within the model and within the testbench environment for a control and status register (CSR) of the integrated circuit.

5 . The system of claim 1 , wherein the utility module comprises a macro-based utility to provide an expansion sequence within the template code.

6 . The system of claim 1 , wherein the address map comprises addresses and values for a plurality of registers within the integrated circuit and wherein the change in the configuration object allows the second class script to change a memory content and an address map content of the model relative to the first class script.

7 . A computer-implemented method comprising:

compiling a utility module to provide a model and a testbench environment within a Universal Verification Methodology (UVM) system, the model and the testbench environment represented by different classes of a first class script and the utility module based in part on input from a template code and input from a configuration object, the configuration object comprising an address map code and the testbench environment comprising agents to test an integrated circuit using the UVM system;

determining a change in the configuration object;

automatically generating a second class script using the utility module and based in part on the change in the configuration object, wherein specifications in the template code and associated with the UVM system remain unchanged for the second class script; and

providing the second class script for execution to test the integrated circuit.

8 . The computer-implemented method of claim 7 , wherein the configuration object comprises a register transfer language (RTL) code or comprises YAML Ain′t Markup Language® code.

9 . The computer-implemented method of claim 7 , wherein the specifications comprise SoC (System On Chip) or IP (Intellectual Property) block data for testing SoC or IP blocks associated with the integrated circuit.

10 . The computer-implemented method of claim 7 , wherein the first class script and the second class script comprise testing requirements for a control and status register (CSR) of the integrated circuit.

11 . The computer-implemented method of claim 7 , wherein the utility module comprises a macro-based utility to provide an expansion sequence within the template code.

12 . The computer-implemented method of claim 7 , wherein the address map comprises addresses and values for a plurality of registers within the integrated circuit and wherein the change in the configuration object allows the second class script to change a memory content and an address map content of the model relative to the first class script.

13 . The computer-implemented method of claim 7 , further comprising:

receiving the configuration object and the template code in an interface that is associated with or to be associated with the UVM system;

storing the template code in a storage associated with a client device;

receiving the change to the configuration object using the interface; and

providing the changes to the utility module based in part on the change to the configuration object and using the template code from the storage by repeating the compiling with the changes to the utility module.

14 . The computer-implemented method of claim 7 , wherein the changes provide a different address map or provide differences in the address map for the integrated circuit.

15 . The computer-implemented method of claim 7 , further comprising:

overwriting memory contents and address map contents of the UVM system based in part on the changes to the configuration object, wherein classes associated with the memory contents and the address map contents of the second class script provide new memory contents and a new address map to be used with the testbench environment.

16 . A non-transitory computer-storage medium storing instructions configured to instruct at least one processor to:

compile a utility module to provide a model and a testbench environment within a Universal Verification Methodology (UVM) system, the model and the testbench environment represented by different classes of a first class script and the utility module based in part on input from a template code and input from a configuration object, the configuration object comprising an address map code and the testbench environment comprising agents to test an integrated circuit using the UVM system;

determine a change in the configuration object;

automatically generate a second class script using the utility module and based in part on the change in the configuration object, wherein specifications in the template code and associated with the UVM system remain unchanged for the second class script; and

execute the second class script within the UVM environment to test the integrated circuit.

17 . The non-transitory computer-storage medium of claim 16 , wherein the instructions configured to further instruct the at least one processor to:

overwrite memory contents and address map contents of the UVM system based in part on the changes to the configuration object, wherein classes associated with the memory contents and the address map contents of the second class script provide new memory contents and a new address map to be used with the testbench environment.

18 . The non-transitory computer-storage medium of claim 16 , wherein the instructions configured to further instruct the at least one processor to:

receive the configuration object and the template code in an interface that is associated with or to be associated with the UVM system;

store the template code in a storage associated with a client device;

receive the change to the configuration object using the interface; and

provide the changes to the utility module based in part on the change to the configuration object and using the template code from the storage by repeating the compiling with the changes to the utility module.

19 . The non-transitory computer-storage medium of claim 16 , wherein the address map comprises addresses and values for a plurality of registers within the integrated circuit and wherein the change in the configuration object allows the second class script to change a memory content and an address map content of the model relative to the first class script.

20 . The non-transitory computer-storage medium of claim 16 , wherein the utility module comprises a macro-based utility to provide an expansion sequence within the template code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2023
From: MATH, SNEHA PRABHU; VENUGOPAL, UDHAY SANKAR
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 064087/0193 →
References Cited (41)
US 7246333B2 · Bingham · 2007 [cited by examiner]
US 7526742B1 · Edwards · 2009 [cited by examiner]
US 9460261B2 · Raghavan · 2016 [cited by examiner]
US 9547041B2 · Siva · 2017 [cited by examiner]
US 9836372B1 · Khan · 2017 [cited by examiner]
US 10289779B2 · Wolff · 2019 [cited by examiner]
US 10310014B1 · Kumar · 2019 [cited by examiner]
US 11250191B1 · Bachchu · 2022 [cited by examiner]
US 20150294039A1 · Arbel · 2015 [cited by examiner]
US 20150302126A1 · Hamid · 2015 [cited by examiner]
US 20150324505A1 · James · 2015 [cited by examiner]
US 20160328505A1 · James · 2016 [cited by examiner]
US 20170115969A1 · Pendharkar · 2017 [cited by examiner]
US 20170255731A1 · Chou · 2017 [cited by examiner]
US 20170316137A1 · James · 2017 [cited by examiner]
US 20180203964A1 · Chou · 2018 [cited by examiner]
US 20180203967A1 · Chou · 2018 [cited by examiner]
US 20190286761A1 · Chou · 2019 [cited by examiner]
US 20190286775A1 · Chou · 2019 [cited by examiner]
US 20190384598A1 · Chou · 2019 [cited by examiner]
US 20200272701A1 · Robertson · 2020 [cited by examiner]
CN 105320583A · 2016 [cited by examiner]
CN 106503308A · 2017 [cited by examiner]
CN 104268310B · 2017 [cited by examiner]
CN 109901999A · 2019 [cited by examiner]
CN 110263459A · 2019 [cited by examiner]
CN 112069074A · 2020 [cited by examiner]
CN 112527723A · 2021 [cited by examiner]
CN 114996074A · 2022 [cited by examiner]
CN 116070564A · 2023 [cited by examiner]
CN 118627440A · 2024 [cited by examiner]
CN 113673189B · 2024 [cited by examiner]
“UVM Testcases in the CORE-V_VERIF Environments”, OpenHW Group, https://docs.openhwgroup.org/projects/core-v-verif/en/latest/uvm_tests.html, 2020-2021, 6 pages. (Year: 2020). [cited by examiner]
Fitzpartick et al., “How to Creat a Complex Testbench in a Couple of Hours”, Mentor, Design and Verification Conference and Exhibition, Europe, 2017, 70 pages. (Year: 2017). [cited by examiner]
Rosselli, et al., “A single generated UVM Register Model to handle multiple DUT configurations”, Design and Verification Conference and Exhibition United States, 2020. [cited by applicant]
Saheel, et al., “Hardware Acceleration for UVM Based CLTs”, “A single generated UVM Register Model to handle multiple DUT configurations”, Design and Verification Conference and Exhibition United States, 2020. [cited by applicant]
Mishra, “Automation of the UVM Register Abstraction Layer”, May 2020. [cited by applicant]
Corsair. “Control and Status Register map generator for HLD Projects”, https://corsair.readthedocs.io/en/latest/contributing.html#documentation, Jun. 26, 2023. [cited by applicant]
Verification Academy, “What is the best way to make register write/read sequences generic?”, https://verificationacademy.com/forums/uvm/what-best-way-make-register-write/read-sequences-generic, Jun. 26, 2023. [cited by applicant]
Agnisys, “The IC Designer's Guide to Automated Specification of Design, Verification, and Validation for Better Products”, Jun. 26, 2023. [cited by applicant]
Sinari, et al., “Automated Generation of RAL-based UVM Sequences”, Jun. 26, 2023. [cited by applicant]