DDGen (Device Driver Generator) is a software tool for anyone wanting to write software device drivers. Our target audiences are typically Embedded System Developers wanting to implement a software driver for a hardware platform or IC design engineers looking to develop software/firmware as part of post-silicon validation process. DDGen tool and methodology encourages device driver developers to think about the problem-domain rather than the implementation-domain. The tool provides a high level mechanism to specify:

  • the structural (registers, interrupts, connectivity) and programmatic (sequences and functional view) of the hardware device (SoC). These high level specifications are called as DPS(Device Programming Specification).
  • the environment details of the software which is called RTS (Run Time Specification). Typically the environment specification has the details of the operating system and also low level design parameters.

The high level specifications DPS and RTS are used as input to the DDGen tool which then generates ANSI C compliant device driver code ready to be used by the applications.



Current version of DDGen tool supports:

  • Driver automation for popular Operating Systems: Linux, WinCE, VxWorks, Bare metal(No OS).
  • A host of embedded devices such as Ethernet, USB, Communication, memory, or any control type of devices including DMA controller, etc…
  • Data transfer via PIO or DMA.
  • Interrupt or polling mode of operation.
  • Generation of ANSI C compliant driver code (C and header files) that can be plugged into applications.
  • Register map RTL generation in Verilog.
  • DoxyGen compliant documentation.


  • 10X productivity improvement for firmware and device driver development.
  • Enforces the right development frame-work across design flows by providing higher level of abstraction for device and run time environment specifications.
  • Semiconductor, OEM/ODM firms can lower customer support costs by deploying the tool as first line of support.
  • A simple framework to quickly add driver automation support for a new operating system.
  • High level input specifications (DPS & RTS) are based on IEEE standard IP-XACT specification. Which in turn aids system level verification & validation for SoC design teams.