← Back to Patent Explorer
US6188975B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Programmatic use of software debugging to redirect hardware related operations to a hardware simulator

Assignee: Synopsys Inc
•
Filing: 1998-03-31
•
Granted: 2001-02-13
•
Expires: 2018-03-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention is a method that uses breakpoints in a debugging program to signify to a hardware software co-verification tool when to redirect hardware calls to a hardware simulator. The method includes executing a line of software code within a software component, determining whether the line of software code requires interaction with a hardware device, associating the line of software code with an interface module if the line of software code requires interaction with a hardware device, simulating the hardware device with a hardware model running under simulation, using the interface module to request a hardware operation from the hardware model when the line of software code requires a hardware operation; and providing data generated by the hardware model running under simulation in response to the request.

Inventors

  • 👤 Donald L. Gay

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 09:44
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3698; G06F30/00; G06F30/30; G06F30/32; G06F30/33

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 153 words
A method of performing hardware software co-verification, comprising the steps of: obtaining a software component having a plurality of lines of software code, and having at least one of said lines of software code capable of making a hardware device interaction when executed; executing said line of software code within said software component; flagging said line with a breakpoint, if said line requires a hardware device interaction, wherein said breakpoint for indicating said line requires said hardware device interaction when executed; associating said line with an interface module by a plug-in, if said line requires said hardware device interaction; simulating said hardware device with a hardware model running under simulation; using said interface module to make a request for a hardware operation from said hardware model running under simulation when said line requires said hardware device interaction; and providing data generated by said hardware model running under simulation in response to said request.
Claim 2
Independent Claim 153 words
A method of performing hardware software co-verification, comprising the steps of: obtaining a software component having a plurality of lines of software code, and having at least one of said lines of software code capable of making a hardware device interaction when executed; executing said line of software code within said software component; flagging said line with a breakpoint, if said line requires a hardware device interaction, wherein said breakpoint for indicating said line requires said hardware device interaction when executed; associating said line with an interface module by a plug-in, if said line requires said hardware device interaction; simulating said hardware device with a hardware model running under simulation; using said interface module to make a request for a hardware operation from said hardware model running under simulation when said line requires said hardware device interaction; and providing data generated by said hardware model running under simulation in response to said request.
Claim 3
Dependent Claim 38 words
The method in claim 1 , wherein said data generated by said hardware model in said step of providing is received by a debugging program for use by said line of software code in said step of executing.
Claim 4
Dependent Claim 40 words
The method in claim 1 , further including a step of executing a line of software code subsequent to said line of software code executed in said step of executing according to an execution flow corresponding to said software component.
Claim 5
Dependent Claim 14 words
The method in claim 1 , wherein said hardware operation includes a read operation.
Claim 6
Dependent Claim 14 words
The method in claim 1 , wherein said hardware operation includes a write operation.
Claim 7
Dependent Claim 30 words
The method in claim 1 , further including a step of providing a debugging program to perform said step of executing said line of software code within said software component.
Claim 8
Dependent Claim 15 words
The method in claim 1 , wherein said software component includes an applications software program.
Claim 9
Dependent Claim 20 words
The method in claim 1 , wherein said software component includes lines of software code that comprises a hardware driver.
Claim 10
Dependent Claim 33 words
The method in claim 1 , further including a step of providing a plug-in module to perform said step of determining whether said line of software code requires interaction with a hardware device.
Claim 11
Dependent Claim 38 words
The method in claim 1 , further including a step of providing a plug-in module for associating said line of software code with an interface module if said line of software code requires interaction with a hardware device.
Claim 12
Dependent Claim 24 words
The method in claim 1 , further including a step of providing a hardware simulator for simulating said hardware device using said hardware model.
Claim 13
Dependent Claim 37 words
The method in claim 1 , further including a step of providing a debugging program to perform said step of executing said next line of software code according to an execution flow corresponding to said software component.
Claim 14
Dependent Claim 39 words
The method in claim 1 , further including a step of responding to an interrupt signal generated by said hardware model, said step of responding including a step of redirecting said interrupt signal to a simulated target operating system.
Claim 15
Independent Claim 171 words
A method of performing hardware software co-verification, comprising the steps of: obtaining a software component having a plurality of lines of software code, and having at least one of said lines of software code capable of making a hardware device interaction when executed; executing said line of software code within said software component; flagging said line with a breakpoint, if said line requires a hardware device interaction, wherein said breakpoint for indicating said line requires said hardware device interaction when executed; associating said line with an interface module by a plug-in, if said line requires said hardware device interaction; simulating said hardware device with a hardware model running under simulation; using said interface module to make a request for a hardware operation from said hardware model running under simulation when said line requires said hardware device interaction; and providing data generated by said hardware model running under simulation in response to said request; and executing a next line of software code according to an execution flow corresponding to said software component.
Claim 16
Independent Claim 171 words
A method of performing hardware software co-verification, comprising the steps of: obtaining a software component having a plurality of lines of software code, and having at least one of said lines of software code capable of making a hardware device interaction when executed; executing said line of software code within said software component; flagging said line with a breakpoint, if said line requires a hardware device interaction, wherein said breakpoint for indicating said line requires said hardware device interaction when executed; associating said line with an interface module by a plug-in, if said line requires said hardware device interaction; simulating said hardware device with a hardware model running under simulation; using said interface module to make a request for a hardware operation from said hardware model running under simulation when said line requires said hardware device interaction; and providing data generated by said hardware model running under simulation in response to said request; and executing a next line of software code according to an execution flow corresponding to said software component.
Claim 17
Dependent Claim 14 words
The method in claim 14 , wherein said hardware operation includes a read operation.
Claim 18
Dependent Claim 14 words
The method in claim 14 , wherein said hardware operation includes a write operation.
Claim 19
Dependent Claim 15 words
The method in claim 14 , wherein said software component includes an applications software program.
Claim 20
Dependent Claim 20 words
The method in claim 14 , wherein said software component includes lines of software code that comprises a hardware driver.
Claim 21
Dependent Claim 33 words
The method in claim 14 , further including a step of providing a plug-in module to perform said step of determining whether said line of software code requires interaction with a hardware device.
Claim 22
Dependent Claim 38 words
The method in claim 14 , further including a step of providing a plug-in module for associating said line of software code with an interface module if said line of software code requires interaction with a hardware device.
Claim 23
Dependent Claim 24 words
The method in claim 14 , further including a step of providing a hardware simulator for simulating said hardware device using said hardware model.
Claim 24
Dependent Claim 39 words
The method in claim 14 , further including a step of responding to an interrupt signal generated by said hardware model, said step of responding including a step of redirecting said interrupt signal to a simulated target operating system.
Claim 25
Independent Claim 229 words
A method for determining whether a software component and a hardware device are properly designed to interact with each other, comprising the steps of: preparing a hardware software co-verification system for operation by obtaining a software component having a plurality of lines of software code, and flagging at least one line of software code within said software component, said line of software code capable of making a hardware call when executed; executing said software component; sensing by a debugging program during said step of executing whether said line of software code within said software component has been flagged; associating by a plug-in an interface module and a hardware model that are suitable for servicing said hardware call and redirecting said hardware call to said interface module for servicing, if said step of sensing results in identifying said line of software code previously flagged, wherein said line of software code requiring said hardware call; using said interface module to receive and modify said hardware call into a compatible device specific format with said hardware model, and to provide necessary signals to communicate said hardware call to said hardware model according to said device specific format, said hardware model responding to said hardware call by simulating signals responsive to said hardware call; and returning execution to the next line of software code awaiting execution within said hardware model running under simulation.
Claim 26
Independent Claim 229 words
A method for determining whether a software component and a hardware device are properly designed to interact with each other, comprising the steps of: preparing a hardware software co-verification system for operation by obtaining a software component having a plurality of lines of software code, and flagging at least one line of software code within said software component, said line of software code capable of making a hardware call when executed; executing said software component; sensing by a debugging program during said step of executing whether said line of software code within said software component has been flagged; associating by a plug-in an interface module and a hardware model that are suitable for servicing said hardware call and redirecting said hardware call to said interface module for servicing, if said step of sensing results in identifying said line of software code previously flagged, wherein said line of software code requiring said hardware call; using said interface module to receive and modify said hardware call into a compatible device specific format with said hardware model, and to provide necessary signals to communicate said hardware call to said hardware model according to said device specific format, said hardware model responding to said hardware call by simulating signals responsive to said hardware call; and returning execution to the next line of software code awaiting execution within said hardware model running under simulation.
Claim 27
Dependent Claim 38 words
The method in claim 23 , wherein said step of executing includes using a debugging program to execute said software component one line of software code at a time according to an execution flow dictated said software component.
Claim 28
Dependent Claim 19 words
The method in claim 23 , wherein said step of flagging a line of software code is performed manually.
Claim 29
Dependent Claim 21 words
The method in claim 23 , wherein said step of flagging a line of software code is performed through program control.
Claim 30
Dependent Claim 39 words
The method in claim 23 , further including a step of responding to an interrupt signal generated by said hardware model, said step of responding including a step of redirecting said interrupt signal to a simulated target operating system.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-02-13 2004-08-14 2005-02-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-02-13 2008-08-14 2009-02-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-02-13 2012-08-14 2013-02-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag