Currently the extracted distribution is 2 GB large. More than half of that (639MB + 331MB + 178MB = 1.15 GB) is LiteX, ice40, and ecp5:
claire@lamarr:/opt/oss-cad-suite$ LC_ALL=C du -sh .
2.0G .
claire@lamarr:/opt/oss-cad-suite$ C_ALL=C du -shc libexec/nextpnr-ice40 share/icebox
224M libexec/nextpnr-ice40
108M share/icebox
331M total
claire@lamarr:/opt/oss-cad-suite$ C_ALL=C du -shc libexec/nextpnr-ecp5 share/trellis
113M libexec/nextpnr-ecp5
65M share/trellis
178M total
claire@lamarr:/opt/oss-cad-suite$ LC_ALL=C du -shc libexec/nextpnr-{ice40,ecp5} share/{icebox,trellis} lib/python3.8/site-packages/litex
224M libexec/nextpnr-ice40
113M libexec/nextpnr-ecp5
108M share/icebox
65M share/trellis
639M lib/python3.8/site-packages/litex
1.2G total
Maybe it would make sense to add a strip.sh script that can be used to easily remove some of the larger components. For example:
/opt/oss-cad-suite$ ./strip.sh -y -d ice40 litex # delete these components
/opt/oss-cad-suite$ ./strip.sh -y -k ecp5 # delete all other strip-able components
/opt/oss-cad-suite$ ./strip.sh -n -d ice40 # show what would be removed and how much space that would free
/opt/oss-cad-suite$ ./strip.sh -d ice40 # display -n output, then ask user y/n on performing the action
/opt/oss-cad-suite$ ./strip.sh # display components, their size, and which components have been stripped
Currently the extracted distribution is 2 GB large. More than half of that (639MB + 331MB + 178MB = 1.15 GB) is LiteX, ice40, and ecp5:
Maybe it would make sense to add a
strip.sh
script that can be used to easily remove some of the larger components. For example: