The goal of these instructions is to build a single image that contains all the openroad tools used by openlane. This is done through three stages.
The repo already provides a snapshot of the tarballs which are generated by going through steps 1 and 2, so you can jump to 3 if we wish to save time building the tools.
The following make target iteratively builds each tool in a separate docker image (i.e. one docker image per tool).
make build-all
Then we export the binaries generated by each tool's image to tarballs in tar
directory.
make export-all
Finally, we merge all the tools in a single docker image.
make merge
You can choose to build a specific tool by running:
make build-<tool>
And exporting it by running:
make export-<tool>
The following are the available tools:
replace ioplacer opendp route fastroute opensta yosys tapcell magic resizer addspacers
If you wish to update the all the tools, you should first remove the generated tarballs:
rm tar/*
Following that, go through steps 1-3 to generate and update docker image.
You may also want to update a single or multiple tools which an be done as follows:
rm tar/<tool1>.tar.gz rm tar/<tool2>.tar.gz . . rm tar/openroad_tools.tar.gz tar/openLANE_flow.tar.gz make build-<tool1> DOCKER_BUILD_OPTS=--no-cache make export-<tool1> make build-<tool2> DOCKER_BUILD_OPTS=--no-cache make export-<tool2> . . make merge
This should you remove the existing tarballs. Then, build and export specific tool(s).