LONDON A Chinese graduate student is offering freely downloadable source code for the description of a synthesizable processor core claimed to be compatible with the ARM7 32-bit RISC processor developed by ARM Holdings plc (Cambridge, England). The core is available through the OpenCores Web site.
Although the core is a student project and unlikely to hurt ARM's position as a leading supplier of RISC microprocessors, its availability could be seen to undermine ARM's control of its architecture.
OpenCores is a loose but global affiliation of hobbyists, students and professional engineers. The organization shows more than 50 hardware cores as "projects" at its Web site and lists 24 as complete, including the so-called nnARM core from ShengYu Shen of the National University of Defense Technology at Changsha, Hunan province, in China.
Although open-source or free hardware cores might seem attractive, they are widely held by industry observers to be difficult or impossible to use commercially because they lack the legal and engineering support that a proprietary architecture usually includes. But the academics, engineers and hobbyists continue to clone popular cores.
The latest ARM7-compatible core, the nnARM, is not the first ARM clone. PicoTurbo Inc. (Milpitas, Calif.) has a series of cores which it claims are compatible with a couple of ARM instruction sets. And a group of Swedish university students developed a near-clone of the ARM7 called BlackARM and presented a paper on a dual-BlackARM design at the Design Automation and Test Europe conference held in Munich, Germany, in March.
However, PicoTurbo, whose cores are available commercially as licensable intellectual property, is involved in a patent infringement lawsuit initiated by ARM, and the students of Malardalen University at Vasteras, Sweden, have never offered the source code for BlackARM.
In contrast, the nnARM, which has yet to be implemented in either ASIC or FPGA, is freely available.
According to Shen, the nnARM is very similar to ARM7 from a programmer's view, but its internal structure has no connection with the ARM7.
A near but not perfect clone of the ARM7 according to the OpenCores Web site, the nnARM runs all ALU, multiply, MAC and Program Status Register instructions. It also supports all single data transfer instructions, branches and certain forms of conditional execution.
Proving that the nnARM is very much a research vehicle, there are still several ARM functions it does not support. It does not support interrupt and exception handling, single data swap, block data transfer or coprocessor instructions, although Shen continues to upgrade the design.
"I plan to go to FPGA, but as you know, the whole process that makes a high-performance processor is very complex, even on FPGA, so I will not go to FPGA soon," said Shen.
Shen said that he wanted to see a version of the Linux open-source operating system kernel running in simulation before he tries to blow the nnARM into an FPGA.
"I haven't thought about a business yet," said Shen. "Surely this design will not succeed without support, but now I have only one person to develop this core, myself, so support is poor. I will try to do better."
ARM has consistently said it is broadly supportive of academic research around the ARM architecture carried out within an appropriate legal framework, but that it does not take commercial cloning of the ARM lightly.
However, seeking to prevent downloads of source code for ARM-like cores, either from the Opencores Web site or direct from a server in China, could prove difficult.