01-15-2019 02:32 AM
Do I have to close the waveform viewer (actually Vivado) every time I re-run an HLS co-simulation?
Is there a way of keeping it open and refresh/ reload the results?
01-15-2019 07:09 AM
You have to close it because it is touching the same files that HLS is going to write over. And then you would need to open them again.
ERROR: [COSIM 212-366] Cannot delete directory 'sim/verilog': it is being used by another program. Please close the program and try again. error deleting "sim/verilog": permission denied
You might be able to open vivado yourself, and make a tcl btn that automatically finds the waveform file in the directory you opened it in. Copies it to a tmp file, and opens that. That way you just select the btn each time you want to update it, and it doesn't have a chance to hold onto the files HLS wants to write over.
Other users might have better suggestions, but I played around with it for a couple minutes, and it seems the tool in it's normal use doesn't allow it due to file sharing.
01-15-2019 08:08 AM
I noticed that as well, I just find it so low performance to close it, click save or discard, fire it again and wait for the logo vanishing...
I wonder if there is a way of closing the waveform file it works on, running co-simulation again, then just re-open the results.
A minute saved sixty times makes an hour of either achieving more or going home earlier, both are good things
01-15-2019 09:56 AM
This is a kind of hacky way to do it:
In the solution you want to use, open vivado:
Then launch vivado there with the settings64.bat/.sh ect
Then if the sim was built:
set sim_list [glob sim/verilog/*.wdb] #This only needs to be run once, since the name is unlikely to change in a project. This just grabs all the sim files into a list.
To view it:
open_wave_database [lindex $sim_list 0]
Your waveform is up. Because it's open you can't rerun it from HLS. but because we opened vivado above the directory that needs to be erased, to rerun, just close the sim:
It no longer holds the file. You could also write a function instead that does a copy to the soultion1 folder of the waveform files. Then opens there. Then you wouldn't need to close the sim to rerun.
And again, you can then map this function to a TCL BTN in the vivado gui, that "refreshes" the sim. By calling that function to copy it again. All without needing to relaunch vivado each time you wish to view it updated.
I am not sure any other way, because it's trying to erase the sim files when you run, so anything that is inside or has anything inside that folder open is going to cause that error.