OSVVM / OSVVM-Scripts

OSVVM project simulation scripts. Scripts are tedious. These scripts simplify the steps to compile your project for simulation
Other
8 stars 13 forks source link

Brainstorming: Test configuration information #42

Open JimLewis opened 1 year ago

JimLewis commented 1 year ago

@Paebbels @riedel-ferringer For each test, I would like some of the following information to be able to be specified from the scripting: Path to source files Configuring AlertLog settings such as log enables and mirroring.
These sort of things may change when we are debugging vs running regressions.

I would like to coordinate a solution with VUnit. They currently use generics on the top level design to set information. Based on some information from simulation vendors, this may not be the best thing to do as changing generics forces the design to be reoptimized.

Maybe reading the configuration from a file would be nice. I think VUnit currently uses json. That may be something that would work well. Otherwise, I have the most experience now with yaml.

Thoughts? What other capabilities would you like this to address?

riedel-ferringer commented 1 year ago

Just so we are talking about the same thing here: You want a way for the (tcl) scripts to pass information to the (vhdl) simulation?

I've seen the VUnit way of doing it, an personally, I don't like it. Although admittedly, I think it is a good solution for them, specifically for the way VUnit works. However, for OSVVM I would think it's not the preferred way to go. If I remember correctly, they just pass in a string, which then needs to be parsed anyway? Not sure if that's correct though.

So I think your proposal of reading the config from a file is a good way to go. And with json/yaml you would have full flexibility. You could then provide some kind of config-dictionary which contains all the configuration. And even better, settings (just like the paths) would just be defined in the scripts, and then automatically passed in via config to the vhdl part.

Another way would be to use a VHDL package, just the same way as you currently do with the paths.