There are a few options available for acquiring Cortex-M1 and Cortex-M0 soft CPU cores to use in FPGA or ASIC designs. The main options are directly from ARM, from third-party IP vendors who license the cores from ARM, or develop your own soft core that is compatible with the ARM instruction set.
Acquiring from ARM
The most official way to acquire a Cortex-M1 or M0 core is directly from ARM itself. ARM offers various licensing options for its CPU cores and other IP.
For the Cortex-M1/M0 cores specifically, ARM offers two main licensing options:
- Simplified SoC License – Allows use of M-Profile CPU cores along with a limited set of peripherals in a custom SoC design. This targets smaller companies looking to integrate Cortex-M cores into an ASIC or FPGA.
- Value Chain Aggregator License – For companies developing and selling Cortex-M powered chips to be used by other companies in end products. This license allows for broader use of ARM IP.
The advantages of licensing directly from ARM include getting the exact IP blocks you need from the IP source, support and maintenance from ARM, confidence that the IP works correctly per the specifications, and the ARM brand association.
The downsides are the upfront licensing costs which can be substantial, royalties that may need to be paid, and restrictions on how the IP can be used or transferred. There are also often minimum volume requirements.
Third Party IP Vendors
Another option is to license a Cortex-M1 or M0 core from a third-party IP vendor. There are many vendors that license cores from ARM then package, integrate, verify and resell them.
Some of the major vendors offering Cortex-M class cores include:
- Synopsys DesignWare -Offers DesignWare ARC EM Family cores compatible with Cortex-M3/M1/M0.
- Cadence Design IP – Offers Tensilica Diamond Standard 106Micro controller compatible with Cortex-M3.
- CAST, Inc – Offers CAST32 family of 32-bit cores compatible with ARM.
The advantages of going through a third-party IP vendor include potentially lower licensing costs, ability to just get the specific IP block needed without other unnecessary components, and working with an IP packaging expert. Some third party vendors also offer related tools and services around integrating, verifying and supporting the IP.
The disadvantages are that the IP is one step removed from the original ARM designs, may not be 100% specification compatible, limited roadmap control, and potentially uncertain longevity of IP support.
Develop Your Own Soft Core
A third option is for an organization to develop their own custom soft core CPU that is compatible with the ARM instruction set architecture (ISA). This is a major engineering effort but provides the most flexibility.
Some key considerations and steps for developing a custom ARM compatible soft core include:
- Ensure you have an appropriate ARM architectural license for the version of ARM ISA you want to be compatible with (v6-M, v7-M, etc.)
- Review the architecture reference manuals closely to understand the detailed interfaces and behaviors needed
- Decide which optional components of the architecture to support or not support in your custom core
- Develop a microarchitecture and RTL implementation that maps to ARM ISA
- Write testbenches to verify compliance with ARM architecture
- Fabricate test chips to validate real hardware works
- Iterate on design to meet performance targets and fix any bugs
- Maintain and enhance core as ARM ISA evolves
The advantages of a custom core are complete control and customization for your needs. You only pay for internal engineering work rather than IP licensing costs. And you own the resulting IP.
The disadvantages are the large development costs and risks. It takes a skilled team 12-18 months to develop a custom core. Internal expertise in microarchitecture is needed. And compatibility bugs may slip through resulting in respins. Ongoing maintenance of the core ties up valuable engineering resources.
Acquisition Considerations
Some key considerations when deciding how to acquire Cortex-M class cores include:
- Cost – What is the total cost including licensing, royalties, and internal engineering?
- Expertise – Does your team have the skills to integrate and maintain third-party or custom cores?
- Time-to-market – How quickly do you need the core integrated and working in silicon?
- Performance – Do you require specific performance or bandwidth targets?
- Power – Do you have power consumption constraints to meet?
- Support – Will you get ongoing support for IP updates and maintenance?
- Roadmap – How much control do you need over future core roadmap directions?
For most teams, starting with an ARM or third-party core makes sense to get to market quickly. A custom core can be considered later once expertise is built up.
Conclusion
Acquiring a Cortex-M class CPU core for an FPGA or ASIC design is an important decision. ARM and third-party IP vendors offer pre-made and verified cores, providing a quicker path to integration versus developing a custom core in-house. Factors like cost, performance, expertise, and maintenance support should be weighed when selecting the best option for your program needs.