IP Library › Granted Patent US 10,007,492
Granted Patent B2
US 10,007,492 · App. 15/299,602 · Granted Jun 26, 2018

System and method for automatically generating device drivers for run time environments

Inventors: Sandeep Pendharkar (Bengaluru, IN); Venugopal Kolathur (Belgaum, IN); Karthick Gururaj (Bengaluru, IN)
G06F8/35G06F11/3616
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,007,492
App. No.
15/299,602
Granted
Jun 26, 2018
Kind
B2
Abstract

A system and method for automatically generating device driver codes for a device model based on an operation of said device model in verification environments is provided. The System includes a computing device. The computing device includes a device programming specification receiving module, a run time specification parsing module, a verification environment determination module and a driver generation module. The device programming specification receiving module receives at least one device programming specification aspects associated with an operation of device model in verification environment to determine a type of device driver code to be generated. The run time specification parsing module parses a run time specification file that includes verification environment parameters in run time specification. The verification environment determination module determines whether the verification environment equals to a part of a simulation/emulation in run time specification. The driver generation module automatically generates device driver code in pre-determined output programming language.

Claims (70)

1. A system for automatically generating device driver codes for a device model based on an operation of said device model in verification environments, said system comprising:

a computing device that comprises (a) a device driver generator tool that generates a device driver code for said device model, (b) a memory unit that stores (i) a database and (ii) a set of modules, and (c) a processor that executes said set of modules, wherein said set of modules comprise:

a device programming specification receiving module, implemented by said processor, that receives at least one device programming specification that comprises aspects associated with an operation of said device model in said verification environment to determine a type of device driver code to be generated, wherein said device programming specification receiving module comprises a device programming specification parsing module parses a file that comprises said device programming specification;

a run time specification parsing module, implemented by said processor, that parses a run time specification file that comprises a plurality of verification environment parameters in run time specification;

a verification environment determination module, implemented by said processor, that determines whether said verification environment equals to a part of a simulation or an emulation in said run time specification, wherein said part of said simulation or said emulation is selected from a group comprising a Verification IP (VIP) simulation, a register transfer level (RTL) simulation, an RTL emulation or a virtual platform until a match is found, wherein said verification environment determination module determines a pre-determined output programming language for said device driver code and communicates said pre-determined output programming language; and

a driver generation module, implemented by said processor, automatically generates said device driver code in said pre-determined output programming language, wherein said device driver code is generated so that it is specific to said simulation or said emulation in said run time specification.

2. The system of claim 1 , wherein said verification environment determination module further comprises a simulation determination module, wherein said simulation determination module

determines whether said verification environment equals to said RTL simulation;

determines whether said verification environment equals to said VIP simulation;

determines whether said device driver code is in said pre-determined output programming language when said verification environment is equal to said VIP simulation or said RTL simulation; and

determines whether a register access equals to a universal verification methodology (UVM) when said device driver code is in said pre-determined output programming language in said VIP simulation or said RTL simulation.

3. The system of claim 2 , wherein said verification environment determination module ( 210 ) further comprises a virtual platform determination module, wherein said virtual platform determination module

determines whether said verification environment equals to a virtual platform;

determines whether said device driver code is in said pre-determined output programming language when said verification environment is equal to said virtual platform;

determines whether register access equals UVM_SystemC when said device driver code is in said pre-determined output programming language in said virtual platform; and

determines whether said verification environment equals to said RTL emulation.

4. The system of claim 3 , wherein said verification environment determination module further comprises a SystemC determination module, wherein said SystemC determination module

determines whether device driver code equals to SystemC; and

determines whether said register access equals to a UVM_SystemC when said device driver code is equal to said SystemC.

5. The system of claim 2 , wherein said verification environment determination module further comprises a System Verilog determination module, wherein said System Verilog determination module

determines whether said device driver code equals to a System Verilog (SV); and

determines whether said register access equals to said universal verification methodology when said device driver code is equal to said System Verilog in said VIP simulation or said RTL simulation.

6. The system of claim 2 , wherein said driver generation module further

generates said device driver code in said pre-determined output programming language along with a register access code using UVM register abstraction layer (RAL) application programming interface (API) when said register access is equal to said universal verification methodology (UVM) in said RTL simulation or said VIP simulation; or

generates said device driver code in said pre-determined output programming language using stub API's when said register access is not equal to universal verification methodology in said RTL simulation or said VIP simulation.

7. The system of claim 3 , wherein said driver generation module further

generates said device driver code in said pre-determined output programming language along with a register access code using UVM_SystemC RAL API's when said register access is equal to said UVM_SystemC in said virtual platform; or

generates said device driver code in said pre-determined output programming language along with a register access code using said stub API's when said register access is not equal to said UVM — SystemC in said virtual platform.

8. The system of claim 4 , wherein said driver generation module further

generates said device driver code in said SystemC along with a register access code using SystemC RAL API when said register access is equal to said UVM_SystemC in said virtual platform; or

generates said device driver code in said SystemC along with a register access code using stub API's when said register access is not equal to said UVM_SystemC in said virtual platform.

9. The system of claim 5 , wherein said driver generation module further generates said device driver code in other output programming language when said device driver code is not equal to said System Verilog, wherein said other output programming language is selected from a group comprising Vera, E, Python or Perl.

10. The system of claim 5 , wherein said driver generation module further

generates said device driver code in said System Verilog along with a register access code using UVM RAL System Verilog API's when said register access is equal to said universal verification methodology (UVM) in said VIP simulation or said RTL simulation; or

generates said device driver code in said System Verilog along with a register access code using stub API's when said register access is not equal to said universal verification methodology (UVM) in said VIP simulation or said RTL simulation.

11. The system of claim 3 , wherein said verification environment determination module

determines whether said device driver code is in said pre-determined output programming language when said verification environment is equal to said RTL emulation; and

determines whether a register access equals to a universal verification methodology (UVM) when said device driver code is in said pre-determined output programming language in said RTL emulation.

12. The system of claim 11 , wherein said verification environment determination module further comprises said System Verilog determination module, wherein said System Verilog determination module

determines whether said device driver code equals to a System Verilog (SV); and

determines whether said register access equals to said universal verification methodology when said device driver code is equal to said System Verilog in said RTL emulation.

13. The system of claim 12 , wherein said driver generation module further

generates said device driver code in said pre-determined output programming language along with a register access code using UVM register abstraction layer (RAL) application programming interface (API) when said register access is equal to said universal verification methodology (UVM) in said RTL emulation; or

generates said device driver code in said pre-determined output programming language using stub API's when said register access is not equal to the universal verification methodology in said RTL emulation.

14. The system of claim 12 , wherein said driver generation module further

generates said device driver code in said System Verilog along with a register access code using UVM RAL System Verilog API's when said register access is equal to said universal verification methodology (UVM) in said RTL emulation; or

generates said device driver code in said System Verilog along with a register access code using stub API's when said register access is not equal to said universal verification methodology in said RTL emulation.

15. One or more non-transitory computer readable storage mediums storing one or more sequences of instructions, which when executed by one or more processors, performs a method for generating device driver codes for a device model based on an operation of said device model in verification environments, said method comprising:

receiving at least one device programming specification that comprises aspects associated with an operation of said device model in said verification environment to determine a type of device driver code to be generated;

parsing a run time specification file that comprises a plurality of verification environment parameters in run time specification;

determining whether said verification environment equals to a part of a Verification IP (VIP) simulation, a register transfer level (RTL) simulation, an RTL emulation or a virtual platform until a match is found;

automatically generating said device driver code in said pre-determined output programming language, wherein said device driver code is generated so that it is specific to said simulation or said emulation in said run time specification.

16. The one or more non-transitory computer readable storage mediums storing one or more sequences of instructions of claim 15 , wherein said determining further comprises the step of:

determining whether said verification environment equals to said RTL simulation;

determining whether said verification environment equals to said VIP simulation in said run time specification;

determining whether said device driver code is in said pre-determined output programming language when said verification environment is equal to said VIP simulation or said RTL simulation; and

determining whether a register access equals to a universal verification methodology (UVM) when said device driver code is in said pre-determined output programming language in said VIP simulation or said RTL simulation.

17. The one or more non-transitory computer readable storage mediums storing one or more sequences of instructions of claim 16 , wherein said method further comprises the step of:

generating said device driver code in said pre-determined output programming language along with a register access code using UVM register abstraction layer (RAL) application programming interface (API) when said register access is equal to said universal verification methodology (UVM) in said RTL simulation or said VIP simulation; or

generating said device driver code in said pre-determined output programming language using stub API's when said register access is not equal to universal verification methodology in said RTL simulation or said VIP simulation.

18. The computer implemented method for generating device driver codes for a device model based on an operation of said device model in verification environments, wherein said method comprising:

receiving at least one device programming specification that comprises aspects associated with an operation of said device model in said verification environment to determine a type of device driver code to be generated;

parsing a run time specification file that comprises a plurality of verification environment parameters in run time specification;

determining whether said verification environment equals to a part of a Verification IP (VIP) simulation, a register transfer level (RTL) simulation, an RTL emulation or a virtual platform until a match is found;

automatically generating said device driver code in said pre-determined output programming language, wherein said device driver code is generated so that it is specific to said simulation or said emulation in said run time specification.

19. The computer implemented method of 18 , wherein said method further comprises the step of:

determining whether said verification environment equals to said RTL simulation;

determining whether said verification environment equals to said VIP simulation in said run time specification;

determining whether said device driver code is in said pre-determined output programming language when said verification environment is equal to said VIP simulation or said RTL simulation; and

determining whether a register access equals to a universal verification methodology (UVM) when said device driver code is in said pre-determined output programming language in said VIP simulation or said RTL simulation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2016
From: PENDHARKAR, SANDEEP; KOLATHUR, VENUGOPAL; GURURAJ, KARTHICK
To: VAYAVYA LABS PVT. LTD
Reel/Frame 040083/0300 →
Priority Claims (1)
IN 5673/CHE/2015 · Oct 21, 2015 · national
Continuity (1)
Related Publication 20170115969A1 · Apr 27, 2017