Fliplot is an alternative to GTKWave, but implemented as a VS Code extension using HTML and JavaScript/TypeScript.
Part of the student experience in CS 233 is implementing datapaths in Verilog and using a waveform viewer for debugging. Traditionally, we've been using GTKWave, but asking students to install it proved difficult. We've tried offering GTKWave via a Ubuntu workspace in PrairieLearn but that also has its problems. Therefore, the goal of the Fliplot project is to offer a waveform viewer as a vscode extension so students can easily use it within a vscode workspace in PrairieLearn (alongside editing Verilog code).
Here are the basic steps to start development.
Requires nodejs >=14.18.0
(and optionally python >=3.9
).
This project is a vscode extension so you need to have vscode installed. You should also do local development within vscode itself to take advantage of features for debugging extensions.
Lastly, install javascript dependencies using: npm install
.
The main way to "run" this project is to open vscode with this extension
installed. This is already setup as a vscode launch task (see
.vscode/launch.json
).
- Open the top-level folder in vscode, if not already.
- Compile code:
npm run build
. - Navigate to the "Run and Debug" panel on sidebar.
- Select "Run Extension" and click Run (green arrow).
A new vscode window should open with this extension enabled. You might find it useful to have devtools console open (Help > Toggle Developer Tools).
This used to be a Python app. It doesn't quite work anymore since most parts has been ported to vscode extension, but you can still try out the Python server.
- (optional) Create and activate a new python virtual-environment (or use conda):
python3 -m virtualenv .venv ./.venv/bin/activate
- Install python dependencies:
pip install flask
- Start flask server:
export FLASK_APP=flask_app export FLASK_ENV=development flask run
- You can now make requests to the server:
curl -X POST 'http://localhost:5000/parse-vcd' \ -H 'content-type: application/json' \ -d '{"fname": "examples/sample.vcd"}'