"Open-Source" ARM7 Core May Be On The Way 61
jbp4444 writes: "From EE Times:
Swedish students weigh next step with ARM7 clone.
A group of Swedish students implemented an ARM7 core on a Xilinx chip as part of a PhD thesis - but they used only publicly available information and documentation to do it. So they may be able to "open-source" the VHDL code that they wrote. This would enable others to have royalty-free access to an ARM7 core. They are still investigating their alternatives, so it is far from a done deal. Oh yeah, at the end of the article it mentions "it's still not clear whether the BlackARM processor works properly" -- due to the time constraints of a PhD thesis, they seemed to have skimped on the testing of the chip! [but note, they say it does run applications --t] In an odd coincidence, the same issue of EE Times (Jan. 29) also had a story on automakers investigating Linux for their in-car entertainment systems. Royalty-free OS coupled with potentially royalty-free hardware has an obvious appeal to many industries."
IP licensing... is hard (Score:1)
Besides that, there often exists steep entry fees to get the technology in the first place. I heard of an example where they 'started off' with about $ 1 million. Barely any support with that. That took another few millions.
FWIW, making a system-on-chip requires numerous parts. Maybe several processors, memory interfaces, bus interfaces, internal buses, specific units, USB/firewire/serial/I20/JTAG and many more. If parts of that are available, then you can start to design without making a big investment. If it works, you can license the rest of the necessary parts, if it doesn't then you drop it.
That the chip isn't tested is a big problem though. That needs to be done beforehand. Trying to solve/debug a design once it is integrated in a SOC then you have problems that take much longer. Believe me, I've done it.
Re:What use is this to me? (Score:1)
Re:They need to be careful... (Score:2)
__
Open source around the world (Score:2)
It sort of have proves their point, since it is something done by "foreigners". It also drives home the point that they do *not* own the world, not nearly as much as they would like to think they do. It also drives home the point that the rest of the world is likely to not take very kindly to them, especially if they start wrapping themselves up in this jingoistic political claptrap.
Let's face it, alot of the planet gets rather irritated by imperialistic mutterings like that. And so would embrace the efforts folks like this.
You do not need the overhead of a gui for a car computer. Only for the entertainment console, nav aids, etc, where it would be better to keep it embedded. and where size still counts.
sounds like these guys have an interesting future ahead of them
Re:This isn't anything special (Score:1)
There are a lot of companies that don't really care about chips and OSes (like those developing automotive entertainment systems), they just want to push a product out the door quickly and cheaply. My original point was more that an open-* approach (if more well known) could help lower the entry costs for new companies - potentially stimulating innovation as has happened within the Linux community.
Re:Limited Instruction Set (Score:2)
If a company (like a car company) wants to use arm processors in their mass-produced products, they:
1) won't use FPGAs because they're WAY too expensive
2) will find it much easier (and cheaper) to just buy a full version (like the Intel SA-110) instead of contracting out to fab their own.
Re:Don't buy it! (Score:2)
What arm arm chips (a reply) (Score:1)
The arm chip has always been fast with a 200 mhz Strong arm running on a few watts and being used in loads of palm devices. I do believe that a few years ago people at UMIST in the uk produced a clockless version called the Amulet but i cant find a link at the moment. I was once told by an ubercoder friend of mine that the only reason there was no real FPU on the strongarms (faster than arm7) was that that would compare with alphas....
Re:Desktop fab (Score:1)
Other uses for FPGAs (Score:1)
a) It's field programmable. That means that if I discover a bug, it's not going to result in a huge recall. It'll result in a new source file or possibly asking your customers to visit the service desk to fix.
b) It's highly parallelizable. Make a standard bus and come up with a simple processor that you can put on one of the lower-end FPGAs (usually under 1$) and you can build a HUGE cluster very cheaply. If you setup your bus right, it can even be reconfigurable live. So most of your FPGA stack is running executable code, but if you need to make a buffer chip for USB, just pick one of your FPGAs and reprogram it. If you need a motor driver, pick an FPGA and reprogram it. You get the idea; TRUE plug-n-play, using the standardized hardware design languages (HDL) out tehre. Combine this highly parallelizable computer with a standard connection format and you have hardware device drivers.
c) Prototyping. If you are a hardware manufacturer, you can cheaply prototype your design and test it without having to make a die each time (HUGE cost savings)
d) May be used as an analog device, or simply as a digital logic device. You don't have to run a core on it... and if you think of the HDL as your programming language, then you compile to the chip. These chips aren't setup such that they have to run a Turing machine; if you can design your code right, then you don't have to run a CPU. Works great for Embedded apps. The real benefit to Open Source Hardware will be when it merges with Open Source Software. Like a C-compiler for FPGAs. Sure, the lower-end chips can only respond at a fixed rate (usually 16MHz or so), but if you have a program that doesn't need to respond faster than that and is relatively small, you get huge speed savings... not to mention the fact that you can offload computations from your main CPU.
Does anyone out there have any more ideas for this sort of thing? I'm trying to get together a group to do this... especially the Open Source firmware idea... any takers?
What goes around, comes around (Score:1)
It was created by a few geniuses from Acorn; based on the 6502; as the processor they needed for their concept of a future PC. It was created within a budget that wouldn't even pay the coffee bill of Intel. Since they couldn't afford a 'proper' fab, they designed it for contruction on an ASIC. That is how it was implemented, and shipped to thousands.
The rest is history (and development).
Having met and chatted with those involved (Steve Furber, Mike Muller, etc.), you get the sense that the reason it was such a success was it was a small group, with one focus, lots of brains, and no bullshit. I believe they would have understood these student's work.
Although they would have expected them to do something new, not just reinvent the past.
Another open source RISC processor. (Score:1)
Anybody realize just how expensive this thing is? (Score:3)
Re:They need to be careful... (Score:1)
I recently bought (http://www.burchEd.com.au) a spartan-2 development board for $120. It has roughly half the gates (and is of the same architecture) of the virtex chip used in the article - some 200,000. This is an enormous number of gates!
The s/w to program it is available free from Xilinx, and is actually rather good. Far better than the (non-free) Atmel s/w, IMHO. It's called WebPack ISE and is downloadable from the xilinx website (for those of us with broadband, anyway
The costs of quantity-1 XC2S200 chips is ~$35 from various providers. This is cheap enough to let the home user actually start playing with h/w as well as s/w. If you've ever looked at verilog, it's actually quite similar to 'C'. Granted there are extra things and it's an inherently parallel language, but it's still reasonably familiar.
To give an idea of what can be done on an XC2S200 chip, go to http://www.fpgacpu.org/ and read about the gr0040 design from Jan Gray - a 16-bit RISC cpu optimised for Spartan-2/Virtex FPGAs. You should be able to fit 14 or so into the chip! So now you can start to play with SMP on your own hardware...
Well, I think it's cool anyway
Re:What use is this to me? (Score:2)
FPGA stands for Field Programmable Gate Array. If it isn't reprogrammable, it isn't an FPGA. I'm sure Actel or QuickLogic would have you believe their OTP parts are "FPGAs" but I'm afraid they just aren't.
oh bah, that's such nonsense. the term "FPGA" has become a broad term to mean basically any programmable logic more complex than a CPLD. granted that while the field part of the acronym refers the ability for these parts to being programmed in the "field," the term has become generic enough that "antifuse-FPGA" is perfectly acceptable. but whatever, it's still a valid use of the term these days, and they could be used in this case. but lighten up: nobody likes a literalist ;) hah.
About the speed: the parts Xilinx released a year ago run to 100MHz.
yeah, exactly: 100Mhz. big deal. i know from personal experience that Actel's SX (from around the same time period) operate at well over 300Mhz (though they only guarantee 250Mhz in a production setting, as not all designs will run that fast).
The main problem isn't the speed of the parts. It's the cost.
exactly, which is why antifuse clearly wins out here (if you're willing to put up with the fact that it's OTP). antifuse "FPGAs" are about 1/10th the cost of a comparable SRAM FPGA. plus it's easy to routinely get utilizations of over 95% with Antifuse: you'd be lucky to get 60% utilization on an SRAM FPGA. this is simply because the SRAM cells are too large to justify putting at every horizontal/vertical path junction. you can get 100% pin-locking on an antifuse FPGA even at full logic utilization! that's a considerably better value for your money.
the thing is, Antifuse FPGAs are superior to SRAM in absolutely every way (price, power consumption, performace and efficiency, plus you don't need an external EEPROM) except that they're only one-time programmable. hobbists usually like to get a handful of reprogrammables and "play around" with them, and that's fine. but if you're serious about making "open hardware" and using it in a device that you actually care about it would be worth your while to do good synthesis on the PC and then burn the antifuse FPGA for a high speed, low cost, low power decent device.
end rant. hah. that was longer than i intended it to be. can you tell that i used to work in Marketing at Actel? (and before you blow me off completely for that, i worked in Product Engineering too) :) more information on Antifuse can be found here [actel.com]. i should know, i helped write it :).
- j
Re:Open Source FPGA tools (Score:1)
jeff
Re:Open Source FPGA tools (Score:1)
Re:Desktop fab (Score:1)
VHDL is a concurrent language, which is different from all the software languages I know of. Concurrent here means that instead of going line by line through the code, every line happens at the same time. This makes sense, because in a circuit layout, electricity flows through all the wires at once.
There are cases (like if then else statements) when sequential logic needs to be used, but this gets put into an object called a process, that will have an sensetivity list with it. Any time a signal in the sensativity list changes states, the process will get executed.
In other posts on this topic they mention free VHDL tools. You should get a book from the library on VHDL, and check out one of those tools if your still interested in the hardware aspect of CS (most people call it computer engineering)
Dave
What use is this to me? (Score:1)
ARM (Score:5)
Contrast this with Sun Microsystems [sun.com] who use the SPARC [sparc.org] processor under license. As far as I'm aware, they don't even manufacture SPARCs themselves, but rely on a third party foundry. Why is this relevant? Because SPARCs are also used by many vendors [sparc.org] and you can even get the chip architectures [sun.com] if you wanted to implement it yourself, then have your design properly verified [sparc.org].
They need to be careful... (Score:5)
ISTR that OpenCores [opencores.org] were warned not to do an open source ARM compatible processor by ARM. This was probably because ARM [arm.com] is really an IP only company, and if someone comes along and builds their own which is free, then their entire market could collapse.
Then again, the ARM7 processor isn't ARM's latest offering, so they may be lenient.
If you want to know more about the ARM 7 processor, then here [arm.com] is the place to go.
Re:Open Source FPGA tools (Score:1)
It's almost like we have the tools to compile to assembly, but no assembler. And in this case, the assembler is a much more difficult thing to build than the compiler portion. Perhaps an even better analogy would be to java. There are open source tools to compile java into jvm assembly, but if you don't have a java runtime package for your desired platform, this doesn't do you much good.
Re:What use is this to me? (Score:4)
Note guys, two things:
1). They haven't tested it anywhere near what the
average chip gets before it is even publically
mentioned.
2). The core runs very slowly at the moment and
lacks "basic" functionality like pipelining
and caching.
Still, it's cool and nice to see this sort of thing (see also Open Cores project, etc.) but at the moment it's a bit of academic fun and nothing more - you won't be throwing away your Athlons for now
--jcm
Re:Here's a test (Score:1)
Simulation of a design usually takes far longer than implementation. Designing chips is similar to software in that respect, it doesn't take that long to write something that will compile, but writing bug-free code is a whole 'nother thing.
I have no idea how large the design is, but by the time you find an FPGA that is large enough to hold the design, you may be better off just buying an AMD K6-II and chipset. Not to mention that you need device programmer in order to program the chip.
Xilinx and Altera will usually give away some basic synthesis and simulation tools as part of their design kit. I doubt that the open source world will want to take up development of these kinds of tools, they tend to be pretty complex and not that appealing to the average hacker, but I'd love to be proven wrong here.
Re:Open Source FPGA tools (Score:2)
Simon.
Re:Desktop fab (Score:2)
Loads-a links here: http://www.mrc.uidaho.edu/fpga/
Re:Desktop fab (Score:1)
Re:First legitimate comment... (Score:2)
I love 'em, I do. Lovely processor to work on. :)
Re:What use is this to me? (Score:2)
Wow cool, you can download and run open source software without any special equipment like a computer and monitor and ram and disk drive?
Open source VHDL and Verilog designs are a GREAT concept.
When enough people catch on, then we'll start seeing open source VHDL compilers.
Re:Desktop fab (Score:1)
Re:Desktop fab (Score:1)
Re:WTF? [Offtopic] (Score:1)
I have just created this account and my UID is also in the billions....
---------------------------------
most comments (Score:5)
Whine, whine, whine, not useful because I can't fab the chip.
Neither do they. It's a Field Programmable Gate Array. I know most of slashdot are just software people, and don't really understand hardware so let me explain: An FPGA is built of many Combinational Logic Blocks (CLB's) with flip flops, buffers, and gate level logic. To implement an FPGA, a fuse file is created from an HDL (Hardware Design Language). This fuse file is used to determine which internal connections to the FPGA will be active and inactive.
Programming an FPGA from a computer isn't too tough. A cable needs to be made up that can handle JTAG communication with the part, and voila. It's funny to see people whining that progamming an FPGA is too hard, but on other stories saying they're going to build a portable atari, or hack their Tiva box.
FPGA's can be very useful for smaller runs of a chip, especially if the design has a good chance of changing. Since a lot of FPGA's are reprogrammable, screwing up the design doesn't have as big of an impact as screwing up an asic. Also, Asics only become economical when you make a ton of them.
For example, Motorola will probably use Asics for the hardware for their phones, since they make millions. On the otherhand, Nortrhop Grumman will use FPGA's for their missile jammers, since they make runs in the 100's.
FPGA's are designed so that their can be a multitude of different arrangements of connections inside the FPGA. This leads to not being able to optomize for speed as much. They can do most of the things Asics can do, but not as fast or efficiently, since they were designed to be multi-purpose.
DAve
Re:First legitimate comment... (Score:1)
Nope.. the dreamcast uses a SuperH Core.
Re:What use is this to me? (Score:4)
Still, it's cool and nice to see this sort of thing (see also Open Cores project, etc.) but at the moment it's a bit of academic fun and nothing more - you won't be throwing away your Athlons for now :)
and that's really the issue here: putting cores into an FPGA is nothing new, but i think the software-leaning slashdot crew need to get a handle on the sacrifices you make by using an FPGA (especially an SRAM-based FPGA like Xilinx or Altera). FPGAs are painfully slow when compared to an ASIC; they're really not even comparable. and when this chip doesn't even implement pipelining, it's going to have very few applications outside of casual, academic use.
while it may sound like a godsend to use VHDL to create hardware and put it in an FPGA, there's a really big difference between hardware and software. there are so many other steps that occur in creating an ASIC after the VHDL synthesis process, such as layout and floorplanning, that optimize an ASIC for speed and power consumption. an FPGA is only used to get a "rough" idea of the functionality of the chip, or to put simple "glue" logic on a board that doesn't justify spinning an ASIC. again, you really can't compare an FPGA-based processor to a real fabbed processor.
additionally, if you're looking to create a chip that you can actually use in any sort of device with reasonable speed and power consumption, you'd be much better off using a non-volatile technology FPGA from Actel [actel.com] or QuickLogic [quicklogic.com]. while you sacrifice reprogrammability, you'll gain considerably faster speeds, considerably lower power consumption, and a lower cost chip. once you program these FPGAs they're programmed for life (so if you make a mistake you'll have to throw it out), but if you synthesize your design sufficiently using software, the benefits of such a device are far outwieghted by their lack of reprogrammability.
at any rate, the dream of "open source" hardware is a nice one, but it's not nearly as golden an opportunity as you'd think by reading the slashdot comments. hardware and software are two totally different beasts, and the tools and techniques that work on one are not guaranteed to work on the other. after working in the hardware and semiconductor fields long enough i realize that hardware companies have the really solid business models, and aren't going to see opensource as competition anywhere in the forseeable future. in fact, opensource is being embraced by the semiconductor industry to increase the "value add" of the hardware itself. i personally push Linux at my company as much as possible, as i firmly believe that selling software isn't a solid business model unless that software is highly specific, or your company enjoys a monopoly in your industry. as much as this community may want it, opensource hardware is a long way off. you'd be much better off working with hardware companies to show them why funding opensource projects is in their best interest (and as a nice co-incidence, also in the best interest of the open-source community).
- j
Limited Instruction Set (Score:1)
"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,"
Currently at Penn State University this is a junior level course. We built the MIPS RISC processor, limited instruction set, no cache, no alu pipeline. Its was a single cyle cpu (hence not pipelined). With the poor gate delay of our VHDL tools (in NS) ours ran at about the same speed.
Re:First legitimate comment... (Score:1)
Useful (Score:1)
Transistors? (Score:2)
There's nothing in world like flipping the switch on a baby like that and watching the tubes start to glow, while all the lights in the physics building go dim.
You could even use it to keep your lunch warm.
kfg
Not a directly useful design (Score:4)
I don't think the car industry is going to be all that excited about getting a 16Mhz pair of CPUs on a chip that costs a lot more then a "real" 200Mhz ARM. One that can actually multiply numbers in hardware, and you know, has been tested.
A lot can come up going froma simulated FPGA design to the real hardware. Sometimes it can be fixed just by bringing the clock speed down a bit, but other times if you had an overdriven line or something the simulator will be great and real hardware a nightmare. Of corse I have done very very little FPGA work (population count, a NFA evaluator, a few other toy projects).
None of this means the BlackARM is crap, if someone works on it for a long time it could be useful, maybe optmised for an ASIC so it is cheeper (in quantity), and faster. Or maybe just using it (as is) to exparament with CPU perphrial integration (15Mhz CPU with an AES engine). It definitly had value in providing a duel CPU on a chip test platform for a lucky (hard working) Phd candiate...
P.S. I'm assuming the pair of ARMs is on a Xylinx Virtex baised on the 16K RAM number. The Spartin line doesn't have nearly that much RAM, but that is a lot more affordable, starting at under $1. The Virtex is still quite costly, it has a lot more gates, the SRAM, and and a higher max clock if you keep the circuit chains short (i.e. pipeline).
Why Open Cores are Useful and Relevant (Score:1)
FPGAs are programmable hardware devices. Traditionally, custom hardware has been lightning quick, but frightfully expensive (design and fab costs), and restricted to the task it was designed for. These disadvantages are overcome by FGPAs' reprogrammability.
Now one can purchase a standard chip (FPGA), design a custom hardware system on it, and program it with something as simple as a serial port cable. The fact that the chip is standard significantly lowers the cost (design and manufacturing). The fact that the chip is programmable means that it can be reprogrammed to perform a new task at any time. In other words, one gets the speed of hardware (well almost), with the reprogrammability of software, at a resonable cost.
This opens up all sorts of opportunities like an FPGA co-processor card for a computer. This card could be used to perform high speed processing of data by loading the appropriate core. An MP3 core could be used to encode or decode MP3's without any intervention from the processor. Later the same card could be used for image processing by loading another core. Complex (possibly custom) external interfaces (such as a multitrack harddrive recorder) could also be implemented when needed. All of this can be done while leaving the processor free to do it's job.
Outisde a computer virtual instruments such as oscilloscopes, multimeters, logic analysers, signal generators, spectrum analysers, etc. could all be implemented on the same FPGA card by just changing cores.
While this is still some way off the development of free, customizable cores is a big step in the right direction. One of the big obstacles to this dream is the very high cost (many thousands of dollars) and limited versatility of commercial cores. Open cores will help solve these problems. CPU cores (such as the ARM core mentioned here) ares just one example of potentially useful cores. There is also an need for PCI, SDRAM, and a number of other basic cores (see http://www.opencores.org for more examples).
Who knows? In a few years you might not even buy a CPU anymore! You could just buy a programmable chip which can be programmed to perform any task imaginable as required. Upgrading would be as simple as downloading new cores. And because it's hardware it will be much faster than any CPU! (I can dream can't I? ;)
Re:This isn't anything special (Score:1)
As always, the moderators don't have the ability to moderate the front-page.
Re:Limited Instruction Set (Score:1)
I'm having a hard time believing this. Just seems a bit too...ambitious for a senior level class. Seniors can be smart cookies, but the 21264 (EV6/EV67/EV68) is is 4 way OOO/full register renaming implementation of the Alpha architecture. It was a several-year design cycle for a large number of very smart engineers.
Perhaps you meant they implement a limited version of the Alpha architecture in verilog?
Utterly Useless (Score:1)
The ARM instruction set is very easy to decode, that has been the point for the last fifteen years.
Secondly, FPGAs are expensive components, by the time that you had built a workable core, even if
you attached off the shelf cache controllers and so on, you would still be looking at a cost well in excess of a genuine ARM based chip. it would also be slower (FPGA restrictions).
Thirdly being open source you would have no-one to blame, think about that when the engine controller in your car crashes, and blows the engine up.
Fourthly, if you could afford a fabrication facility (and so could circumvent the cost and speed problems) You could afford to buy a liscence, and get a made to measure core from ARM, and still have someone to take the blame.
This story wasn't even worth a mention.
Re:Desktop fab (Score:1)
FPGAs store the configuration data in SRAM.
You can very quickly and easily reprogram these
parts, in the time taken to essentially do a
'memcopy' And voila, you have new hardware
available. Any small bugs in your design can
be changed in a matter of hours (re-run synthesis/
layout and load it back into the memory)
More interestingly, newer FPGAs can be modified
on the fly, keeping parts active and loading up
new circuitry, making for all sorts of funky
options.
There not the only ones (Score:1)
Open Source ARM7 (Score:1)
Open Source FPGA tools (Score:1)
I'd love to hear different from anyone in the know.
This isn't anything special (Score:4)
First legitimate comment... (Score:1)
This has been another useless post from....
Don't buy it! (Score:1)
By buying cheap embedded RISC devices with high MIPS/die ratios, you're actually supporting the exploitation of overseas Malaysian and Tiwanese workers in horrible condidtions, (long hours, malnutrition) and funding money to hostile governments, and supporting the spread of socialism in the East.
Much better to use the western Intel-based CISC chips, and give the money back to hard-working americans, and the forces of capitalism. Sure, they might give off more heat, or waste more materials, but socially, it's the right thing to do. In the future, hopefully our technology won't be so embarrassingly wasteful, but for now we just have to bite the bullet, and support Democracy and freedom.
Re:First legitimate comment... (Score:2)
empeg - in car MP3 player (Score:1)
But it opens another Door (Score:1)
Re:Open Source FPGA tools (Score:1)
If you can't compile the VHDL code maybe someone will try to make an open-source compiler in the future, but since the chip-makers want's to earn money on the hardware you'll probably get a free VHDL compiler for their chip only. If you have that why would you want an open-source one instead???
OK, they leave out some simulation tool's so you might get some problems, but the core itself could get checked by someone with a commercial package.
Student rejection (Score:2)
Re:Here's a test (Score:2)
Open Source Nuclear Combat (Score:3)
So who's up for bombing sweden? I pulled a plan for a H bomb off of the internet. Didn't cost me anything, either...
FHPL? (Score:1)
Free as ARM, not as beer. Sounds good...
Desktop fab (Score:2)
Re:ARM (Score:1)
Yeah, Texas Instruments manufactures Sparcs for SUN microsystems.
__