Re: Macros
A "soft macro" is a sub-unit of a chip (eg: a USB controller) that is presented as RTL code. Synthesis, placement and routing have not been done.
A "hard macro" is a sub-unit of a chip that has been synthesized, placed and routed so that the designer gets it as a GDSII layout description.
A soft macro can be synthesized and targeted at any process or library. For example, you may choose to implement the soft macro with a 65nm or a 45 nm process. A hard macro is implemented with a particular technology and this cannot be changed.