Magic does. There is a script for this in open_pdks, and as @Anish mentioned, it is also in the caravel repository under scripts/. The one in the caravel repo is specific to the caravel chip projects; the one in open_pdks is a bit more general-purpose. But I updated the one in the caravel project recently to run multi-threaded and have not transferred that update to the one in open_pdks.