diff --git a/CodeElements/Clustering/README.md b/CodeElements/Clustering/README.md index 8a8e443..fe23ba8 100644 --- a/CodeElements/Clustering/README.md +++ b/CodeElements/Clustering/README.md @@ -48,7 +48,7 @@ Finally, the Methods section of the [Nature paper](https://www.nature.com/articl * **Synthesis of the input netlist.** We use a commercial tool to synthesize the netlist from RTL. Synthesis is physical-aware, in the sense that it has access to the floorplan size and the locations of the input/output pins, which were informed by inter- and intra-block-level information. -## **II. What exactly is the Hypergraph, and how is it partitioned?** +## **II. What *exactly* is the Hypergraph, and how is it partitioned?** From the above information sources, the description of the [Grouping](https://github.com/TILOS-AI-Institute/MacroPlacement/blob/main/CodeElements/Grouping/README.md) process, and information provided by Google engineers, we are fairly certain of the following. * (1) Clustering uses the hMETIS partitioner, which is run in “multiway” mode. More specifically, hMETIS is **always** invoked with *nparts*=500, with unit vertex weights. @@ -95,20 +95,20 @@ than or equal to *net_size_threshold*. The default value for this parameter is 3 Our implementation of hypergraph clustering takes the synthesized netlist and a .def file with placed IO ports as input, then generates the clustered netlist (in lef/def format) using hMETIS (1998 binary). In default mode, our implementation will also run RePlAce in GUI mode automatically to place the clustered netlist. -We implement the entire flow based on $ `\textcolor{blue}{ \text{ OpenROAD APIs} } `$. -**Please refer to the $ `\textcolor{blue}{ \text{ OpenROAD repo} } `$ for explanation of each Tcl command.** +We implement the entire flow based on [OpenROAD APIs](https://github.com/the-openroad-project). +**Please refer to [the OpenROAD repo](https://github.com/the-openroad-project) for explanation of each Tcl command.** -We have provided the openroad exe in the utils dir. Please note that [The OpenROAD Project](https://github.com/the-openroad-project) does not +We have provided the openroad exe in the [utils](https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/CodeElements/Clustering/utils) dir. Please note that [The OpenROAD Project](https://github.com/the-openroad-project) does not distribute any compiled binaries. While we build our implementation on top of the OpenROAD application, our effort is not associated with the OpenROAD project. -Input file: setup.tcl (you can follow the example to set up your own design) +Input file: [setup.tcl](https://github.com/TILOS-AI-Institute/MacroPlacement/blob/main/CodeElements/Clustering/setup.tcl) (you can follow the example to set up your own design) Output_files: clusters.lef and clustered_netlist.def -Example commands: python generate_clustered_netlist.py ariane hmetis +Example commands: python [generate_clustered_netlist.py](https://github.com/TILOS-AI-Institute/MacroPlacement/blob/main/CodeElements/Clustering/generate_clustered_netlist.py) ariane hmetis -You can use the command: python generate_clustered_netlist.py -h for other options +You can use the command: python [generate_clustered_netlist.py](https://github.com/TILOS-AI-Institute/MacroPlacement/blob/main/CodeElements/Clustering/generate_clustered_netlist.py) -h for other options Note that the [example](https://github.com/TILOS-AI-Institute/MacroPlacement/tree/main/CodeElements/Clustering/design) that we provide is the ariane design implemented in NanGate45. The netlist is synthesized by Yosys, and the floorplan def is generated by OpenROAD. diff --git a/README.md b/README.md index 7d5aa99..2ea5a3f 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ ## **Testcases** The list of avaialbe test cases - Ariane (RTL) - - [136 macro](./Testcases/ariane136/) + - [136 macro (RTL files)](./Testcases/ariane136/) - [133 macro](./Testcases/ariane133/) - MemPool (RTL) - [tile](./Testcases/mempool_tile/)