Internship: Implement generic remote debugger protocol for hardware simulators

Internship: Implement generic remote debugger protocol for hardware simulators
2018-03-16 Bart Brosens

Sigasi internship proposal 2018-2019

Implement generic remote debugger protocol for hardware simulators

  • Skills: Javascript/Typescript (node.js), TCL
  • Target audience: computer science engineers, electronics engineers, master of informatics

Visual Studio Code is a new and promising development environment, developed by Microsoft and running on Windows, Linux and Mac OS X. It is a platform that can be extended for new computer languages and simulators using a standard interface. This technology allows developers of IDEs (integrated development environments) to focus on the back-end (compilers and simulators) and reuse existing front-ends (editors). Conversely, it allows developers of editors to reuse existing back-ends with support for various programming languages.

Visual Studio Code defines APIs (application programming interfaces) for syntax highlighting, code completion, syntax error reporting and debugging. The latter is especially interesting in the world of digital circuit design.

When simulating (and debugging) digital circuits, engineers use a proprietary simulator. Each simulator has its own user interface, which makes it hard to switch between simulators. It would be great if engineers could learn one user interface, and have all simulator specific details hidden under the hood.

The objective of this internship is to implement the remote debugger protocol specified by Visual Studio Code for a VHDL or (System)Verilog simulator. This requires writing a debug adapter for the simulator. On the Visual Studio Code side, the adapter is written in Javascript. The code to control the simulator will most likely be written in TCL.

See also: https://code.visualstudio.com/Docs/extensionAPI/api-debugging

This internship takes place in 2019, at the Sigasi office, near the city center of Gent. For more information about this internship proposal, e-mail [email protected].