Slashdot Mirror


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."

75 of 136 comments (clear)

  1. Limited utility. by Dzimas · · Score: 4, Insightful

    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.

    1. Re:Limited utility. by Anonymous Coward · · Score: 2, Interesting

      I'm guessing those who don't trust market CPU's due to backdoor fears will enjoy this.

    2. Re:Limited utility. by Gothmolly · · Score: 1

      You're talking about electrical engineering. This is not that.

      --
      I want to delete my account but Slashdot doesn't allow it.
    3. Re:Limited utility. by maligor · · Score: 1

      You're talking about electrical engineering. This is not that.

      From what exposure I've had with HDL, it's a language for electrical engineering. It's different from normal electrical engineering but it's even more different from normal programming.

    4. Re:Limited utility. by hamster_nz · · Score: 1

      Sure, but it is a big bonus for people who need a few custom periherals and a nice, open, stable controller with a good toolchain.

      Video processing? Audio processing? Driving oodles of servos? Driving oodles of Neopixels? Does your design need really tight feedback loops (e.g. high speed power control)?

    5. Re:Limited utility. by craigminah · · Score: 1

      Would it be easier to just use off the shelf items to build your data center and them spend money building an open source thing that sniffs all the packets looking for suspicious crap? I'm asking because I'm not sure it'd be easy to automate identification of "suspicious crap" in the outgoing data.

    6. Re:Limited utility. by kesuki · · Score: 1

      not really, until you can 3-d print it yourself and then verify with an xray will security be verified.

      right now only governments and corporations are really able to build their own fabs and thus be 100% certain no backdoors are installed. 3d printing breakthroughs will take that fab and make it a expensive prototype box which can create copies of itself for material prices, as well as make devices such as routers/firewalls etc. leading to cheap devices that can make secure open hardware for defending the walled gardens of less secure devices. within 10 years of the processor printing 3-d printers and there will be a world changing event where the hobbyist can secure a network anywhere in the world and thus be totally immune to government watchdogs. they will then resort to ipv6 built in tech to find the secured routers by location and go in and try to bust their hardware for not having government required mandatory backdoors. or maybe i need to see my doc and get some of the meds back that i asked to be taken off of.

  2. "Now"? by Anonymous Coward · · Score: 2, Informative

    This matters because you can now build a device that is open hardware, open code all the way down to the CPU level!

    Sort of like OpenRISC? Except, later and worse?

    1. Re: "Now"? by maitas · · Score: 1

      Opensparc delivered a gpl verilog several years ago.

    2. Re:"Now"? by TheRaven64 · · Score: 1

      This is precisely the issue that we have. Our core (MIPS IV compatible, 7-stage pipeline, branch predictor, SMP support) is open source (Apache-style), but it's written in a proprietary high-level HDL. After compiling it, you get Verilog, but even that isn't very useful by itself. There are a few open source Verilog simulators, but if you want to either run it on an FPGA or synthesise an ASIC, you're going to need proprietary tools. There's little incentive to produce open source versions, because they tend to be tied quite closely with their targets (either expensive FPGAs or even more expensive fabs).

      --
      I am TheRaven on Soylent News
  3. Open FPGA? by AikonMGB · · Score: 1

    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..

    1. Re:Open FPGA? by Austerity+Empowers · · Score: 1

      I'm not sure there is any toolchain for synthesizing RTL for either FPGAs or silicon that is open source. That's a big project unto itself.

      There are a few open source simulators though, so in a sense you can "run" their design under say, Icarus (http://iverilog.icarus.com/). Still, you have to run on proprietary hardware somewhere.

    2. Re:Open FPGA? by Anonymous Coward · · Score: 1

      I use synthesisers and place and route tools, the FPGA manufacturers seem to assume when we want a user friendly tool chain it means we want a graphical tool. So they make very crappy tools. For the record, we want good quality (no crashing, sensible error messages (not "unknown error")) command line tools, like how normal compilers work.

      The only reason there are no open source synthesisers and place&route tools is because the specification of the silicon is unavailable.
      Specification would be; the format of the bitstream and the latency of all the routes and logic and heat generation of each slice.

      When specification become available, then I am pretty sure that good open source tooling will become available as well. With the format of the bit stream we may even be able to benchmark the latency and heat generation of the chip ourselves, possible even be able to disable non-functioning parts.

      The problem is that FPGAs vendors believe that their tooling is what keeps them competitive against their competitor. And partly they are right the better their tooling the more use a HDL developer can get out of their chips. If everyone would use the same (open source) tool for all FPGA chips, then they have to compete on the actual silicon.

      Since quite a few FPGA patents have lapsed a few years ago, I am hopeful that some Chinese silicon plant would punch out commodity FPGAs with an open specification, maybe with some basic but functional tooling for the open source community to expand upon.

      And we desperately need some actual software developers building these tools. A few years ago we finally started to use VHDL '93 at the moment we expecting to be able to use VHDL2008 in 2028 and this is not a joke, that date is realistic based on historic glacial movement of the hardware industry.

    3. Re:Open FPGA? by sexconker · · Score: 1

      If the premise is that you don't trust closed hardware or software, then you cannot establish trust by using any closed hardware or software.
      If you have an open FPGA you'll need to program it with an open design using an open tool running in an open environment on open hardware.
      Unless you've built your CPU, memory, etc. by hand from open transistors and shit, you can't really trust it.
      And where are you getting your open electrons from?

    4. Re:Open FPGA? by pem · · Score: 1
      Actual software developers write in C, not Ada.

      Likewise, it's my understanding that most digital hardware is written in Verilog, not VHDL.

      It's a bit different in the FPGA world, and in Europe, but AFAIK, in US chip development, Verilog reigns supreme.

    5. Re:Open FPGA? by SparkEE · · Score: 2

      Only if by "reigns supreme" you mean "is used more" :)

      I've gone back and forth between Verilog and VHDL depending on the company I am at throughout my career. Verilog is used more often, but it is absolutely horrible. I know people find the strict typing of VHDL painful, but it really does save a lot of time later during verification. I think people would be surprised at how much VHDL is still used. A large part of Qualcomm uses it still for modem chips and for mobile SOCs.

    6. Re:Open FPGA? by hamster_nz · · Score: 1

      Can you give one example of Open Source Hardware that is "open hardware all the way down"?

      If I could make an "Open Source Hardware" design using the actual propeller chip, then sure this makes that design "even more open", and so is a good thing IMO.

    7. Re:Open FPGA? by harrkev · · Score: 1

      A few years ago we finally started to use VHDL '93 at the moment we expecting to be able to use VHDL2008 in 2028 and this is not a joke, that date is realistic based on historic glacial movement of the hardware industry.

      Seriously? You have my condolences for using VHDL. You have my deepest sympathy. Second, why the glacial pace? SystemVerilog is supported by all major sim makers (at least to the extent needed to support UVM). Even synthesis tools are starting to support the SystemVerilog constructs that make sense in hardware (structs, unions, etc.).

      Really, unless you are stuck using some specific tools that you can't upgrade or update, there is no reason that you can't switch to SystemVerilog today! Although, I admit that SV does not bring nearly as much to synthesis as it does to Simulation.

      BTW: I come from the custom silicon world. I don't really use FPGAs much, so SystemVerilog may be beyond the capabilities of the free tools.

      --
      "-1 Troll" is the apparently the same as "-1 I disagree with you."
    8. Re:Open FPGA? by Teancum · · Score: 1

      One example of some hardware that is really trying to be "open hardware all the way down" is RepRap. While not completely successful, the goal of the project is to eventually have the hardware build itself. As an open source project, if they are successful, will be quite an accomplishment. Fab@Home is another very similar project with similar goals and an open source hardware implementation. I'm personally partial to Fab@Home, but they are both worthy projects in their own right.

      The Open Cores Project also tries to encourage such total vertical integration of hardware, but it is very slow in getting stuff going right now. I agree that "one example" of completely open source hardware (where all technical drawings, specs, parts, and everything from the raw plastic & metal parts) is simply not done at the moment.

    9. Re:Open FPGA? by TheRaven64 · · Score: 1

      So they make very crappy tools. For the record, we want good quality (no crashing, sensible error messages (not "unknown error")) command line tools, like how normal compilers work.

      I have here a log file containing the output from a command-line build of our CPU using the Altera tools. This file is 10460 lines long. The relevant information it contains can be summarised as: No errors, passed timing.

      Occasionally, we've had serious issues reported (the reset line on the ethernet MAC wasn't connected, so ended up being set high, which cost us over a week of time debugging the driver and trying to discover why the FIFOs weren't behaving correctly), but they're hidden in so much noise that there's absolutely no chance that a human will ever see them. They're not differentiated from trivial warnings that no one will ever care about.

      In the software world, we've (with my Clang developer hat on) learned that warnings have to have a low false-positive rate or you end up with everyone ignoring them. We therefore expect reasonable developers to be able to set -Werror on large codebases and fix everything that breaks the build. If your code doesn't build with -Werror, then it's a big warning sign.

      In the FPGA world, thousands of warnings (and even more 'information' lines) in the output are normal for any nontrivial build.

      --
      I am TheRaven on Soylent News
  4. here it is by raymorris · · Score: 1

    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.

    1. Re:here it is by jones_supa · · Score: 1

      Actually the AND gates come first, and are followed by OR gates. Then we can have some loopback connections to the same array. But that describes only one macrocell. The algorithms to create efficient (good performance and efficient use of cells) routing between the areas is part of the secret spice.

    2. Re:here it is by erice · · Score: 3, Interesting

      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.

      Said the blind man.. What you describe is the end user description of a PAL. FPGA's are completely different and PALs are not actually designed that way either. It is just the end user description, much like knowing the x86 instruction set doesn't mean you know how to design a modern x86 processor.

      An Altera or Xillinx FPGA is predominately a sea of small SRAM's but there are also many many muxes, complicated interconnects, configurable special function blocks (like multiply/accumulators, IO cells, and Ethernet interfaces). There is also a great deal of logic just to efficiently move configuration bitstreams into the chip. The complexity per unit area is less than a typical ASIC, which makes FPGA's good subjects for bringing up on new process flows but it is definitely not trivial work. Much is low level and structural rather than logical but that doesn't make it easy.

      That said, an open FPGA design would be pretty useless. The hardest part is that low level process dependent optimization and that is just not repeatable without an army of engineers, expensive closed source tools, and access to bleeding edge foundries.

      What people want, though, isn't to be able to make their own FPGA's. They just want an FPGA that is fully documented. Xilinx and Altera like to keep certain details secret. You have to use their tools because they won't tell you want you need to write your own and, even if you figure it out, they will sue you.

  5. Performance? by mcrbids · · Score: 1

    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.
    1. Re:Performance? by bob0the0mighty · · Score: 1

      It's an eight core microcontroller and, based off the stats on wikipedia, each core seems to have similar performance to an ATmega2560.

    2. Re:Performance? by ShanghaiBill · · Score: 4, Informative

      I wonder how this CPU performs? Does it compare to anything I'd care about ...?

      The Parallax Propeller CPU is mainly used for hard realtime applications. It has eight 32-bit cores (called "cogs"), each with 2k of dedicated memory, and 32k or shared memory. Each cog runs at 20 MIPS. That is not nearly enough speed or memory for any sort of general computing, but is enough for control loops in embedded systems. The most interesting thing about the PP, is that the general design philosophy is to use a separate core for each task, thus completely eliminating the need for interrupts. So real time latency is drastically reduced.

      So how important is any of this? Well, the PP is not very popular, to say the least, and I have never seen one used outside of a hobby project. That is probably why they figure they have nothing to lose by opening it up.

    3. Re:Performance? by ilsaloving · · Score: 1

      Hey now...

      There's plenty of things you can do with 32k of memory, like going to the moon or playing pong! (Nothing in between)

    4. Re:Performance? by Jerrry · · Score: 1

      "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?"

      The Propeller is an interesting beast. It has eight 32-bit cores they call cogs and a hub that ties them all together and gives each of them round-robin access to the 32K of hub RAM. Each core itself only has 2K of RAM it can access, so any assembly program has to fit in this small space.

      Most the the time, you don't write assembly code (unless you need the speed), but use Spin instead. Spin is a proprietary, interpreted language. Each cog can host a separate version of the Spin interpreter, and tokenized Spin code is fetched out of hub RAM, which is much larger than cog RAM (32K vs 2K), so Spin programs can be larger.

      There's also a C compiler that has a strange implementation given that cog RAM is too small to hold more than a trivial program if the code were entirely cog resident.

      One other difference between the Propeller and most other microcontrollers (AVR, PIC, ARM, etc.) is that the Propeller has no built-in peripherals. The philosophy behind the Propeller is that if you need a peripheral, you implement it in software and run it on one of the eight cogs. Need a UART (or six)? It's just a matter of software. It is somewhat wasteful, however, to dedicate an 80 MHz 32-bit processor to a simple I/O task -- that might offend some purists. Since all peripheral functions need to be implemented in software, it's not possible to directly implement peripherals that run at high data rates, such as 480 Mb/sec USB.

      The Propeller also lacks interrupts. The logic here is that since you're dedicating a full 80 MHz processor to an I/O function, you can poll without affecting any of the other processors and hence don't need interrupts.

      All-in-all it's an interesting and unusual architecture, but I don't see it replacing more mainstream MCUs anytime soon.

    5. Re:Performance? by wonkey_monkey · · Score: 1

      The best use of 32k (and approx 0.2 MIPS) I've ever seen is Exile. The map data alone would have been bigger than 32k if it wasn't mostly procedurally generated, and it had a physics engine and particle effects. On one more limited platform (the Acorn Electron) game data had to be visible onscreen around the playing area because memory was so tight. There was nothing left for any kind of HUD, so information (like weapon power remaining) had to be communicated to the player by sound. If you wanted to save your progress, the computer had to be crashed and (soft)-restarted first.

      --
      systemd is Roko's Basilisk.
    6. Re:Performance? by EmperorArthur · · Score: 2

      The most interesting thing about the PP, is that the general design philosophy is to use a separate core for each task, thus completely eliminating the need for interrupts. So real time latency is drastically reduced.

      So how important is any of this? Well, the PP is not very popular, to say the least, and I have never seen one used outside of a hobby project. That is probably why they figure they have nothing to lose by opening it up.

      Yeah, because to those of us who've done microcontroller development the lack of interrupts just no sells the whole thing, plus it's not like polling is any less complex. Here's an example:

      The system is running on battery power, and you want it to use minimal energy. In normal design, you have the chip sleep while waiting for an event that only happens occasionally. (In this context anything under 1kHz can probably be counted as occasionally. Without interupts this thing has to stay awake and have at least one of its cores polling for the event.

      There are quite a few other cases where interrupts are useful. Polling can get the job done, but is horribly inefficient and needs code to be written to handle things that other microcontrollers handle in hardware.

      The multiple cores are neat though.

      --
      So lets pretend that we've just completed writing this code, as opposed to having just completed sabotaging it -Altera
    7. Re:Performance? by ilsaloving · · Score: 1

      And not a single person got the reference.

      So sad...

      I recommend googling "Every OS sucks" by Three Dead Trolls in a Baggie

    8. Re:Performance? by BasilBrush · · Score: 1

      The clock rate is software programmable - as a fraction of the crystal used. So you can run it at 12 MHz. And then there's a WAITCNT instruction that effectively sleeps till a programmable counter reaches zero. So you can put all the cogs to sleep except one, and only wake the remaining one up as infrequently as you need to poll.

      Still not as power efficient for some device that's waiting a long time between events and is running from battery. But a hell of a lot of devices are not that.

      And for sure it's far less complex than using interrupts. Providing that you can do all the different things you need in 7+1 different processes. If you have to share a cog to do two different things, then it suddenly becomes very hard.

      The propeller is a delight to use. I hadn't had as much fun coding for years as when I used one. Though again thats's more of a selling point for hobbyists than professionals. ;-)

  6. Why is this important? by sinij · · Score: 3, Insightful

    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?

    1. Re:Why is this important? by Anonymous Coward · · Score: 2, Informative

      because the manufacturers have a monopoly on the security, support and further development of the hardware. We cant make improvements or audit it

    2. Re:Why is this important? by Anonymous Coward · · Score: 1

      depends on what's important to you.

      the more that people use open source code, the more popular that app/widget/whatzit becomes, the more people will want to contribute to that code.

      also the more good code there is, the more good code there is to draw from. it seems like a pretty big waste of human potential to keep re inventing the wheel, when if there was a good open source wheel, everyone could use it.

      this clearly isn't as good as closed source offerings, but it leans towards good principals.

      i for one would like to be able to know exactly how something works, even if i never actually look into it.

      it's like voting with your wallet, but you're voting with your time

    3. Re:Why is this important? by NotInHere · · Score: 1

      The baseband is not an hardware-ASIC, but runs completely in software, on a general purpose CPU. And the biggest problem is missing legislation to allow for open source mobile basebands.

    4. Re:Why is this important? by powerlord · · Score: 1

      I thought the same thing after watching: http://youtu.be/urglg3WimHA

      --
      This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
    5. Re:Why is this important? by Type44Q · · Score: 1

      Because backdoors.

    6. Re:Why is this important? by AmiMoJo · · Score: 1

      TFS misses the point entirely. This isn't a CPU at all, it is a microcontroller. A CUP forms part of a computer system, where as a microcontroller is self contained with its own small memory and peripherals (serial ports, analogue to digital converters, timers etc.)

      The Propeller is an interesting microcontroller because it has 8 parallel 32 bit RISC cores. That makes it suitable for some rather unusual tasks that most other micros would need to be paired or quadrupled up for. There is some rather nice library code available for it too.

      This release targets FPGAs. An FPGA contains a large number of programmable logic gates and circuits. Before FPGAs you would get huge boards full of chips, which can now be condensed down to some code and compiled. You can update the thing any time you like just by changing the code. Quite often it is helpful to have some kind of CPU or microcontroller as part of the FPGA's program, and this gives people another option and the ability to use existing Propeller code.

      It isn't earth shattering and won't challenge desktop CPUs or allow you to build a computer completely from source code, but it is a nice thing to have use of for free.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    7. Re:Why is this important? by StormReaver · · Score: 2

      1) You're not reliant on closed hardware vendors to provide drivers for your operating system.
      2) You don't have to trust that your hardware vendor isn't reporting your every move to your fascist government.
      3) You don't have to worry about your hardware vendor's interests diverging from your own, and stranding you.

      There are many more, but I don't have time to post them.

    8. Re:Why is this important? by dos1 · · Score: 1

      Actually, knowing the state of security in cellular networks - especially old 2G and availability of "downgrade to 2G" techniques for newer ones - despite of being strong FLOSS and OH supporter I'm kinda glad that any tech-curious kid next door can't easily play with baseband in his mobile phone.

      Sadly, there's also kind of people that won't care that it's illegal and with enough motivation will get all needed hardware, so we're not really protected either way.

    9. Re:Why is this important? by Teancum · · Score: 1

      There is the OpenBTS software & equipment if you want to seriously get into hacking cell phone networks. The authors of that software have even used it for setting up a cell phone network at the Burning Man festivals. They chose this venue in part because being in the middle of nowhere that the Burning Man stuff happens also was unlicensed to commercial cell phone providers, thus they could get experimental FCC licenses for their project and not interfere with existing networks.

      In theory, somebody could set up their own "pirate cell station" and have a whole lot of semi-legal or flat out illegal fun with this equipment. It does cost a few thousand dollars to get the rig set up, which is why more teens likely don't go playing with the technology more.

      On the positive side, these guys have been setting up cell networks in pretty remote places like sub-Saharan Africa and some Pacific islands to provide people with cell phone coverage that otherwise couldn't afford to have this kind of luxury. Commercial equivalents to this equipment are at least 10x or 100x the price.

    10. Re:Why is this important? by TheRaven64 · · Score: 1

      The reason that we've open sourced our CPU (not the one in TFA) is to promote research. The vast number of papers published in computer architecture conferences and journals evaluate their approach solely on a simulator and hope that there's some relationship between the simulator and reality. While a softcore CPU is not exactly like a real CPU, being able to implement your ideas in an FPGA (and pass timing!) does at least mean that it is possible to implement them in a real CPU, although it doesn't guarantee that they'd be more efficient than another approach. It also lets you do evaluation with real software: we can boot FreeBSD on our system and run real programs on it for benchmarking, which is a lot more realistic than taking some existing instruction trace, permuting it based on some assumptions, and then feeding it into your simulator.

      --
      I am TheRaven on Soylent News
    11. Re:Why is this important? by dos1 · · Score: 1

      There're also OpenBSC and OsmocomBB. However, even with all these projects there's still a pretty steep barrier to enter, which would disappear if open basebands in mobile phones would somehow become common.

  7. Re:What about the FPGA? by HiThere · · Score: 1

    As customization reaches lower and lower levels, it becomes increasingly difficult to meaningfully compromise it. Probably the only way to meaningfully compromise an FPGA is to autodetect an internet connectin, and stream out to it everything you receive, possibly only on receiving a particular activation signal. That would be reasonably easy to detect, and even THAT compromise wouldn't be easy, but FPGAs don't have any memory capacity, so they can't accumulate and wait to be polled.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  8. Re:What about the FPGA? by jones_supa · · Score: 1

    Something simple like a killswitch would still be possible.

  9. This is great by spiritplumber · · Score: 2

    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.
    1. Re:This is great by viperidaenz · · Score: 1

      Please explain how the Propeller blows away a Cortex M3 with 96k RAM running at 84MHz with a bunch of hardware peripherals
      http://arduino.cc/en/Main/Ardu...

  10. Hardware "Vision"?? by Quantus347 · · Score: 1

    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...
    1. Re:Hardware "Vision"?? by spiritplumber · · Score: 1

      The CMUCam4 is Prop based.

      --
      Liberty - Security - Laziness - Pick any two.
  11. Intimacy... by mythosaz · · Score: 1

    ...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.

  12. Re:What about the FPGA? by tlambert · · Score: 3, Informative

    As customization reaches lower and lower levels, it becomes increasingly difficult to meaningfully compromise it. Probably the only way to meaningfully compromise an FPGA is to autodetect an internet connectin, and stream out to it everything you receive, possibly only on receiving a particular activation signal.

    The "FP" in "FPGA" stands for "Field Programmable"; it's possible to compromise in the field, in a rather meaningful way.
     

  13. while nice... by nurb432 · · Score: 1

    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 ----
    1. Re:while nice... by harrkev · · Score: 2

      Well, I can see a use for this. If you HAVE an existing FPGA, you could throw a processor on there for free. Some FPGAs have a CPU built-in (such as an ARM), but those parts cost more. With this, if you need some processor, this is not a bad choice. You could go for something like an 8051, but more options are nice to have. This also apparently has a nice software chain (compilers, interpreters, etc.).

      If you really need a well-supported embedded soft processor, your choices are OpenRISC, 8051, Z80, 6502, or this (off of the top of my head, let me know if I missed something). Xilinx makes a MicroBlaze, but they charge money to unlock it.

      --
      "-1 Troll" is the apparently the same as "-1 I disagree with you."
  14. Kind of small? by jones_supa · · Score: 1

    Looking at the source code (dismissing blank and comment lines) it seems to be only about 800 lines of Verilog.

    1. Re:Kind of small? by viperidaenz · · Score: 2

      It's very basic.
      There are no hardware peripherals bar a counter and it doesn't even have hardware multiplication

  15. What's the difference? by ShieldW0lf · · Score: 1

    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
    1. Re:What's the difference? by jones_supa · · Score: 2

      The DE0-Nano is a barebone board and the DE2-115 is populated with various common I/O ports.

    2. Re:What's the difference? by viperidaenz · · Score: 1

      Approximately $510 difference between the two.

  16. This is Fantastic! by TheSheriff80 · · Score: 2

    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!

  17. GPLv3 in hardware? by tlhIngan · · Score: 2

    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)

  18. Re:What about the FPGA? by Teancum · · Score: 2

    True, but it would take some sort of hardware port to access the programming in the device and be capable of performing that sort of extremely low-level programming to rewrite the chip. I agree with you that it isn't impossible, but to be able to not just detect to also explicitly exploit that vector from much higher level protocols would be very tricky.

    This sort of remote reworking of a FPGA was done with the Spirit & Opportunity rovers that are currently on Mars, where NASA (specifically the Jet Propulsion Lab) uploaded some new firmware through the Deep Space Network to another planet. If you can do that on Mars, having a home desktop computer reload new firmware as some sort of malware is trivial by comparison.

  19. Re:What about the FPGA? by jones_supa · · Score: 1

    It's not that trivial. You cannot change the hardware description on the fly, you need a cable to do that. Additionally, a private key is stored in the FPGA and the contents of the external Flash chip containing the hardware description has the data encrypted with the public key. Xilinx has a document with more info about tamper resistant designs.

  20. Re:Incorrect statement about interrupts by ShanghaiBill · · Score: 1

    In the absence of interrupts, the average latency for responding to an input is one half the sampling time

    In hard realtime, nobody gives a crap about average latency. All that matters is the maximum latency. If your timing requirements are flexible, then it is not hard realtime.

  21. Re:What about the FPGA? by SuricouRaven · · Score: 1

    Depends on 'compromise.' It's not always about getting data out.

    Compromise could mean 'upon detecting this sequence of bytes, suspend your packet filtering for ten seconds so we can sneak our exploit through the firewall.' Or 'upon this sequence of bytes, switch the random number generator off and start using the pre-stored crypto key for new conversations so we can intercept them.'

  22. Re:Windows XP?!? by Teancum · · Score: 2

    You write this response as if Windows XP has no market share at all, and that somehow software written for XP won't run on any newer operating systems or computers.

    We aren't talking about something written in floating-point BASIC running on ProDOS 1.0 Surprisingly, emulators to run even that software exist on modern computers, so even that can be used.

  23. Re:What about the FPGA? by lister+king+of+smeg · · Score: 1

    Something simple like a killswitch would still be possible.

    but obvious which is not something you want in a secret backdoor.

    --
    ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
  24. Reflections on Trusting Trust; Simplicity & Fo by Paul+Fernhout · · Score: 2

    "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:
    "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 ... 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."

    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.
  25. Re:What about the FPGA? by dukeblue219 · · Score: 1

    FPGAs don't have any memory capacity? They absolutely do -- SRAM, Flash, whatever you're looking for. Some models can even self-modify their own configurations. Imagine a virus that can not only affect your OS, but actually re-wire the CPU in your computer. There are plenty of ways to compromise an FPGA both in terms of stealing the bit configuration or in terms of hiding malicious "code" inside the unused portion of the FPGA's fabric. The manufacturer could easily do this in cahoots with the NSA, or a highly-skilled operative could do it for any other reason.

    --
    -Ted http://www.freemathhelp.com/
  26. Re:What about the FPGA? by viperidaenz · · Score: 2

    No-one with brains or a budget is going to use a 15-20,000 gate FGA to do a job that a 10,000 gate chip can do.

    If you need lots of pins on an FPGA, you pretty much have to get one with lots of gates, even if you don't need them all.
    Other requirements can also dictate the part you choose.

  27. Re:What about the FPGA? by viperidaenz · · Score: 1

    If you can do that on Mars, having a home desktop computer reload new firmware as some sort of malware is trivial by comparison.

    Except... NASA specifically designed that functionality into the system.

  28. Re:What about the FPGA? by Teancum · · Score: 1

    I currently have a network router that has similar capabilities. If you can download some firmware and flash it into a device for an update, some malware can certainly do the same thing without your permission.

    If on the other hand you need a serial cable of some sort that as a completely separate port for updating the firmware that is code-wise unaddressable from the CPU, it is much harder to do that kind of update. It doesn't stop a co-worker from pulling a prank or somebody with physical access to the computer introducing malware, but it definitely is much harder. Still, if you have physical access to a computer you can do all sorts of other mischief that is harder to do through pure software processes.

    Most hardware is moving in the direction of internal software updates though, where the NASA thing isn't really all that remarkable and more of the rule rather than the exception.

  29. Re:What about the FPGA? by K.+S.+Kyosuke · · Score: 1

    And? If you connect an FPGA (which is a programmable piece of hardware) to the outside world using some sort of (non-standard) connection, how is the FPGA going to find 1) which pins to drive 2) using what protocol, before it can establish a link home or something similar?

    --
    Ezekiel 23:20