2
votes

Background : ModelSim v10.4d installed with quartus v16.0

I wrote a .do file to simulate my design with ModelSim.

The steps in my .do file are:

1- vcom *.vhd : compile all sources files and testbench
2- vsim work.my_tb : load testbench for simulation
3- log * -r : tell modelsim to record everything
4- run xx us : run simulation for a certain time

and then I manually add signals to waveform window.

This flow works fine, but when I modify some codes and re-do the .do file, problem happens :

The 2nd run of .do file will update the dataset file .wlf. But the signals in the waveform window are still on the old dataset. I tried two things as below to update signals:

1- file->open->new dataset, signals in the waveform window are NOT updated to the new dataset.
2- file->open->new dataset, then file->dataset browser-> close old dataset,
this will delete those signals in the waveform window. Then I had to add 
those signals manually a second time, then the signals are up to date, but 
this wastes a lot of time.

So I wonder if there is a simpler way to update signals in the waveform window to the new dataset?

2
I cannot reproduce your issue. If I run vsim work.[...] during an active simulation, the old simulation is terminated and a new simulation is started: modelsim will empty my waveform window... I then have to add the signals again anyway. - JHBonarius
@JHBonarius Yes,in my .do file, I disabled vsim tb if dataset info exists returns 1, that's why it didn't restart a new simu; And now I found a way to work around my original question: I do save the current signals' wave into a wave.do if dataset info exists returns 1, and at the end I see if wave.do exists, load it if yes. But this is NOT a real waveform update, it just reload the whole simulation and waveforms. - Cong Li
Hmm, but do you restart your simulation (restart -f) in order to load the newly compiled entities? This should clear the waveforms. - JHBonarius

2 Answers

0
votes

ModelSim shows an alert dialog box whenever the code already compiled according to your ModelSim is not the same as your updated code. So any changes made to your dataset would cause this box to show up. I think you must have clicked overwrite changes accidentally. Hitting reload updates Modelsim with the new signals.

0
votes

Run "dataset restart" command in the Transcript window.