Macro
From http://88physicaldesign.blogspot.com/2015/10/what-is-macro.html:
Macros are intellectual properties that you can use in your design. You do not need to design it. For example, memories, processor core, serdes, PLL etc. Macros might have a fixed function, or being parameterised. Your own design could become a fixed-function macro that some other designer could use, but a parameterised macro includes design elements and code that says how to build a macro to suit a particular set of parameters - for instance the number of words in a memory and how many bits wide it is.
A good example would be memory that’s been created by OpenRAM. Typically for larger memories in a design you want to avoid using lots of flip-flops. A memory created from flip-flops is much bigger than something that has been optimised just for data storage. A memory made with flops would also likely be slower and much more power hungry than a sensibly designed memory macro, which might make use of special function cells that are not part of the standard cell library used by synthesis.
OpenRAM creates a macro that you can then use in your design without having to deal with the details inside.
This talk by Matt Guthaus explains OpenRAM and its current status. Skywater 130 support is being added and is being tested in the first tapeouts.
Course feedback
For a very long time I’ve been fascinated by ASICs and have been close to them in my professional life as well, but not really as much into the detail as I would want. It’s been a fascination since grad school at least, so I've been interested in seeing more open source alternatives crop up, and now with the skywater PDK and OpenLane it seemed like the right time. It’s still a bit hard to get the motivation to get started, it feels like a bit of a hurdle so when I saw this course I just jumped right on it. It felt like a perfect way to get started.