Hard and Soft Macros
Expanding on the notion of incorporating design modules into standard technology libraries, various design companies are introducing functional components known as macros. These macros are intricate logic units that have been meticulously designed, verified, manufactured, and characterized using the specific technology offered by fabrication companies. Soft and hard macros are accessible for reuse in designs, typically under licensing or royalty arrangements. These macros are presented as soft cores and hard cores, ready to be integrated into System-on-Chip (SOC) designs.
Soft Macro
A soft macro refers to a core equipped with source code in a Hardware Description Language (HDL) behavioral module. This core is intended to be integrated during the front-end or logic design phase, preceding synthesis. Designers can tailor or construct wrapper code, which is specialized interface logic designed to integrate the softcore into the SOC’s logic. They also have the freedom to choose the fabrication technology that suits their requirements.
Hard Macro
On the other hand, a hard macro is a core that can be integrated during the physical design stage. However, unlike the soft macro, there is no provision for customization, and the flexibility to select the fabrication technology is limited. Various types of macros are available, encompassing processor cores, standard interface cores, memory control cores, and bus bridges. Notable examples include processor cores like ARM’s Cortex M3/M4 and advanced cores, Synopsis’ ARC core, MIPS core, standard interface cores such as PCI Express core and USB cores from multiple vendors, as well as high-performance, interconnect/interface blocks like ARM’s AHB master-slave cores, AHB-APB bridge, and AXI interconnect cores.
In essence, these macros provide designers with pre-designed, pre-verified building blocks that streamline the development of complex SOC designs. They offer both soft and hard-core options, catering to customization needs and fabrication technology preferences.