When looking to implement an ARM Cortex-M0 design on an FPGA, the two major FPGA vendors to consider are Xilinx and Altera (now owned by Intel). Both offer compelling options, so choosing between them really depends on your specific design requirements and constraints.
In a nutshell, the main factors to consider are:
- Supported development boards – Each vendor provides their own development boards featuring different FPGAs, peripherals, and tools.
- IP cores – The availability of pre-built IP cores like peripherals and interfaces can simplify integration.
- Design tools – Each provides their own suite of design and debugging tools.
- Processor optimization – Some devices have dedicated hard IP to optimize Cortex-M0 performance.
- Cost – This includes both hardware costs and tool licensing.
- Prior experience – If your team already has extensive experience with one vendor, sticking with them may be easier.
Xilinx Cortex-M0 FPGAs
For Xilinx devices, the primary FPGA families to consider for Cortex-M0 are:
- Spartan-7 – Low-cost FPGAs in the 45nm node with 6K-154K logic cells.
- Artix-7 – Mid-range FPGAs with higher performance and more features than Spartan-7.
- Kintex-7 – High-end FPGAs up to 683K logic cells.
Key advantages of using Xilinx FPGAs include:
- MicroBlaze soft processor – Xilinx offers their own soft CPU that you can customize and integrate as needed.
- Extensive IP catalog – Includes peripherals like UARTs, GPIO, Ethernet, DDR memory controllers, and more.
- Vivado Design Suite – Provides system-level design, RTL synthesis, place and route, and debugging.
- SDSoC development environment – Allows high-level C/C++ programming and fast system integration.
- Dedicated Cortex-M1 hard block – Available in the UltraScale+ FPGAs to optimize performance.
In terms of development boards, some popular Xilinx options include:
- Spartan-7 FPGA Starter Kit – Features Spartan-7 FPGA and provides early prototyping capabilities.
- Artix-7 FPGA Developer Kit – More advanced board with support for peripherals like Gigabit Ethernet and DDR3 memory.
- KINTEX® UltraScale+ FPGA KCU105 Evaluation Kit – High-performance board with Kintex Ultrascale+ FPGA, ideal for final system deployment.
Altera Cortex-M0 FPGAs
For Altera FPGAs, now sold under Intel, the main FPGA families for Cortex-M0 include:
- Max 10 – Low cost, power optimized FPGAs, up to 50K logic elements.
- Cyclone V – Mid-range FPGAs, suitable for industrial, medical, automotive applications.
- Arria 10 – High-end family, featuring hard floating point DSP blocks for signal processing.
Some key advantages of Altera/Intel FPGAs:
- Nios II soft core – Similar to Xilinx’s MicroBlaze, Nios II is Altera’s customizable soft processor.
- Quartus Prime design software – Provides the complete environment for system design and FPGA programming.
- Qsys system integration tool – Simplifies connecting IP cores like processors, peripherals, and interfaces.
- Embedded peripherals – DDR memory controllers, PCIe interfaces, Ethernet MAC/PHY, etc.
- ARM Cortex-M1 hard processor system – Available in select FPGAs for optimal performance.
Some example Altera development boards include:
- MAX 10 FPGA Development Kit – Starter board featuring MAX 10 FPGA, accelerometer, temp sensor, LCD display, and more.
- Cyclone V SoC Development Kit – Integrates ARM Cortex-A9 hard processor system and video codec engine.
- Arria 10 SoC Development Kit – Showcases ARM Cortex-A9 dual-core hard processor system and pantile switch reference design.
Comparing the Toolchains
Both Xilinx and Altera provide complete toolchains for Cortex-M0 FPGA development, but there are some key differences between Vivado and Quartus Prime:
- Vivado uses project-based design which makes it easy to manage all sources, constraints, etc. Quartus uses a flat approach with loose file management.
- Vivado has an intuitive flow for IP integration, RTL synthesis, and implementation. Quartus separates these steps more.
- Quartus offers advanced timing analysis and optimization techniques like physical synthesis.
- For programming and debugging, Xilinx uses the SDK while Altera has the Signal Tap Logic Analyzer.
- Quartus generally has better optimization algorithms resulting in higher frequency and utilization.
- Vivado runs faster, especially for synthesis, placement, and routing.
There is a learning curve with both tools, so engineers familiar with one may prefer sticking with what they know. But with some training, designs can be migrated between the environments.
In terms of actual performance between matched Xilinx and Altera FPGAs, results can vary depending on the design specifics. But here are some general tendencies:
- Altera FPGAs tend to achieve 10-15% higher clock frequencies. They have more advanced placement, routing, and optimization techniques.
- Xilinx achieves much faster compile times, often 2-3X faster than Quartus for similar designs.
- For complex designs, Altera provides more consistent and predictable results after placement and routing. Vivado can sometimes struggle with very complex timing closure.
- Xilinx offers more flexibility for floorplanning critical design blocks and hierarchies.
- Altera offers better power optimization capabilities, especially when using advanced low-power device features.
- Xilinx has adopted next-generation high-bandwidth memory interfaces like HBM and DDR4 ahead of Altera.
In real-world testing, an example benchmark design achieved 10% higher frequency in an Altera Cyclone V versus a Xilinx Artix-7. But the Xilinx design took 6 hours to compile compared to 14 hours with Quartus. So there are always trade-offs between the two.
Both Xilinx and Altera provide free WebPACK versions of their design software tailored for smaller FPGAs. But for larger devices and more advanced features, license costs can be a factor.
Comparing mid-range licenses shows Vivado HL Design Edition at $3,495 per year versus Quartus Prime at $2,295 per year. So Altera has a slight cost advantage on tools.
In terms of hardware, Xilinx and Altera FPGAs tend to be competitively priced within each class. The cost per logic cell is similar between families like Spartan-7 and Cyclone V. And higher-end families like Kintex Ultrascale and Arria 10 are priced proportionally to their capabilities.
So both provide flexible options spanning lower-cost to high-performance. The right choice comes down to the design requirements, tool preferences, and prior experience.
Implementing a Cortex-M0 design on an FPGA provides an ideal combination of software programmability and hardware flexibility. Both Xilinx and Altera offer proven technologies to build upon, with each having unique advantages.
For those new to FPGAs, factors like available development kits, IP ecosystems, and accessible design tools tend to favor Xilinx. Altera provides better optimized results for complex, high-performance systems.
By understanding the key differences covered here, engineers can make an informed decision between Xilinx and Altera for their next Cortex-M0 FPGA project. The “best” option depends on the specific requirements and team skills. But both vendors offer robust solutions to choose from.