Replies: 1 comment 1 reply
-
Wowwww, I gain a lot in this page, hope author also can share any related documents or pages for learning purpose!!! |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Summary
A proposal for creating a ROHD debugger that helps user to debug hardware circuitry and design built using ROHD framework.
What problem is this solving?
ROHD is a new framework in Dart to describe and verify hardware development for RTL. However, it posed a challenge for user to debug their design in ROHD due to lack of good UI interface that unable user to:
Background
ROHD debugger primarily discussed on GitHub issue mentioned here in Dart-Code. Initially, the ideas to extend from VS Code extension instead of extending from flutter dev tools. However, after checking on the dev tools, it seems that dev tools provide more flexibility in interfaces design and all the function available in VS Code extension also provided in dev tool. In another words, whatever can be achieved in VS Code extension can be achieved in dev tool.
Besides, things seem to be even easier as we do not need to learn about the VS Code debug adapter protocol. We can put more focus on implementation with Dart Developer Service (DDS) instead.
Audience
System Verilog Developers, Academic researchers, Students, anyone that uses ROHD as their choices of IC design.
Glossary
Non-goals
The scope of this tool will be limited to designs that are fully written using ROHD framework. It does not help in defining System Verilog code that are simulated using co-simulation.
Overview
This proposal aims to design a solution that allows hardware designers to debug and catch bugs easier through interactive UI interface. The following are the expected solutions that should be provided in the debugger itself.
A. Hierarchy Viewer
Priority: High (Request by a lot of developers)
View the module hierarchy and the nested signals inside. It should be something like this. @mkorbel1 did mentioned some interesting stuff on this in Dart-Code/Dart-Code#4589 (comment).
B. Signal Lists
Priority: High
C. Waveform Viewer
Priority: Medium
.vcd
file to view on the waveform.D. Schematic Viewer
Priority: Low
Simulator
that shows the value on the wire during the simulation process.Usage Examples
Web socket debugging through browser
Users can use the debugger by running the debug in the interactive mode via passing the flag
--pause-isolates-on-start --observe
. Example, user can run the ROHD dev tool to executeexample.dart
using the commanddart run --pause-isolates-on-start --observe example.dart
.Then, navigate to browser by clicking on the link and it will bring user to the page below.
The current implementation does not have the capabilities of ROHD debuggabilities. Therefore, this project would be about creating ROHD debug tabs for the debug process.
Detailed Design / Discussion
(This part is still under design, and everyone inputs on this part is highly appreciated here)
The following is a detailed description of the recommended approach based on feedback and understanding of the current best practices.
Hierarchy Viewer
Signals List
Schematic Viewer
Waveform Viewer
This would mean we need to build a widget that can read and output waveform signals in flutter.
Beta Was this translation helpful? Give feedback.
All reactions