byuccl / bfasst

Tools for FPGA Assurance Flows
Apache License 2.0
12 stars 4 forks source link

randsoc dump flow #412

Closed KeenanRileyFaulkner closed 6 months ago

KeenanRileyFaulkner commented 6 months ago

This flow builds on the RandSoc flow to take randomized block designs and dump them out, creating a file that contains the graph in Isoblaze format and a file that lists each IP in the design followed by all the bels belonging to that IP. With ninja, this is done in parallel on a per-design basis, allowing for potentially thousands of designs to be readied for use in training as fast as we can feed them to threads. It will immensely speed up the process of generating larger training data sets.

-Added isoblaze as a submodule -added new paths for isoblaze -added new paths for isoblaze -updated module docstring -intermediate commit for move to another machine -finished ip dumping utility -Completed basics of flow -Bug fixes on flow to ensure it can run without error and with proper formatting of outputs

jgoeders commented 6 months ago

@KeenanRileyFaulkner OK, I think it should pull in isoblaze correctly now, but I don't see a CI test for it yet, so once you create one we should be able to tell.

I've created some basic code to pull in isoblaze here, but if there are commands that need to be run to compile it, they should be added here.

Also, there is now code to check whether the necessary tools are installed prior to running a flow. If you want to improve this function a bit, that would be good. For example, you could check to see if it had compiled correctly by looking for the necessary isoblaze binary (if that's appropriate, I'm not sure)

KeenanRileyFaulkner commented 6 months ago

@jgoeders There is nothing in Isoblaze that needs to be compiled for this flow to run, because it does not perform the analysis that Isoblaze can do with Standard ML. Dallin was not even able to get the mlton compiler onto goeders0, so we were compiling on our own machines and then using scp to copy the binaries over back when we were running that full analysis. I don't see that being a use case within bfasst in the future. If it is, for some reason, I think that we should have a separate PR on this repo that will address these types of issues.