Swedish students weigh next step with ARM7 clone
By Peter Clarke, EE Times
January 26, 2001 (7:38 p.m. EST)
LONDON — A group of research students from the Malardalen University (Vasteras, Sweden) have developed a near clone of the ARM7 processor CPU and are now considering how to improve it. One possibility is to add the multiply instructions they originally omitted to minimize the gate count of the core, dubbed BlackARM.
The researchers are also considering whether to make the VHDL source code available for free under an open-source license, or whether to try and build a business around their work.
Either step, however, could incur the wrath of ARM Ltd. (Cambridge, England), which developed the original ARM7 and has its own business model based on licensing ARM cores to chip makers and receiving royalties for chips that include the cores.
Raimo Haukilahti worked on BlackARM as part of his PhD thesis on a reconfigurable multiprocessor platform, alongside Mikael Collin and Mladen Nikitovic, two research engineers at the Malardalen Real-Time Research Center at Malardalen University. The group claims to have used only public-domain documents and Web information to develop the BlackARM — principally the instruction-set manual for the ARM7TDMI core.
The three, together with supervisor Joakim Adomat, will present a paper at the Design Automation and Test Europe conference in Munich, to be held March 13-16.
The conference paper discussing the system-on-chip is entitled "Socrates: A multiprocessor SoC in 40 days." In it, the authors describe how they have implemented a multiprocessor system comprising two ARM-clone cores, together with a hardware real-time scheduler and an I/O unit on a Xilinx Virtex XCV1000 field-programmable gate array. The two processors share the 16 kbits of RAM available on the FPGA.
The students said that their decision to develop the clone was made after it proved impossible to obtain a "university license" for an ARM7TDMI from ARM, and it was too expensive to obtain the processor as intellectual property in the form of a hard core.
"It's a clone. It's implemented in an FPGA. It runs almost every ARM instruction," said Collin. "It's rather slow: 15 to 17 MHz," he added.
The processor executes a sub-set of the ARM7TDMI instruction set, but the multiplication and coprocessor instructions, and the state-changing instruction do not work. The state-changing omission means that the clone only operates in the full 32-bit ARM state and cannot drop into the Thumb mode of operation, which expands 16-bit Thumb instructions into 32-bit ARM instructions on the fly, or makes use of an arithmetic logic unit that can handle both the Thumb and the full ARM instruction sets.
The Socrates group further simplified the ARM core by opting not to implement an ALU pipeline.
"For predictability reasons we built it without a cache. And there's no ALU pipeline, just a simple state machine. Basically it's an ARM instruction chewer," said Collin. But the group has also included a prefetch instruction, something not included in the ARM7TDMI.
"We have discussed whether we should put it out for free. Some people at the university think we should. Others think we should be more restrictive," said Collin.
"It has not been decided yet. Legal aspects have to be considered in depth," said Adomat, the group's lecturer and supervisor.
In the past, ARM is has discouraged open-source enthusiasts seeking to clone ARM cores. The company is suing PicoTurbo Inc. (Milpitas, California), a commercial developer of an ARM clone, for alleged patent infringement.
Mike Muller, chief technology officer at ARM, said the company had cooperated with universities all around the world and was very open to helping them get access to ARM cores.
With regard to BlackARM, Muller said, "Assuming it is an academic activity, rather than a commercial activity, I think we'd be broadly supportive. But we'd like to do that within a legal framework."
Muller continued, "However, we don't take commercial cloning of the ARM lightly."
As to the possibility of an open-source BlackARM, Muller said, "Obviously I wouldn't like it. I would rather work with them."
"The only approach we have made to ARM was when our supervisor met with a representative of ARM Sweden at a Mentor Graphics open day in Kista. He said it [our project] was interesting but we never heard more," said Collin.
Collin said that the team opted not to write a multiplier in the VHDL description of BlackARM because it would have taken up a considerable number of logic gates in an FPGA, and the team needed to get at least two processors onto the FPGA to meet the multiprocessor brief.
"Multiplication can be done in software, by repeated add instructions," Collin said. "For every instruction not supported an illegal exception is generated which also can be used to detect MUL instructions and 'trap' to a software multiplier."
The EDA tools the group used include VHDL for the design description; ModelSim from Model Technology Inc. for simulation; and Leonardo Spectrum from Exemplar for synthesis and for targeting the Xilinx Virtex device.
At this point, it's still not clear whether the BlackARM processor works properly.
"We have a little problem with the FPGA," said Collin. "We first got it [the design] up on the simulator in September 2000, but then we had to do a few bug fixes. With a 20-week master's thesis you don't get time to do a full physical debug; but the simulator is running applications," said Collin.