IP Library Granted Patent US 11,928,045
Granted Patent B1
US 11,928,045 · App. 17/236,584 · Granted Mar 12, 2024

System and method for non-intrusive debugging at an embedded software breakpoint

Inventors: Bishnupriya Bhattacharya (Bengaluru, IN); Andrew Robert Wilmot (Carlisle, MA); Zhiting Duan (Chelmsford, MA); Neeti Khullar Bhatnagar (San Jose, CA)
Assignee: Cadence Design Systems, Inc.
G06F11/3636G06F9/45504G06F9/485G06F30/30G06F2115/10
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 11,928,045
App. No.
17/236,584
Granted
Mar 12, 2024
Kind
B1
Abstract

The present disclosure relates to a method for use with an electronic design. Embodiments may include simulating a processor model and a hardware model, each executed with a corresponding simulator thread on a simulation platform. Embodiments may also include simulating embedded software using the processor model. The simulating may include updating a given register of the processor model that stores a value that changes in response to switching between processes within the embedded software. Embodiments may further include setting a simulator breakpoint and a software breakpoint and enabling debugging of both non-virtual and virtual addresses at the software breakpoint without leaving the software breakpoint.

Claims (54)

1. A computer-implemented method for use with an electronic design comprising:

simulating a processor model representative of a processor and a hardware model representative of a hardware element, wherein each of the processor model and the hardware model are executed with a corresponding simulator thread on a simulation platform;

simulating embedded software using the processor model, wherein the simulating the embedded software includes updating a given register of the processor model that stores a value that changes in response to switching between one or more processes within the embedded software;

setting a simulator breakpoint, wherein a change of state in the given register is captured at the simulator breakpoint;

setting a software breakpoint at a function that switches between the one or more processes within the embedded software; and

enabling debugging of both non-virtual and virtual addresses at the software breakpoint without leaving the software breakpoint, wherein the non-virtual addresses are associated with a register transfer level model written in a first hardware description language and the virtual addresses are associated with a transaction level model written in a system level modeling language.

2. The computer-implemented method of claim 1 , further comprising:

issuing a transaction function call associated with a debugger control thread at the software breakpoint on a virtual processor model.

3. The computer-implemented method of claim 2 , further comprising:

intercepting the transaction function call; and

diverting the transaction function call to an application programming interface associated with a simulator.

4. The computer-implemented method of claim 3 , further comprising:

spawning and scheduling a special virtual thread to issue a non-debug transaction to a user-specified non-virtual address with a necessary state from the transaction function call.

5. The computer-implemented method of claim 4 , further comprising:

suspending a virtual processor thread that reached the software breakpoint.

6. The computer-implemented method of claim 5 , further comprising:

setting an internal simulator breakpoint.

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

switching to a simulator main thread and enabling the special virtual thread to run and complete the non-debug transaction to the user-specified non-virtual address.

8. The computer-implemented method of claim 7 , further comprising: triggering the internal simulator breakpoint.

9. The computer-implemented method of claim 8 , further comprising:

resuming the suspended virtual processor thread.

10. The computer-implemented method of claim 9 , further comprising:

switching back to the debugger control thread due to triggering of the internal breakpoint;

obtaining results of the transaction function call from the special virtual thread; and

returning the results for debugging.

11. A system comprising:

a memory storing machine-readable instructions comprising a plurality of component models including a processor model representative of a processor and a hardware model representative of a hardware element, and embedded software for execution using the processor model during a simulation of the plurality of component models; and

a processor configured to access the memory and execute the machine-readable instructions, the machine-readable instructions causing the processor to:

simulate the processor model representative of the processor and the hardware model representative of the hardware element, wherein each of the processor model and the hardware model are executed by the processor with a corresponding simulator thread;

simulate the embedded software using the processor model;

set a software breakpoint at a function that switches between processes within the embedded software; and

enable debugging of both non-virtual and virtual addresses at the software breakpoint without leaving the software breakpoint, wherein the non-virtual addresses are associated with a register transfer level model written in a first hardware description language and the virtual addresses are associated with a transaction level model written in a system level modeling language.

12. The system of claim 11 , wherein the machine-readable instructions cause the processor to:

issue a transaction function call associated with a debugger control thread at the software breakpoint on a virtual processor model.

13. The system of claim 12 , wherein the machine-readable instructions cause the processor to:

intercept the transaction function call; and

divert the transaction function call to an application programming interface associated with a simulator.

14. The system of claim 13 , wherein the machine-readable instructions cause the processor to:

spawn and schedule a special virtual thread to issue a non-debug transaction to a user-specified non-virtual address with a necessary state from the transaction function call.

15. The system of claim 14 , wherein the machine-readable instructions cause the processor to:

suspend a virtual processor thread that reached the software breakpoint.

16. The system of claim 15 , wherein the machine-readable instructions cause the processor to:

set an internal simulator breakpoint.

17. The system of claim 16 , wherein the machine-readable instructions cause the processor to:

switch to a simulator main thread and enable the special virtual thread to run and complete the non-debug transaction to the user-specified non-virtual address.

18. The system of claim 17 , wherein the machine-readable instructions cause the processor to:

trigger the internal breakpoint.

19. The system of claim 18 , wherein the machine-readable instructions cause the processor to:

resume the suspended virtual processor thread.

20. The system of claim 19 , wherein the machine-readable instructions cause the processor to:

switch back to the debugger control thread due to triggering of the internal breakpoint;

obtain results of the transaction function call from the special virtual thread; and

return the results for debugging.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2021
From: BHATTACHARYA, BISHNUPRIYA; WILMOT, ANDREW ROBERT; DUAN, ZHITING; BHATNAGAR, NEETI KHULLAR
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 055992/0299 →