Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate with python vga-simulator for lab6 #22

Open
benjamin051000 opened this issue Feb 2, 2023 · 7 comments
Open

Integrate with python vga-simulator for lab6 #22

benjamin051000 opened this issue Feb 2, 2023 · 7 comments
Labels
enhancement New feature or request medium priority

Comments

@benjamin051000
Copy link
Member

Use something like https://gist.github.com/pvieito/8cdb54a9a03fd36e51c8df6e331a3006 to automatically generate the VGAs! That would be a pretty sick addition to the lab6 testing.

@benjamin051000 benjamin051000 added the enhancement New feature or request label Feb 2, 2023
@benjamin051000
Copy link
Member Author

One issue is figuring out exactly how we can tell whether or not the generated images are correct. Perhaps the best way would be to simply open them in a window and the TA can choose whether or not they look good.

@benjamin051000
Copy link
Member Author

I think at least including the Gist script in this repo (modified for our purposes) would be pretty helpful.

@benjamin051000
Copy link
Member Author

I don't know if my gist is up-to-date, but one cool thing we could do is just include the gist as a submodule (I think this is possible)

@benjamin051000
Copy link
Member Author

It's now a repo at https://github.com/ARC-Lab-UF/vga-simulator.

@benjamin051000
Copy link
Member Author

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.

@benjamin051000
Copy link
Member Author

benjamin051000 commented Apr 13, 2023

An alternative design idea is to have extras/subproject where the subproject's manifest/config file tells us which labs it applies to.

+ Less duplication when multiple labs require the same subproject (e.g., MOSS)
- cons? Unsure

@benjamin051000
Copy link
Member Author

Okay, we are definitely doing this. I honestly like the idea of the extras/ dir, making a separate issue for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request medium priority
Projects
None yet
Development

No branches or pull requests

1 participant