Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is a big change in topgen. Some salient changes: - It always regenerates from scratch the ipgen in-memory configurations (as IpBlock objects) so it is truly incremental: the previous flow reused the pre-existing generated ipgen hjson if found. - It delays the actual ipgen file generation until the complete top config is generated. This is a step towards breaking topgen into smaller and mutually independent steps, thus enabling parallelizing them. - It converges with a single pass of process_top. In order to accomplish this some important changes are made: - Call some of the merge_top functions suitable for each specific ipgen prior to generating the in-memory hjson config. This means not all IpBlock objects are available, so these merge functions are instrumented to skip blocks missing. - The generation of ipgens are ordered according to dependencies. This order created from the expected block functionality, so is not derived from a constructed graph, but converging in one pass means it is correct. - Calling merge functions early means some of the objects in the in-memory top config are not plain dictionaries but are classes, so the code needs to handle either. Part of lowRISC#25920 Signed-off-by: Guillermo Maturana <[email protected]>
- Loading branch information