This doesn't need to happen yet, but I'm wondering if an easy "modular approach" would be to have like an extras/ directory, where you can drop a folder that contains a program to run any supplemental programs. For example:
extras/lab5/ would be the root of a "subproject" that can run additional stuff during simulation (either before, after, maybe even during...). Maybe an entrypoint could either be main.py or __init__.py or the actual name of what it does, whatever makes the most sense.
The process would be something like this
- Parse the lab from CLI
- Check
extras/ for any lab-specific programs
- If nothing, skip and run like normal.
- If a dir is there for this lab, parse it's manifest/configuration to see what it wants us to do (e.g., run before modelsim TB, after? During in parallel? etc., other config options)
- Do it
A few benefits to this design:
- Subprograms can be anything: any language, any tool. So long as they conform to the testbench-runner extras interface (TBD)
- decoupled from normal testbench runner
Some examples of things we can use this for:
- VGA simulator (a python project)
- MOSS upload (perl script)
- Formal verification
- Quartus script to synthesize the project, check for warnings/errors or something
- Quartus synthesize, program board, to automatically test on the board :o
- Canvas API hook perhaps? Although this would more likely be built-in to the normal program. Doesn't feel like an "extras" thing to me.
Originally posted by @benjamin051000 in #22 (comment)
This doesn't need to happen yet, but I'm wondering if an easy "modular approach" would be to have like an
extras/directory, where you can drop a folder that contains a program to run any supplemental programs. For example:extras/lab5/would be the root of a "subproject" that can run additional stuff during simulation (either before, after, maybe even during...). Maybe an entrypoint could either bemain.pyor__init__.pyor the actual name of what it does, whatever makes the most sense.The process would be something like this
extras/for any lab-specific programsA few benefits to this design:
Some examples of things we can use this for:
Originally posted by @benjamin051000 in #22 (comment)