I also use Icarus and GTKWave with VSCode and that's nice too. I found and modified a Python script that generates a testbench that does most of the hard work for you then there's a button it adds to VSCode that sends the testbench through Icarus and VVP then offers to open the output in GTKWave for you.
It saves a lot of the messing around with command line stuff.
It's easier to do this in modelsim.
After altera starts up a blank RTL simulation, without any TB file.
Just click on the clk line and set it to 'CLK' and the desired period.
Then hit the run sim button set for that period or double and watch things progress.
The, click on a waveform input and hit 'force' and type in a number then hit that run button again.
See how things change.
Change an input back and hit run and see this sim progress.
*** Now for something you cannot do in your painted stimulation waveforms.
click on one of your buried code registers like IE: a counter, and add it to the waveform.
click on run and watch it pop up.
*** now for something else...
click on that counter waveform and select force value. Type in a new number and choose 'deposit'.
click on run and watch your logic get fooled into that counter being in a new numeric position and your code will continue from there...
You want truly advanced, get my ellipse generator code here: (read instructions)
https://www.eevblog.com/forum/fpga/fpga-vga-controller-for-8-bit-computer/msg3413786/#msg3413786No Quartus, just run modelsim. It works stand alone and recompiles in 1/10th of a second every time you type:
do run.do
See what I made my testbench do and how it roasts that paint in number settings.
It takes my ascii .txt file with commands and comments, and drives/generates the input waveform to control the ellipse generator module.
Then when simulation, it generates an ascii text output file with the results cleaned up and decoded.
It also makes a .bmp picture of the results you can actually see.
My testbench code/script is simple/stupid enough for you to adapt to any one of your own projects.
While you toy around with python and other tools, I made a systemverilog test-bench code which generates the test wavefiorm for you right there. No third party tools, no third party compilers, or even Quartus needed.
( I made it this far on day 2 of learning modelsim. )