Skip to content

Latest commit

 

History

History
62 lines (55 loc) · 2.62 KB

0120-2023-07-24.md

File metadata and controls

62 lines (55 loc) · 2.62 KB

24 Jul 2023

Previous journal: Next journal:
0119-2023-07-22.md 0121-2023-07-26.md

tt04-solo-squash next steps

  • Clean up solo_squash a bit, e.g. remove CARAVEL_IO_OEB and make debug stuff controllable by `defines.
  • Make sure solo_squash is still runnable via Verilator -- try to get it to work in Linux and Windows.
  • Make solo_squash a git submodule of tt04-solo-squash. Test that it works via Verilator and GDS GHAs.
  • Update READMEs
  • Remove LZC.
  • Tidy up TT-level debug stuff.
  • Implement SPI control stuff. Ideas:
    • Ball speed.
    • "Controller" input, i.e. paddle position, pause/reset state...?
    • Paddle size.
    • SPI output, e.g. debug info and ball position?
    • VGA parameters.
    • Test modes.
  • Visual improvements:
    • RGB222
    • "Depth" e.g. shadow effect
    • Staggered bricks in wall
    • Visual reactions to hits
  • Other improvements:
    • Paddle top/bottom collisions only invert 1 ball direction.
    • Different ball direction speeds (i.e. vectors).
    • LFSR generates "obstacles" for the ball.

Changes to make it build in Windows

  • NOTE: I already had my build env working in Windows using wingw-w64.
  • In solo_squash I ran make clean sim and found I had to fix it:
    1. Had to comment out #include <err.h> which doesn't seem to be used anyway.
    2. Linking failed due to missing WinMain. I think I had to put a wrapper in for this in Raybox, so I'll do that here too.
  • I borrowed a bunch of stuff from Raybox's Makefile, including:
    • winrand.bat
    • Defining WINDOWS and fixes for various CFLAGs.
    • Including .exe suffix on sim exe when needed.

Notes

  • make test not yet tested on Windows. Need to install iverilog first.
  • Can Verilog variables be defined via OpenLane config with TT?
  • Need to decide whether we still want DEBUG_OUTPUT signals for TT purposes.
  • Should SPI commands be handled by a wrapper, and feed signals directly into solo_squash, or should solo_squash internally implement SPI?
  • Method to add solo_squash as submodule of tt04-solo-squash:
    cd tt04-solo-squash
    git submodule add [email protected]:algofoogle/solo_squash src/solo_squash
    # ...if necessary, go into src/solo_squash and use git to select a different branch/commit?...
    git commit -am "Added src/solo_squash submodule"
  • To later update git submodules:
    git submodule update --init --recursive
  • This info might help: https://devconnected.com/how-to-add-and-update-git-submodules/