|
With more that 2.45 billion products shipped with an ARM processor in 2006, ARM (www.arm.com) is undeniably the industry-standard architecture for a wide variety of embedded systems. In addition to the processors themselves, ARM products boast a vast ecosystem of development tools, a tremendous range of AMBA-compliant peripheral IP, a huge volume of program code, and broad industry knowledge and support.
Soft-core versions of ARM processors have been available in FPGAs for some time. Until now, however, none of these processors was originally conceived and designed with an FPGA implementation in mind. This situation just changed with the introduction of the Cortex-M1, which is the first ARM soft core to be designed from the ground-up for use in FPGAs.
How the Cortex-M1 fits into the ARM lineup
In order to see how the Cortex-M1 fits into the "big picture," a brief overview of the most prevalent ARM processor families is in order (Fig 1). The 3-stage pipeline Von Neumann-based ARM7 family was introduced in 1993. This was followed by the 5-stage pipeline Harvard memory architecture ARM9 in 1997 and the 8-stage pipeline Harvard memory architecture ARM11 in 2002. All three of these processor families are still widely used.

1. The Cortex-M1 provides Thumb instruction set upwards compatibility.
More recently, ARM started to introduce its Cortex processors, which are categorized as Application (A) series, Real-time (R) series, and Microcontroller (M) series. Introduced in 2004, the 3-stage pipeline Cortex-M3 is a 32-bit RISC processor that was specifically developed to provide a high-performance, low-cost platform for a broad range of applications including microcontrollers, automotive systems, industrial control systems, and wireless networking.
In 2005, ARM introduced the high-performance superscalar Cortex-A8 processor, which can scale in speed from 600 MHz to more than 1 GHz. And, in 2006, ARM presented the 8-stage pipeline Cortex-R4 to the market for use in very high volume deeply embedded applications such as hard-disk drives, inkjet printers, and automotive safety systems.
Now, ARM is introducing the 3-stage pipeline Von Neumann Cortex-M1 processor, whose high-frequency, low-area design has been developed with FPGA implementations in mind. The Cortex-M1 can execute all existing Thumb code from ARM7-, ARM9-, and ARM11-based designs. Furthermore, the Cortex-M1 is upwards compatible with other members of the Cortex family. Based on the 16-bit Thumb instruction set for code density, but with additional 32-bit Thumb-2 system instructions, the Cortex-M1 instruction set has a lightweight Thumb-2 profile, making it an ideal C compiler target.
Designed for FPGA implementation
The Cortex-M1 has been designed from the ground up for use in FPGAs. Its RTL has been optimized for use in multiple FPGA fabrics, and the Cortex-M1 can be implemented on any FPGA device from Actel, Altera, Lattice Semiconductor, QuickLogic, and Xilinx. Furthermore, the Cortex-M1 has support from major FPGA synthesis vendors such as Mentor and Synplicity.
A key feature of the Cortex-M1 is its configurability, which allows it to use the least amount of FPGA fabric and resources necessary to satisfy the requirements of the target application. For example, debug capabilities (4× breakpoint and 2× watchpoints) can be included or removed; operating system extensions for such things as system timers and software interrupts are optional; the designer can employ anywhere from 1 to 32 interrupts with four priority levels; the size of the instruction and data cache memories can be set to 0K, 1K, 2K, 4K . . . up to 1,024K; the user can select the multiplier unit to be fast or small; and the core can be set to work with big- or little-endian memory implementations.
FPGA-based Cortex-M1 implementations will be of interest for a wide variety of applications, including portable/consumer products (personal media players, wireless devices, digital cameras); automotive applications (ABS and traction control, infotainment systems); industrial control, robotics, and medical applications; and telecom and mil/aero applications.
The lead FPGA partner and the first licensee for the Cortex-M1 is Actel Corporation (www.actel.com) which has just announced that this core has been added to its soft core processor line-up (Fig 2). The Cortex-M1 has been optimized for use in Actel's M1 ProASIC3/E and M1 Fusion device families, in which it can operate at up to 72 MHz and be implemented in as few as 4,300 tiles. In the case of a M1AFS600 Fusion mixed-signal FPGA with 600,000 system gates (13,824 tiles), for example, the Cortex-M1 consumes less than 30% of the device's digital logic resources. By comparison, in the case of a M1A3P1000 ProASIC3 low-cost digital FPGA with 1,000,000 system gates (24,576) tiles, the Cortex-M1 consumes less than 20% of the digital logic resources.

2. The Coretx-M1 joins Actel's existing line-up of soft processor cores.
Price and availability
Of particular interest to designers is the fact that the Cortex-M1 core is license-free and royalty free to Actel customers; all that is required is that they purchase an M1 device. The Cortex-M1 core is available in Actel's easy-to-use graphical interface CoreConsole, which also includes a wide range of AMBA-based peripheral IP. Supporting the fast assembly and configuration of user designs, and providing seamless integration with Actel's comprehensive FPGA design and development software, Libero IDE, CoreConsole is available for free download from www.actel.com. Soft-core early access will be available in Q2 2007; M1 device early access will occur in Q3 2007; and M1 device product release will be available in Q4 2007.
But wait, there's more. . .
Actually, this really isn't directly related to the above per se, but I found it interesting and I'm the one who is working late at night writing this article, so what I say goes!
The point is that Actel have a family of FlashPro device programmers that support theit various device families, such as Fusion (including ARM-enabled devices) and ProASIC3/E (including ARM-enabled devices). The programmer that really "tickles my fancy" is the FlashPro3 because it's just so "dinky" (Fig 3)

3. Perhaps the coolest member of the FlashPro device programmer family is the "dinky" FlashPro3 (0.93" × 1.85" × 2.4").
Can you remember the hulking old device programmers of yesteryear? You wouldn't want one of those sitting on your desk (or even in your office in some cases. By comparison, the FlashPro 3 (which connects to your Windows 2000 or XP machine via parallel port or USB connector) is tiny, weighing in at a minuscule 0.93" × 1.85" × 2.4". That's pretty "tasty" – I'd be hard-pushed to think of an engineer who wouldn't want one of these little beauties on their desktop!
|