Closed benjamin051000 closed 1 year ago
First step is to combine tcl-templates
and modelsim-templates
into their own lab-templates
directory... Or something like that.
Apparently the work
directories, while they're supposed to be ignored, seem to have important stuff in them... opening the project doesn't work without them. I guess that makes sense.
Now that I think of it, why don't we just create new projects each time? What's the reason behind starting with an old project?
Let's try to see if we can't get it working without the modelsim templates... Just make a new project each time! All the script does anyway is add files and compile/run, I don't think there's anything special about the current setup.
One issue with this approach is using the GUI for multiple runs may require ModelSim to close and reopen several times (which is really slow). Perhaps a solution to this could be:
Projects are now all isolated as per the spec. One thing that must be addressed is projects that error out. They just close instantly instead of giving you an ability to "retry". On one hand, this is fine, because it's quick to rerun the grader, or you can just open that modelsim project file in the GUI. Intervention is most likely required anyway in that case, since it's likely an issue with the students' submitted code.
I'm honestly not even sure if the original grader handled errors properly. It was set to "resume" on errors, which from what I can tell means essentially ignore them. One nice thing you could do was modify the files, save them, and hit "retry" to recompile and rerun the sim, and see if that fixes the problem. This feature should probably be added back.
Yes. Issues with errors when compiling/simulating are gonna make this tough to sell. Otherwise I have to manually open and run each one. Two options for this:
For now, I may just leave that alone. Let's just attach the tcl script data to StudentData class and move on for now.
Well, it wasn't that hard to have the python code rerun the sim until you're happy with it. It shuts down and reopens modelsim as a new process each time.
Not sure if anything will be affected by multiple runs, since modelsim creates a new project each time. A potential issue could be that the modelsim temp files already exist... they may need to be deleted each time, too. Not sure.
Doesn't seem to be an issue! Looks good for now. The last thing would be to update the TCL to actually print the name of the upcoming TB. But that can be its own issue. This is pretty much done.
Nah, let's not change the workflow. Keep the keybindings the same as before.
much much better.
Sorry in advance to those who do everything in the --gui
...
Do not modify original modelsim project files. Copy everything needed into temp directories, and optionally delete them afterwards.