One of the things I *really* want to do is minimise the turnarounds I'll end up needing to do. This is my first ASIC project, so I'm not expecting to get it right first time, but having the tools in as good shape as possible is also a part of minimising the risk of a (costly) "bad run".
The initial port of just 'Magic' from the GIT repository version to something that compiles cleanly on the Mac produced a 300 KBytes patch file. That's gone off to Tim (Magic's author/maintainer) and hopefully we'll see the benefits in future editions of Magic, although he's busy adding new functionality to the program at this precise moment in time. In order to get Magic to compile and run now, all you need to do is install the relevant Macports for your OS, then at the top level of the Magic directory, type:
./configure --prefix=/opt/asic --with-tk=/opt/local --with-tcl=/opt/local make make install
ie: the standard sort of configuration that any linux software uses. The code ought to compile with no errors or warnings
Magic was relatively straightforward, but next up was Greywolf, the open source version of Timberwolf, the global placement engine. Greywolf doesn't route the details of individual cells (that's qrouter's job) but it does create a placement for all the standard cells within the design. Porting Greywolf took about 3 weeks of effort, and I'm still not sure it's entirely done. The code compiles, links and runs without error but I'm yet to verify an example design using the Mac based tools. That's up once all the rest of the tools are ported…
The final part to realise the design was qrouter - this takes the output of Greywolf and routes the connections of the individual standard cells to each other, using the placement that Graywolf has decided on.
All told, this was about 4 weeks of effort, with the heavy lifting coming in the form of porting Greywolf…