-
Notifications
You must be signed in to change notification settings - Fork 1
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
Move test control logic to Haskell #536
Conversation
67f484c
to
685334e
Compare
25258ee
to
74f4c09
Compare
bb11fb5
to
00a75f8
Compare
ea75503
to
7c5c461
Compare
7c5c461
to
46059e7
Compare
A way of controlling a Vivado instance from Haskell
Also now support Vivado stdout without a newline at the end (e.g. `puts -nonewline`)
17ff368
to
ddafe88
Compare
13b920c
to
bea3dd3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall this LGTM, great work @JvWesterveld!
I'm only missing some documentation in a couple of places, and I think Iter
is a misnomer.
99c6532
to
87eaa21
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Latest changes LGTM. I have a few more mostly minor comments, partially concerning my own code.
87eaa21
to
028df20
Compare
This enables more fine-grained control of HITL test control execution from Haskell code. It: * Moves test control logic from `bittide-shake/data/tcl/HardwareTest.tcl` to `bittide-shake/src/Clash/Shake/Vivado.hs`. Instead of letting Vivado execute Tcl files, it is now controlled by attaching to stdin and stdout of Vivado in Tcl mode through the new vivado-hs package. * Test definitions are no longer stored in JSON files, but using the new HitlTest type.
028df20
to
8ce4978
Compare
This PR moves test control from TCL to Haskell. Moving this to Haskell makes sure that we can easily control the individual steps (programming, test control) and interleave it with other steps, such as starting GDB servers, and monitoring UART output. We mostly do this to make sure we can move to a software based development loop.
TODO
IntroduceVivadoM
for ease of usage (@martijnbastiaan)?bittide-tools/clockcontrol/plot/Main.hs
, which is broken for the new HITL test definition types (initial attempt in f35d240)fourmolu
#595)Future work
bittide-shake/src/Clash/Shake/Vivado.hs
execPrint
fromvivado-hs
print Vivado output to stdout directly instead of only when the relevant Tcl code has finished executingvivado-hs/src/Vivado/Tcl.hs
and instead useexecPrint
orexecCmd
directlySystem.Clock
withData.Time(.Clock)
andData.Time.Format
inbittide-shake/src/Clash/Shake/Vivado.hs
to print fancier formatted test durations