Parallax Completes Open Hardware Vision With Open Source CPU
First time accepted submitter PotatoHead (12771) writes "This is a big win for Open Hardware Proponents! The Parallax Propeller Microcontroller VERILOG code was released today, and it's complete! Everything you need to run Open Code on an Open CPU design. This matters because you can now build a device that is open hardware, open code all the way down to the CPU level! Either use a product CPU, and have access to its source code to understand what and how it does things, or load that CPU onto a suitable FPGA and modify it or combine it with your design."
I run a company that releases all its hardware designs and am a huge proponent of OSHW. This gesture has limited utility simply because the people who use MCUs in designs aren't typically interested in delving into the minutiae of how the processor that runs the system is built. They're more interested in open source circuits which have real-world applications -- a low pass filter for smoothing PWM signals, a nice clean USB power supply, and so on.
Sort of like OpenRISC? Except, later and worse?
Is there an open-source FPGA design/implementation that you can run this on? Otherwise it's not really open-hardware all the way down, is it..
Here's an open FPGA design:
Put a buttload of OR gates in parallel.
Follow them with a buttload of AND gates
There just isn't that much design in a basic FPGA to open up, not that I can see.
What about the possibility of the FPGA being compromised?
I wonder how this CPU performs? Does it compare to anything I'd care about, or is it more akin to something I'd build a wifi router out of?
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Aside from absolutists positions like Stallman's, why is it important to have OS hardware? Why AMD64, Intel x86, or ARM is not good enough?
An open source soft CPU in a closed source FPGA, how is that any different from an open source software in a closed source hard CPU?
We need the equivalent of Shapeways for affordable hobbyist VLSI fabrication. That's the only way to know there's mo backdoors in your processor. Unfortunately maskmaking costs dominate prototype-scale fabrication runs, even at large linewidths like 0.35 micron. There was a movement some decades ago towards direct lithography on wafer to eliminate the mask step, sort of like using a laser printer instead of offset printing, but it never got traction.
Spin code is written on the Propeller Tool, a GUI-oriented software development platform written for Windows XP.
Good ole Chip must heve missed the memo about the retirment party for XP in Redmond.
But aren't all Intel and Amd cpu's(not gpu integrated portion) open sourced already, since day one? You can get any information(architecture, instruction sets, etc...) on any intel or amd from their websites. I mean isn't this why it was possible for linus and others to develop linux or freebsd. Or are we talking about non-proprietary instruction set vs intel's x86 and amd's x64?
Class Envy of RMS???
the Prop came out before the Arduino and still blows anything in the Arduino family out of the water, except for needing some external parts to do ADC. Can't wait for the Prop 2.
Liberty - Security - Laziness - Pick any two.
For a second there I thought parallax had executed a machine vision sensor system driven by their micro-controller. That would have been so much cooler than this all but empty gesture.
Common Sense isn't as Common as people think...
Does it run Crysis?
...and anyone who isn't intimately familiar with microprocessor design, along with every other step of code along the way will still have to trust someone along the chain.
Shut up and take my money!
Its a real nice gesture on their part and kudos to them, but I dont see this being a huge deal in the long run. I really do not see people that need to use a propeller in their product ( are there any ? ) wanting to go to a more expensive and slower FPGA ( or even a custom ASIC )..
I could be wrong...
---- Booth was a patriot ----
If you know anything about the CPU microcode, update method, etc, you'd know that despite 'open documentation', there is a huge amount of unknown logic within a modern x86/x86_64/arm32/arm64 cpu. And in the former 2 cases the update-able microcode meant to help fix 'errata' could just as easily be coopted to introduce errata, assuming there aren't already 'undocumented (to the public)' backdoors included in the current iterations of the microcode, perhaps even changed between 'bugfix' microcode releases to ensure it won't be discovered there's a singular (and thus implausible as a 'design oversight') exploit available to gain privileged access inside the cpu.
That said, most of this is moot, thanks to ARM's 'Trustzone' and Intel's 'Trusted Execution Technology' combined with the remote management infrastructure.
The Clipper Chip lives again! (wikipedia it, compare it to Trustzone/the intel equiv, and ponder for yourself)
The era of 'Wild West' computing is going to rapidly close if we, the nerdy, don't put in place a commercial imperative to counteract it. Current commercial cpu design is trending in exactly the opposite direction of it.
Hopefully someone else can expand upon this comment with the details of integrated flash and other 'non-rewritable' boot code technology that will lock the aforementioned technologies in modes we can't defeat.
Looking at the source code (dismissing blank and comment lines) it seems to be only about 800 lines of Verilog.
The site suggests that this can run on the DE0-Nano Cyclone FPGA Board for $90 or the Altera DE2-115 FPGA Development Board for $600. As someone who doesn't know anything about this type of computing... can anyone explain what the difference is between the two?
-1 Uncomfortable Truth
I've always liked the PP for its novel approach to a multi-core micro. Opening up the hardware design like this can really grow its application space. Just because you can't imagine a use for this doesn't mean there is no use for it. And these days, FPGAs are making great strides in their accessibility. Verilog is the language of choice for most because of its similiarities with C. VHDL is mostly relegated to defense, because it has its roots in Ada (the syntax is almost identical). If you're into functional languages, check out BlueSpec, which will auto-generate SystemVerilog. And writing HDL is no longer for just EEs (which is a misnomer, btw). Tools like HDL Coder let anyone create a digital circuit. And there is greater selection these days for low-cost hobby boards. Plus, softcore micros have a long history in digital designs. Think microBlaze, NIOS II, even ARMs. Not to mention the OpenRISC core that's really quite capable. Imagine a robot where all of the software and control circuits are built into one chip, complete with ADC/DAC and PWM, all custom, and entirely reconfigurable. And FPGAs are getting better about power consumption, although they're still a long way away from 5V, 100mA, and more like 5V, 500mA for the smaller ones, but still. The big thing holding back OSHW, IMO, is access to tools that actually let you run a circuit on a chip without having to give blood to the tool vendor. Otherwise, AFAIC, the sky's the limit with this!
I bet he's seen one. Hell, even most slashdotters have SEEN one.....
Well, apparently the license to everything is GPLv3, which could cause problems for those wanting to combine it with peripherals of other projects into one FPGA.
Or even if you decide you really want to make lots of them and make an ASIC out of it - how do you apply the GPLv3 to that since you can't really "rebuild" the ASIC...
Also, the tools they have are open-source too, under GPLv3. But since they're the toolchain, I don't think they include the output exemption, which would mean that not only is the processor hardware GPLv3, the software that it runs is also GPLv3. (GCC and the like have an output exemption that states the output of the compiler is NOT GPL)
The last sentence is factually incorrect.
In the absence of interrupts, the average latency for responding to an input is one half the sampling time, and sampling has to be continuous (in effect, the hardware is performing a poll or busy-wait on the input).
In a level-triggered interrupt system, the interrupt can vector a CPU to the interrupt handler instantly (meaning, as fast as the semiconductor process allows), and this can occur even from a sleep state since no polling is needed.
So using a separate core for each task without interrupts actually increases the response latency over an interrupt-based system.
What the Propeller people probably mean is that dedicating a core to each task avoids timesharing and also avoids low-priority tasks losing CPU when they're interrupted. That much is true, but it's the addition of cores that provides the benefit, not the removal of interrupts.
I looked through the verilog code and there are little to no comments. There are no diagrams or comment blocks describing why the circuits were designed that way (k-maps, fsm tables, design trade offs, etc). It's almost like they took the generated RTL output from their designers and stripped away their comments. I think this is a great gesture by parallax, but this isn't very helpful from an instructive perspective.
"not really, until you can 3-d print it yourself and then verify with an xray will security be verified."
What if both your 3D printer and X-Ray data analysis software are compromised? See also: ... The moral is obvious. You can't trust code that you did not totally create yourself. (Especially code from companies that employ people like me.) No amount of source-level verification or scrutiny will protect you from using untrusted code. In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect. A well installed microcode bug will be almost impossible to detect."
"Reflections on Trusting Trust" by Ken Thompson
http://cm.bell-labs.com/who/ke...
"The final step is represented in Figure 7. This simply adds a second Trojan horse to the one that already exists. The second pattern is aimed at the C compiler. The replacement code is a Stage I self-reproducing program that inserts both Trojan horses into the compiler. This requires a learning phase as in the Stage II example. First we compile the modified source with the normal C compiler to produce a bugged binary. We install this binary as the official C. We can now remove the bugs from the source of the compiler and the new binary will reinsert the bugs whenever it is compiled. Of course, the login command will remain bugged with no trace in source anywhere
Still, the more angles you look at something from, the more likely you might detect some discrepancy... Like excess power usage, processing delays, slightly different electromagnetic signatures, etc...
In any case, the less you want, perhaps the easier it is to secure. Look into creating or using Forth chips for simplicity... The less gates you need, and the less cycles they need, the easier it would be to make your own hardware from scratch, even from discrete components if it is simple enough.
http://www.colorforth.com/
http://www.greenarraychips.com...
For software more complex than Forth that is still fairly understandable from the ground up, see also the FONC project by Alan Kay as well as Squeak on bare metal.
http://www.viewpointsresearch....
https://www.google.com/search?...
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
Too bad there are no Open VLSI CAD tools, Open Foundries, Open FPGA tools, or Open FPGAs you can use this on. It's kind of like getting instructions for something you can only use if you have between $1k and $10M in proprietary tools to use it.
I've played with the Propeller CPU a little bit. I've never been able to find an application where it really shines. And the biggest thing keeping it from commercial use is the external, unencrypted program memory.
https://plus.google.com/101541...
http://tintuc.oho.vn/news/c180...