Slashdot Mirror


Project IceStorm Passes Another Milestone: Building a CPU

beckman101 writes: FPGAs — specialized, high speed chips with large arrays of configurable logic — are usually highly proprietary. Anyone who has used one is familiar with the buggy and node-locked accompanying tools that FPGA manufacturers provide. Project IceStorm aims to change that by reverse-engineering some Lattice FPGAs to produce an open-source toolchain, and today it passed a milestone. The J1 open-source CPU is building under IceStorm, and running on real hardware. The result is a fairly puny microcontroller, but possibly the world's most open one.

107 comments

  1. An open cpu? by Anonymous Coward · · Score: 4, Funny

    I'm pretty sure CPUs are supposed to be closed so as to keep dust out.

    1. Re:An open cpu? by davester666 · · Score: 3, Funny

      No, the fan you put on the CPU blows the dust away.

      --
      Sleep your way to a whiter smile...date a dentist!
    2. Re:An open cpu? by Tyrannosaur · · Score: 1

      I'm pretty sure CPUs are supposed to be closed so as to keep dust out.

      And the magic smoke in

  2. Most people won't care by Anonymous Coward · · Score: 1

    It bothers me that most people don't care. They don't understand that Intel/AMD CPUs could or will have backdoors. If not now, then very soon in the future.

    1. Re:Most people won't care by xophos · · Score: 4, Informative

      Forget the future, they are here and they are advertised as features:
      https://en.wikipedia.org/wiki/...

    2. Re:Most people won't care by Balthisar · · Score: 4, Insightful

      It's kind of the same issue with open source software, as far as the "most people don't care" aspect, but at an even greater disadvantage that open source software. I don't have a chip fab (at least I could compile open source software), and so even if I were capable of understanding the chip design, there's not much of a guarantee that the physical chip I purchase doesn't have some proprietary back door built into it.

      Like most people, I'm even lazy about the open source software I use. While I try to download from trusted sources, there's no guarantee that what I actually install matches the current stable version in the repo. I'm taking a leap of faith.

      In both cases (including the former where I indicated my ignorare about chip design), presumably I am counting on other experts to understand the chip or understand the source code for me, but only in the latter case could I actually assemble the product myself in order to guarantee matching the reviewed, stable code.

      --
      --Jim (me)
    3. Re:Most people won't care by Anonymous Coward · · Score: 2, Informative

      Most people don't care because they aren't even interested in computers.

      If you talk about Slashdot readers then they have all read enough articles to know that open source itself doesn't provide a perfect protection against backdoors.
      You also have to read the source to see that no backdoors are put in place, and you need to build the executable to make sure that the version you are running isn't built from a version of the source with backdoors in it.
      Now, assume that a processor like this becomes as mainstream as Intel and AMD CPUs, do you really think it is impossible to manufacture an FPGA with backdoors?
      For people to use the CPU it has to reach a stable point at some time. A stable CPU and a stable toolchain to build it will have a known layout and can be targeted with backdoors in the FPGA in the same way the CPU would have backdoors.

      So knowing that it isn't sufficient to just have an open design but that you also need to verify the hardware, why just not just skip the open part and verify the hardware directly?
      As a Slashdot reader you should at least have seen the reverse engineered 6502 visualizer. It is a much simpler CPU, but it has been reverse-engineered and its function is emulated in javascript with the transistors of the chip lit up. No room for backdoors there.
      A similar analysis has been done for the M68000, I couldn't find the slides from the presentation on it I saw, but here is a pdf with a rough overview that doesn't go into as much detail.

      Since you need to do that kind of analysis of the FPGA anyway it seems to me that the open source CPU part is more about "Not Invented Here" than about protecting against backdoors.
      That means that most people who you would think would care. They like the idea of it, but not this implementation since it isn't the one they did themselves.

    4. Re:Most people won't care by ArylAkamov · · Score: 1

      This is how I rationalize keeping around a few old PII/PIII machines.

    5. Re:Most people won't care by janoc · · Score: 1

      Sorry, but you need to get real here.

      First, these FPGAs don't quite have enough power to run a design comparable with an Intel/AMD CPU as most people know them. So this effort is pretty much irrelevant for dealing with backdoors in mainstream hardware. Their goals are quite different, mostly to do with on the fly reconfigurable computation - something that is hard or impossible to do if you cannot generate the bitstream using your tools.

      Second, even if you had a fully open sourced design somehow, how many people do you think would be able to actually understand it to the degree that they would be able to verify that there is no backdoor? Or even verify that the design is complete and the backdoor part is not withheld? It is not possible to build these without the in-house tools companies like AMD or Intel use (they don't use off-the-shelf FPGA tools, those are too small/slow to handle these large CPUs). Most people wouldn't be able to understand even the Verilog/VHDL for the tiny microcontroler implemented in the article.

      I am all for openness and open sourcing as much as possible but that is not a panacea and in cases such as these it would only give false sense of security.

    6. Re:Most people won't care by Joce640k · · Score: 4, Funny

      They don't understand that Intel/AMD CPUs could or will have backdoors. If not now, then very soon in the future.

      I usually decap my CPUs and inspect them before installing them. I haven't seen anything suspicious so far.

      The real problem is Windows. Having to disassemble/inspect the OS before installing wasn't too bad, it's the constant stream of patches that gets me down.

      --
      No sig today...
    7. Re:Most people won't care by ledow · · Score: 1

      The size and complexity of modern CPU's mean that you don't stand a chance at getting a no-backdoor assurance for anything useful.

      Down on this scale, on microprocessors and IC's, it's possible but incredibly difficult. If you were serious about no-backdoors (e.g. military), you'd not be using an off-the-shelf American product. You'd be describing the chip you want to build and validating the end-product against your design. Because that's the ONLY way to be sure.

      There is absolutely no guarantee that your phone, the box in your phone cabinet, your network switch, your router, your PC, even your TV does not have these sorts of backdoors (especially if you consider dormant-until-activated backdoors on devices). We've reached the complexity where it would take far too long to validate any one design.

      As such, if you want that sort of assurance you have little choice. Antiquated, tiny, powerless chips at best. You might be able to validate a Z80, but you wouldn't even get close to, say, a decent ARM chip at a few hundred MHz - even with the designs able to be licensed (the NDA's associated with licensing such things would probably stop you talking about any backdoor legally anyway...).

      If you want a modern PC, you literally have no choice. The chipset on your motherboard is so complex as to be unauditable for an end-user, or even a skilled professional. We can just about decap and understand some 80's arcade game chips, and then only if they are simple and of certain types. Some of the protection / security chips are still complete unknowns from that era.

      You can care all you like. What you can't do if even knock up a Raspberry Pi competitor without having to spend inordinate amounts of money and using proprietary components that you can't inspect somewhere along the route.

    8. Re:Most people won't care by Bert64 · · Score: 3, Interesting

      At some point you have to trust someone, be it the distributor from whom you're getting the os, the manufacturer or reseller supplying the hardware or even the supplier of the compiler...

      The only thing you can practically do, is ensure everything you use is available from multiple opposing sources... Something that's in use by both the us and russian governments is unlikely to be backdoored as both organisations have sufficient resources to perform the due diligence checks.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    9. Re:Most people won't care by K.+S.+Kyosuke · · Score: 1

      If you were serious about no-backdoors (e.g. military), you'd not be using an off-the-shelf American product.

      On the other hand, if you were the US military, you might as well be doing just that!

      --
      Ezekiel 23:20
    10. Re:Most people won't care by KGIII · · Score: 2

      I am not much better. I do, sometimes, review the source for interesting parts. At best, absolute best, I will find a bug and then go through the code and see if I can actually determine a fix. If I find a fix I send the code to the authors for inclusion and, obviously, with no strings attached. I have been able to do that on only a trivial number of occasions, I can think of three though it may have been more for I am old and my memory is faulty.

      --
      "So long and thanks for all the fish."
    11. Re:Most people won't care by KGIII · · Score: 2

      You can actually see some of the Windows source code if you want. You must sign an NDA and you have to justify your access (at least you did while I was still in the MVP program - and that was as an MVP, some of the most trusted folks) but the program to do so is called the Shared Source Initiative or at least was. Meh, a quick Google indicates it still is.

      So you can see the source, in part, if you want to. We had to tell them what we wanted to do with it (usually it involves tying an application in cleaner or a security review) but I never saw or heard of anyone getting denied when the program started and for the first few years that I was involved in it. Hell, they let *me* access it and I was known as the Linux geek amongst the group. (It took correction, on my part, to point out that I was a Unix geek. I have only recently switched to almost all Linux and little Unix.)

      Anyhow, for those curious, I was an MVP in Shell, Security, and IE/OE. It was kind of fun. The rewards were nice and the community was cool. They accepted that I was not a zealot for Unix (nor a Microsoft zealot). I just use what suits my needs best for the task at hand. I stuck around for quite a while, helping many thousands of people in their newsgroups and on a site/forum that I ran at the time. Eventually I had some issues where I fell in love with a girl and we meandered across the planet without much direction. I had little time and stopped participating and was not re-awarded. She is gone and I just pay for my MSDN subscription. Life is easier.

      --
      "So long and thanks for all the fish."
    12. Re:Most people won't care by K.+S.+Kyosuke · · Score: 1

      Also, I suspect that you're ultimately wrong. What exactly prevents us from turning something like Project Oberon into hardware? There's nothing "antiquated" about a clean design. Or are you implying that anything non-baroque is antiquated by definition? Rather than coming up with ever-more-complicated cores, give me a hypercube of power-efficient cores and a stacked memory on top of them to play with. After all, in an era of most software containing some form of encapsulation and message passing between its constituent parts as a means of cleaning up internal interfaces, some form of storage non-locality can possibly hurt. And you can get all the performance you want for a small device without most of the complexity of contemporary COTS hardware.

      --
      Ezekiel 23:20
    13. Re:Most people won't care by K.+S.+Kyosuke · · Score: 1

      At some point you have to trust someone, be it the distributor from whom you're getting the os, the manufacturer or reseller supplying the hardware or even the supplier of the compiler...

      Or maybe not?

      --
      Ezekiel 23:20
    14. Re:Most people won't care by K.+S.+Kyosuke · · Score: 1

      Eh, "can't possibly hurt..."

      --
      Ezekiel 23:20
    15. Re:Most people won't care by Anonymous Coward · · Score: 0

      The key to verifiable hardware is parallelization. Instead of trying to verify a big complex core, make a many-core design. Then you only need to verify one simple core and make sure that it is duplicated verbatim.

    16. Re:Most people won't care by tigersha · · Score: 3, Interesting

      An Intel i7 Quadcore has 1.7 Billions transistors on board. A Haswell E 18 Core monster chip 5.5 billion. Even a simple ARM Cortex has 26 million transistors.

      Do you think any single person at Intel knows everything about such a chip? Even the experts of the experts? How do do you think you are going to even comprehend such a thing even if it is open source? It really makes no difference, and no open source community is going to design a modern high-performance CPU. Intel invested 10.6 billion in R&D in 2013.

      At some point you are going to have to start trusting someone. Why everything has to be open is beyond me.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    17. Re:Most people won't care by K.+S.+Kyosuke · · Score: 2

      Do you think any single person at Intel knows everything about such a chip? Even the experts of the experts? How do do you think you are going to even comprehend such a thing even if it is open source? It really makes no difference, and no open source community is going to design a modern high-performance CPU. Intel invested 10.6 billion in R&D in 2013.

      Intel is bound by the requirement to run legacy software. Even an ARM system effectively has to be able to run it. A designer of a new open system would have no such constraints. Thus, no need to invest $10.6B and 5.5 billion transistors to reach a reasonable result for a wide range of applications. Attempting to review or redesign an Intel system would of course be a folly, but also completely pointless to begin with.

      --
      Ezekiel 23:20
    18. Re:Most people won't care by Anonymous Coward · · Score: 0

      Actually, most of the billions of transistors in Intel parts go to cache. Additionally, the structure of those parts is incredibly regular. Unlike evolution's product, human-designed hardware is full of repeating motifs, blocks and functional units. It's really easy to understand.

    19. Re:Most people won't care by Joce640k · · Score: 1

      You can actually see some of the Windows source code if you want. You must sign an NDA and you have to justify your access (at least you did while I was still in the MVP program

      The Pirate Bay allows you to skip the red tape.

      So you can see the source, in part, if you want to.

      "In part".

      The patches are the biggest worry for me. Microsoft could backdoor most of the computers in the world overnight if it wanted to. They can even target specific IP addresses if they want to because the own the patch distribution network. This is why I feel it's important to disassemble/inspect the patches before installing. There's no source code available for patches so keeping my Windows PC in tip-top condition is a big drain on my resources. Still ... it's worth the effort for the peace of mind it gives me later.

      --
      No sig today...
    20. Re:Most people won't care by K.+S.+Kyosuke · · Score: 1

      Actually, most of the billions of transistors in Intel parts go to cache.

      Well, that's true. But even 1M transistors for a core might be a bit too much. Aside from the problems with validation, you wonder what other interesting choices for HW design we could have had with much simpler cores. Evolutionary optimization of everything below late-stage compiler intermediate code, perhaps? That would presumably be a massive undertaking, but perhaps very valuable in the long run. I don't think we have any idea how the existing systems fare in the larger universe of potential architectures. We just hope that they are good. But doing this with complicated systems is much more difficult than with simple ones.

      --
      Ezekiel 23:20
    21. Re:Most people won't care by Bengie · · Score: 1

      It's not worth caring because there is nothing I can do. When you care about something you can't change, it just causes anxiety which hurts your health. Unless you think it's a good thing to be less healthy.

    22. Re:Most people won't care by Anonymous Coward · · Score: 0

      Why would anyone need a backdoor into your CPU when the government has willing corporations giving up your data and criminals being able tl easily steal it from other companies. CPU backdoors would be a waste of time.

    23. Re:Most people won't care by gtall · · Score: 1

      You are thinking of the military of the 1970s. After Reagan, there was a push for COTS everywhere. Global Foundries was sold to fat boys in the robes from the UAE. These days, the U.S. military gets its stuff just like you do. The major defense firms probably do a bit of their own programming with their own tools, but they aren't producing chips. Even Altera is being sold to Intel so they can screw up the FPGA market as badly as they did the processor market.

    24. Re:Most people won't care by LWATCDR · · Score: 1

      FPGA can also have backdoors.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    25. Re:Most people won't care by meta-monkey · · Score: 2

      Eh. When laying out silicon, you generally use libraries of simple parts you chain together. You make a register once, and then you replicate it each place you need a register. A TON of those transistors are cache, which is the same pattern repeating over and over again.

      I'm not saying there's anyone who's looked at every transistor, but there's probably somebody who's looked at the layout of a cache cell, a register, an ALU, standard multiplexers, etc.

      --
      We don't have a state-run media we have a media-run state.
    26. Re:Most people won't care by meta-monkey · · Score: 1

      I disagree. Saying "people couldn't understand the hardware" is the same as people saying "open source software is irrelevant because you can't understand the software."

      Some people can. I have an electrical engineering degree and specialized in computer architecture in grad school. I could understand it. And just like anything else...it's not that hard when you know what you're looking at.

      --
      We don't have a state-run media we have a media-run state.
    27. Re:Most people won't care by Pseudonym · · Score: 1

      The Pirate Bay allows you to skip the red tape.

      Unless something new has happened in the last decade, the only source leaks I'm aware of are NT4 and Win2k. So if you were willing to do without x86-64, most of ACPI, UEFI, IPv6, and pretty much every piece of hardware on your motherboard, I guess you could use that.

      You can probably live without Metro, so there is that.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    28. Re:Most people won't care by Anonymous Coward · · Score: 0

      So you can see the source, in part, if you want to.

      "In part".

      You can see all of it, if you want to, and if you are the right person.

      All you need to do is to be part of a semi-large countries military division in charge of buying and securing computers and have a requirement that you not only have to be able to verify the OS function but also that you need to be able to maintain it independently in a state of war.
      Then you will sign an NDA where you can't use the source unless you enter a state of war, but Microsoft will give you access to to source and ability to compile it since you otherwise will have to get another OS.

    29. Re:Most people won't care by Anonymous Coward · · Score: 0

      There are attacks which don't change the layout; only the doping is different. This can be used, for example, to carefully limit the amount of entropy of a random number generator, so that the numbers still look random, but an attacker can guess keys in much less time than expected.

    30. Re:Most people won't care by Anonymous Coward · · Score: 0

      I am the original Anonymous poster and even I could only read your comment half way down until you kind of lost my attention span, lol.

    31. Re:Most people won't care by Anonymous Coward · · Score: 0

      I am the original Anonymous poster.

      "If you were serious about no-backdoors (e.g. military), you'd not be using an off-the-shelf American product."

      I've actually worked with the military and can tell you they use more off-the-shelf processors and laptops than you might think. Maybe not for missile launch computers, but certainly in enough infrastructure that it would be very bad if there were backdoors.

    32. Re:Most people won't care by Anonymous Coward · · Score: 0

      I'm the original Anonymous poster on this thread.

      "FPGA can also have backdoors."

      I agree! Even a memory controller or a memory chip can have a backdoor.

      Be paranoid about all the things! (insert all the things meme here)

    33. Re:Most people won't care by ShanghaiBill · · Score: 1

      An Intel i7 Quadcore has 1.7 Billions transistors on board.

      Transistor count is a poor indicator of complexity. Most of those transistors are used to implement cache memory, which is just the same simple cell repeated millions of times.

    34. Re:Most people won't care by hairyfeet · · Score: 1

      They won't care because of one simple fact, a little rule I pointed out years ago which has always proven to be true, lets call it "The Hairyfeet Rule of Open".

      The Hairyfeet Rule of Open....If the only selling point you have is that you are "open" by some arbitrary definition of the word? Then YOU WILL FAIL because being open in and of itself is simply not a big enough selling point for the vast majority to care about.

      We have seen this rule played out dozens of times, from "open" phones to "open" tablets, from "open" GPUs to "open" CPUs, if your ONLY selling point, the only thing you have going for you is "open"? Its over, hit the lights on your way out. Mark my words they will run out of funding and close down within a couple years because they will not be able to generate enough interest to keep going because you have to have something, anything, other than just "open". Be it faster, easier to use, more power saving, its gotta have something other than just open or its screwed.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    35. Re:Most people won't care by janoc · · Score: 1

      Yeah, right. So it only took a decade to get serious OpenSSL bugs discovered and fixed - despite the project being open from the start. And that is most likely an order of magnitude smaller project than something like even moderately complex CPU core, written in a language that many more people are familiar with.

      Yes, if it wasn't open, the bugs probably wouldn't have been found, but that's speculation - we simply will never know. If you hope to find a "backdoor" (which could be simply so subtle as intentionally weakening some crypto support instructions or random number generator if some flags are set) in a ton of Verilog/VHDL code where you need to understand both the hardware *and* the crypto, you are seriously delusional. Even the vendors themselves have only a fairly small team of people that actually understands this type of code. It is so ultra specialized niche. You will probably not see the weakness even if you were looking straight at it unless you are a specialist in exactly this domain and familiar with the implementation.

      Anyhow, it is a moot point - the mainstream CPUs are never going to be "open sourced", because it is the core intellectual property of these companies.

    36. Re:Most people won't care by meta-monkey · · Score: 1

      Oh, you're absolutely right. I'm definitely not saying it would be impossible to hide a backdoor in an open core design. Absolutely could. Same thing with FOSS...just see the Underhanded C Competition.

      But today you could have (and probably do have...) explicit backdoors in silicon, besides debugging interfaces, and you'd never know. With an open core design, you'd have to hide it.

      --
      We don't have a state-run media we have a media-run state.
    37. Re:Most people won't care by KGIII · · Score: 1

      Patches are generally easier to access in my experience. I have literally used the excuse, "I am curious." I have also used, "I feel like breaking stuff." It does matter who you are and how much you have a history with the company (as to be expected). However, the source is there - it is just not open. I would not want to be the one caught leaking it either.

      --
      "So long and thanks for all the fish."
    38. Re:Most people won't care by Anonymous Coward · · Score: 0

      >Do you think any single person at Intel knows everything about such a chip? Even the experts of the experts? How do do you think you are going to even comprehend such a thing even if it is open source? It really makes no difference, and no open source community is going to design a modern high-performance CPU

      So someone understands all of linux but not all of a CPU? A couple hundred MB of binary data is about 1.7 billion bits, which is somewhat the digital equivalent of a transistor (or maybe an opcode would be a better analog, which would require several GB. Either way, programs that size exist.). I don't know what your point is.

      Also, about no one ever making an open source high performance CPU- you may well be right, but your rational is stupid- microsoft spent $9.8 billion on R&D in 2012, and linux/BSD are substantially higher performance in several areas.

      >At some point you are going to have to start trusting someone. Why everything has to be open is beyond me.

      Because people like intel plant backdoors, which CAN be found. Sure, you have to trust someone, but maybe when something is in the open it's harder to make it secretly evil?

      I'm really sorry that people trying to make the world a better place has offended you.

    39. Re: Most people won't care by Anonymous Coward · · Score: 0

      It's a complicated topic. Why ask a question if you're not going to bother reading the answers?

    40. Re:Most people won't care by tigersha · · Score: 1

      First, compiler optimisation only deal with static code, and not with the dynamic aspects of the code as it runs. Advanced CPU optimisations in silicon does this.

      And highly advanced compilers are also very complex, requiring PhD level CS to get into. A simple compiler is easy to write, I have done this twice (one for a lazy Functional language, in 1989). An advanced compiler? No way.

      Shifting the complexity to the compiler does not reduce the complexity, but definitely does reduce the performance. The CPU can adjust at run time (and JIT compilers at a somewhat higher level of granularity). Intel tried to shift the complexity to the compiler with the Itanium project. Look where that went.

      I stand by my point. The whole Compiler-CPU toolchain is too complex for an open source low budget operation to produce a high-performance system. You need substantial investment of both money and manpower to do this, and this is not suitable for the classic OSS bazaar organisation model.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    41. Re:Most people won't care by tigersha · · Score: 1

      The non-cache part of an i7 is still extremely complex.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    42. Re:Most people won't care by tigersha · · Score: 1

      a) If you think anyone understands the whole of Linux you are kidding yourself. Besides, I am going to contend that a single CPU is more complex to build than Linux.
      b) I am not offended
      c) I do not think that a naive bunch of OSS paranoid freaks can product something with the complexity AND performance of a modern CPU.

      Maybe there is a tradeoff here, and it is probably worth look at it, perhaps by Intel putting their design in some kind of trusted escrow. But there is whole lot more complexity below the surface in a chip than it looks.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  3. buggy and node-locked tools. by Anonymous Coward · · Score: 1

    Buggy and node-locked tools sure sounds like what I used. Hopefully an open source version can fix the shitty stability along with the shitty vendor lock and pricing.

  4. What's special here?? by Anonymous Coward · · Score: 4, Interesting

    There are plenty of fully open source CPUs around.

    There is a community building CPUs from discrete logic (http://mycpu.selfhost.it/), from transistors (http://www.extremetech.com/computing/128035-how-to-build-an-8-bit-computer-from-scratch) and even from relays (http://www.nablaman.com/relay/).

    There are also Forth CPUs which are freely embeddable into a FPGA (the J1: http://www.excamera.com/sphinx/fpga-j1.html) and which can be purchased now (http://excamera.com/sphinx/gameduino/).

    1. Re:What's special here?? by egladil · · Score: 4, Informative

      What is special is that they are making an open toolchain to program an FPGA and that toolchain is now capable enough to program a working CPU into the FPGA.

      If you had read the entire summary you would have seen that the CPU design they were using was the J1 that you mention.

    2. Re:What's special here?? by Anonymous Coward · · Score: 1

      You still need those buggy proprietary tools in order to use them. I think you kind of missed the point here; it's not that there's anything special about that CPU, it's about the progress of the open source toolchain.

    3. Re:What's special here?? by Anonymous Coward · · Score: 0

      Did read that far. They are using a cut down J1A. I pointed to a full J1 implementation. Sorry for the confusion.

      Still, Forth is not my usual language of choice.

    4. Re:What's special here?? by gl4ss · · Score: 3, Informative

      yeah so why it's marketed in the blurb as an open source cpu when the interesting thing is an open source toolchain for a closed silicon fpga?

      --
      world was created 5 seconds before this post as it is.
    5. Re:What's special here?? by Anonymous Coward · · Score: 0

      because now the toolchain can actually compile a working CPU for the closed FPGA and is useful software that can turn a cheap closed fpga into an open one running cpu cores?

    6. Re:What's special here?? by TheRaven64 · · Score: 1

      No idea. Open source FPGA toolchains are definitely interesting, mostly because Altera and Xilinx compete on who can produce the worst software. Having a single toolchain that could target both (which this project is still a long way away from) would be very useful. Unfortunately, high-end FPGAs vary a lot both in the core logic block structure and the number and layout of the fixed-function macroblocks that are available.

      --
      I am TheRaven on Soylent News
    7. Re:What's special here?? by KGIII · · Score: 1

      This is not meant to be sarcastic but, after I wrote what I wrote, I came back up here to point this out because it seemed to be interpretable as sarcastic.

      So how is this useful in the real world - outside of academia and *maybe* a handful of geeks (world wide) that are able to make use of this? I am quite a geek, I pride myself on this, but I am honest enough to admit that I would have no idea where to start to take advantage of this nor do I see how this can have a meaningful impact on my life as it does not inherently increase trust - only implied trust. What are the benefits and why should I care? Answer carefully because their future depends on it. I, myself, would be interested in sending a small amount of money their way if I can rationalize doing so. It needn't benefit me, directly or indirectly, for me to consider donating but it does need to be useful and profoundly beneficial if it is only going to effect a small number of folks if you want people to be interested and especially so if they are in need of financial assistance.

      --
      "So long and thanks for all the fish."
    8. Re:What's special here?? by BitZtream · · Score: 1

      Show me one that doesn't require a special FAB to produce the actual chip, at which point you can't control whats actually going on in the chip itself.

      There are NO open source CPUs, only open source designs.

      It stops being open source when it needs to run on a proprietary FPGA.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    9. Re:What's special here?? by alvieboy · · Score: 3, Informative

      A few notes regarding your comment.

      This is not actually about an "open toolchain to program an FPGA". It's not actually about programming at all. Let me try to explain here (in a simple way) what IceStorm is, or better, what an open-source can do for the FPGA design flow.

      So, you start with a description of your design. Your design usually describes the behavour of your system, which is often done in HDL (Hardware Description Languages), like VHDL and Verilog, or even higher-level ones (SystemC, even Python). But, as with every digital design (imagine classical design with TTL 74/CMOS 40 series), you often need more than "logic" - you may need a PLL, you may need a dedicated multiplier (hey, you don't want to design this by hand with gates and flip flops, do you?), or other complex, often mixed-signal primitives.
      FPGAs are basically a set of basic blocks (think again 74/40 series), which can be interconnected almost at will. The blocks actually differ from classic chips: what you'll find in FPGAs [I'll speak about Xilinx but Lattice should be similar] are LUT (Look-Up Tables), which can provide any N-input/Y-output digital function (often 4 to 6 inputs, and one output), and Flip Flops (with enable, set, reset, so on). In addition, FPGA provide "hard IP cores", like PLLs, Multipliers, Serializers, Multiplexers, so on, so on.
      Now, to have your design to work on the FPGA, you need to synthesize it - convert the behavioural model into these building blocks (LUTs, so on). This is the first phase - and it depends on the target FPGA because the available IP hard blocks differ from manufacturer to manufacturer, from family to family, and even from small to larger, same family devices. This synthesis process will get you a "netlist" - a list of all used primitives and the interconnections needed between them.
      Next step is to place the design - pick up each of those primitives, and choose an instance on the FPGA where it will be assigned. This can be tricky, because routing inside FPGA is not 1-to-all, and timing is more affected by routing than anything else - so you'll want your critical (timing critical) paths to be placed where you can later route signals faster. This is really FPGA dependant, much more than synthesis.
      Then you have routing: after placing all primitives, you need to decide how to route all signals (this is very complex, FPGA dependant). After routing is done, you have the whole design for that FPGA done - everyting is placed, routed.
      Well, you have not.
      The next step is to generate a bitstream, based on the netlist output from Route, that can be sent to the FPGA (usually via JTAG). This is actually where less information is known - where each bit from the bitstream maps inside the FPGA switch fabric or LUT configuration or SRAM cells, others, ...
      Then comes programming: sending the bitstream to FPGA. This is usually simple, and many open tools exist (at least for Xilinx).

      Now, do these tools do?

      Yosys: Verilog synthesis
      Arachne-pr: Place & Route
      IceStorm: Last part, which is the hardest - to map the final, routed netlist into the "proprietary" bitstream.

      Hope I shed some light on the matter.
      And yes, being J1 or any another CPU (like my own ZPUino or XThunderCore) is irrelevant - what's relevant is to prove that IceStorm seems to generate correct bitstreams for this platform.

      Alvie

    10. Re:What's special here?? by Anonymous Coward · · Score: 0

      So how is this useful in the real world - outside of academia and *maybe* a handful of geeks (world wide) that are able to make use of this?

      Depends on how far it goes. It is difficult to compete directly with the manufacturer's toolchain, especially in terms of comprehensiveness, but occasionally open source tools will put more optimization effort into a narrow set of targets. Additionally, while many manufacturers will provide free tools, they are limited versions, and full optimization requires expensive pro versions of software. There is a lot of room in those cases to produce a free tool that is much better than the free tools already available.

    11. Re:What's special here?? by Anonymous Coward · · Score: 0

      How useful was linux when linus started out?
      How useful was GCC when root mean square started out?
      Probably at first it will only be useful in academia, but maybe some day it will be more globally usefull.

    12. Re:What's special here?? by Kishin · · Score: 1

      Good work. Be sure to check out my comment below referencing a few things you might be interested in. You clearly know enough about this subject to assess their value. Any information is appreciated. Trying to get numerous opinions from HDL, synthesis, and bitstream mod crowds.

    13. Re:What's special here?? by KGIII · · Score: 1

      There we go - something to look into. I had hoped someone would give me a rational answer that actually had some substance.

      --
      "So long and thanks for all the fish."
    14. Re:What's special here?? by Anonymous Coward · · Score: 0

      Great care must be used when typing xilinx into a search engine, it is far too easy to wind up at a NSFW site.

    15. Re:What's special here?? by alvieboy · · Score: 1

      Thanks, I will read those links in detail.

      I came across Cx quite some months ago, but I recall dismissing it because I found it not production ready.

      On a side note, I do happen to work closely with systems requiring DO-254 certification, mostly FPGA and ASIC. Not sure most HLD will easily fit in, but I'm always open to explore and suggest if feasible.

      EASA SWCEH-001 memo is probably more detailed on requirements than DO-254. You should read it if you're interested in this area.

      Alvie

  5. Regarding the Lattice iCE40 by Anonymous Coward · · Score: 0

    According to TFA, the Lattice iCE40 has a very minimalistic architecture with a very regular structure - I don't do FPGA but I am curious to know if the Lattice iCE40 is the only FPGA which has both minimalist architecture and regular structure?

    Are there any other FPGA platform which enjoys similar features?

    1. Re:Regarding the Lattice iCE40 by Anonymous Coward · · Score: 0

      Most FPGAs are fairly regular and simplistic.
      Each FPGA has a handful of different kind of cells:
      - Logic cell (6-input LUT, flip-flops, demuxer, carry chaining)
      - IO cell (To pins of the chip)
      - SRAM cell (pieces of memory around 16kbit in size)
      - DSP cell (A few integer adders and a multiplier, and a comparitor for certain floating point operations)

      These blocks are distributed regular, each column of the chip will have one of these types of cells.

    2. Re:Regarding the Lattice iCE40 by Anonymous Coward · · Score: 0

      A lot of FPGAs are following the MCU path/style and adding specialized blocks to implement various common features people want for system on a chips, everything from communication protocols to analog circuits, so as to minimize the amount of external circuitry and logic cells needed for common generic tasks.

    3. Re:Regarding the Lattice iCE40 by Anonymous Coward · · Score: 0

      Problem is the configuration protocol is a proprietary secret making them useless for this project.

  6. Forth? by Anonymous Coward · · Score: 2, Funny

    ? Program Forth in who want

    1. Re:Forth? by K.+S.+Kyosuke · · Score: 1

      GreenArrays hardware? ;-)

      --
      Ezekiel 23:20
    2. Re:Forth? by KGIII · · Score: 1

      This is why it sometimes sucks to not be an expert in everything. *sighs* I have no idea if you do not speak English and used Google Translate or if that is a joke based on the programming language.

      Given the +1 status I am inclined to think it is either a joke or there is someone else who felt left out of a potential joke and decided they'd mod you up just in case it was funny.

      It is not quite Poe's Law (or coleslaw) but it is damned close. At this point I guess the only rational choice is to laugh and pretend I get it so that I can fit in. It is much like listening to my daughter talk about a band, a boy, or current social issues and television. I listen, I really do, and I smile and nod (and even try to converse). Really, though? I have no clue.

      Example: I honestly do not know who the Kardashians (spelling?) are. I am guessing they are on television. I have never Googled them. I have never read an article with them in it. I have never seen them on television. I have never seen a video of them. I see them referenced here once in a while and I use the insinuation to confirm my own conclusions that they are somehow bad for the universe and should be slaughtered for the benefit of all mankind but, frankly, they could be wonderful people. I do not even know what they look like, nor will I bother looking, and I am so far removed that I have never seen them in anything (though I suppose I have - I would not actually know unless someone pointed it out).

      Not that your joke is the popular (unpopular?) people on television. No, I am guessing it is the exact opposite. I guess it's a penalty for not being aware of everything and for not being willing to search for every subject and learn about it.

      Anyhow, sorry for the disruption. Carry on with your giggling and teeheeing. Or carry on translating from English to Siberian to San and back to English... Which ever it is, enjoy. I just figured I would point out that you managed to lose at least one of us. I think that qualifies as a "good job."

      --
      "So long and thanks for all the fish."
    3. Re:Forth? by jimtheowl · · Score: 2

      It is presumably an attempt at a joke based on the fact that Forth makes use of RPN.
      https://en.wikipedia.org/wiki/...

      I for one find Forth to be a fascinating language. The fact that it has been around for a while does not diminish it in any way.

      I first heard of it back in the 80's while learning assembler on the 6502. I noticed it again while getting to know FreeBSD (loader stage 3) and decided to finally learn it when I came across some old manuals and software for my newly acquired PET CBM 8032 just a few weeks ago.

      Ever since, I seem to notice it mentioned more and more, perhaps partly because of renewed interest in stack machines, but also because it offers an interactive way to boot strap a very small system with minimal resources.

      It is available in some form on almost every platform that I know.

      Following are some resources that I have found to be of interest. Hopefully those sites will not get badly hurt.

      http://www.forth.com/starting-...
      http://thinking-forth.sourcefo...
      http://playground.arduino.cc/C....
      https://www.freebsd.org/cgi/ma...
      https://uwaterloo.ca/independe...
      http://www.ultratechnology.com...

      ...

    4. Re:Forth? by Anonymous Coward · · Score: 0

      Forth is a stack-oriented programming language. You put the operands on the stack, then the operation takes the operands from the stack and puts the result on the stack. This leads to a notation similar to "reverse polish notation" that some calculators use: 1 3 + 4 *, meaning add 1 and 3 and multiply the result by 4.

    5. Re:Forth? by Anonymous Coward · · Score: 0

      Sweet! Thanks! I will spend some time on all of the links as well as poking and seeing what I learn. I like old stuff. Odd that I am old and have never heard of this. Again, I can not be an expert in everything.

      That will keep me occupied. Slashdot has said I post too much (50 posts per day even with max karma, silly and arbitrary...) So, thank you again.

      KGIII

    6. Re:Forth? by Anonymous Coward · · Score: 0

      That sounds really complicated. I am going to take a look at it in a bit more depth. Who knows? There may be a use for it somewhere down the line and a bit more education never hurt anyone. Well, I cannot recall it hurting anyone.

      Thanks for explaining. That was enough so that I got it (the joke, that is) so I suppose I might as well look at the language. I am out of posts for the day so this must be posted as an AC. It should be obvious who I am though. ;)

    7. Re:Forth? by K.+S.+Kyosuke · · Score: 1

      There's a lot of interesting Forth videos on YouTube, too. People running interesting stuff on whatever you can buy these days.

      --
      Ezekiel 23:20
    8. Re:Forth? by KGIII · · Score: 1

      I will look there too, thanks. It looks kind of interesting actually. I am not sure that I like the syntax but, well, I can adjust I suppose.

      --
      "So long and thanks for all the fish."
    9. Re:Forth? by Anonymous Coward · · Score: 0

      No idea why this hasn't been posted yet. Here is a video of the J1a CPU in action on the FPGA. Unlike the other videos, this one doesn't stop after the CPU is successfully uploaded to the FPGA. It shows some actual Forth programming.

  7. And Lattice wont shut this project down because? by jonwil · · Score: 1

    What is to stop Lattice from simply shutting down this project for an open FPGA toolchain for their FPGAs?

    Or does Lattice not care about this particular project for some reason?

  8. Re:And Lattice wont shut this project down because by tempmpi · · Score: 1

    What is to stop Lattice from simply shutting down this project for an open FPGA toolchain for their FPGAs?

    Why and how would they shutdown this project? This project is the FPGA equivalent of writing a open source assembler or compiler for new CPU. They do not publish their bitstream format, but reverse engineering is perfectly legal.

    --
    Jan
  9. Re:And Lattice wont shut this project down because by Anonymous Coward · · Score: 0

    Better question, WHY would they want to shut this project down? This is free advertising! It also only works for the one FPGA chip (so far). IMHO, Lattice should welcome this with open arms (when they're not welcoming Open ARMs :)

  10. Re:Pointless Project by Anonymous Coward · · Score: 0

    You are wrong, as its much harder to put backdoors in an regular fpga as into a cpu since you don't know how the slices are used later on.

  11. Re:And Lattice wont shut this project down because by Anonymous Coward · · Score: 0

    Actually it's publicity for Lattice which is the third player far behind Xilinx ans Altera (well, Intel now).

  12. Re:And Lattice wont shut this project down because by tigersha · · Score: 1

    It IS free advertising!

    It intrigued me so much that I just bought an evaluation board.

    --
    The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  13. Re:And Lattice wont shut this project down because by KGIII · · Score: 1

    With my limited understanding of what this is, I am kind of surprised that they are not actively helping the project. Any competitors can do this more easily than this group likely can. Their stuff is all covered by patents anyhow. Why not help? It looks good and will improve sales in a niche market where no other competition exists. It seems that they could benefit if they helped and the publicity would be priceless (even if limited in scope). Hell, even Microsoft has folks working in the open source realm. I can not imagine that this is all that different.

    --
    "So long and thanks for all the fish."
  14. Re:And Lattice wont shut this project down because by drinkypoo · · Score: 1

    What is to stop Lattice from simply shutting down this project for an open FPGA toolchain for their FPGAs?

    Reverse-engineering for the purposes of interoperability is a protected activity under the DMCA (and basically all other purposes are prohibited.)

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  15. Re:And Lattice wont shut this project down because by serviscope_minor · · Score: 1

    With my limited understanding of what this is, I am kind of surprised that they are not actively helping the project.

    Basically, hardware companies are, on the whole totally mental. For some reason, they have all their expertise in hardware and produce hardware for a living and then throw a total shitfit over the software and believe that their super special awful crashy piece of shit software is really the important thing and wrap it up in all sorts of proprietary licensing "solutions" designed to make life as hard for the paying customer as possible, when what the customer really wants to do is make some cool shit with the hardware, and maybe sell a bunch of stuff based on it.

    If you're thinking in terms of niches and markets and profit margins, you're thinking about it wrong because you're implicitly assuming that they're not off the wall mad.

    --
    SJW n. One who posts facts.
  16. Most people shouldn't care by tomxor · · Score: 1

    "most people" have no interest in programming FPGAs, so they shouldn't care. "Most people who are into open source CPU design"... they should.

    You can think of this as an open source compiler for a closed source piece of hardware: FPGAs already give you the freedom to implement whatever IC you want (e.g a small open source CPU design) - the only closed part about them is the tool chain provided by the FPGA manufacturer and the more unique parts of a particular FPGA hardware beyond the logic block.

    This project is interesting because it makes possible something very close to a completely open source CPU process from start to finish without having to go down the ASIC route, and promise of higher quality tools.

  17. As a former Altera Quartus user by Anonymous Coward · · Score: 0

    I can confirm this statement:
    > Anyone who has used one is familiar with the buggy and node-locked accompanying tools that FPGA manufacturers provide

  18. Re:And Lattice wont shut this project down because by Anonymous Coward · · Score: 0

    It IS free advertising!

    It intrigued me so much that I just bought an evaluation board.

    Eval board? Unless you're planning to order 100,000 chips or more, Lattice (or Xilinx, Altera, etc.) really doesn't give a shit.

  19. Re:And Lattice wont shut this project down because by cb88 · · Score: 1

    Actually it works on the 8k chip as well now.

  20. Patents? Really? by Anonymous Coward · · Score: 0

    If this stuff was *all* covered by patents, there would be no need at all for reverse engineering. Simple patent searches would suffice.

    1. Re: Patents? Really? by Anonymous Coward · · Score: 0

      That's the big deal about open toolchains. Most of the patents on lower-end FPGAs expired already. The lack of a free toolchain is why we can't buy $7 boards with FPGA's from China.

  21. Re:And Lattice wont shut this project down because by Anonymous Coward · · Score: 0

    Many reasons.
    They don't want people knowing how good (or how shit) their own tools and FPGAs are compared to others.
    They don't want someone to find something in their bitstream format, or FPGA layout that they might have some patent on.
    They don't want people to program some broken bitstream into the device, have the thing burn out, and then have people asking for refunds.\
    I can think of any number of reasons why they wouldn't want this.
    Are they good reasons? That's a different question.

  22. Re:And Lattice wont shut this project down because by tlhIngan · · Score: 1

    Basically, hardware companies are, on the whole totally mental. For some reason, they have all their expertise in hardware and produce hardware for a living and then throw a total shitfit over the software and believe that their super special awful crashy piece of shit software is really the important thing and wrap it up in all sorts of proprietary licensing "solutions" designed to make life as hard for the paying customer as possible, when what the customer really wants to do is make some cool shit with the hardware, and maybe sell a bunch of stuff based on it.

    OTOH, perhaps Lattice is currently licensing their POS toolchain, so something like this would mean they have no longer have to license and pay $$$ for the stuff.

    Few hardware companies get it - they can produce good hardware, but they invest practically nothing in software - thinking it comes for free or something like it.

    Considering Lattice isn't one of the big guys in the whole FPGA business, I'm sure they have to pay Synopsys or Cadence for a lot of the tools. Or provide support to them so customers buy those tools to use their chips.

    A project like this would mean they could "own" their own toolchain and be able to provide a low-cost software solution for people to use their chips. And the only reason hardware guys do software is to sell more chips.

  23. Its not about backdoors... by Anonymous Coward · · Score: 0

    Intel already has shittiest crap inside in form of SMX (feature that allows only Intel signed code to run on the CPU and fiddle with private registers that are not accessible otheriwise)

    And SGX, feature that comes to Skylake near you will make it possible to create true hardware based DRM, because it will be enforced on CPU level, so unless you hack the chip itself, you couldn't hack it.

    ARM is even worse with its TrustZone which is same as SMX but actively abused to lock the shit out of the mobile SoCs including locked bootloader, some of which nobody found a way to hack.

    And only God and their CEOs know what backdoors these chips have in addition to this crap

  24. Timing.... by Anonymous Coward · · Score: 0

    There is one more piece to the game, static timing analysis.
    Due to PVT (process, voltage, temperature) variations, proprietary FPGA tools actually check that your logic (when placed & routed) will actually function correctly, that is, signal lengths are not too long so that some signal would come late.

    I don't see how you could do static timing analysis without very thorough characterization of the actual FPGA chip.
    Of course, if you always overestimate the signal path delays, then you can get something functional, but then it would always be less optimal than if it was compiled and the timing checked with the proprietary tool...

    1. Re:Timing.... by alvieboy · · Score: 1

      You do have fine characterization of building blocks, and even macrocells - those are in datasheet, for most vendors. These timings relate to a single part (with a specific speed grade), locked to process[1], voltage and temperature (worst case is often used).

      But not for routing delays (general-purpose and dedicated [i.e., clock]).

      So, indeed, you're absolutely right here.

      Alvie

      [1] For those not aquainted with what "process" means, think about handcrafting - some stuff will have less imperfections, others will more imperfections - IC production is not perfect. This also accounts for worst-case scenarios. Of course, ICs that do not meet minimum quality will be discarded at factory.

  25. more OSS FPGA tools by Kishin · · Score: 2

    This is cool stuff. Here's some other stuff I found recently for anyone interested in messing with bitstreams, creating an open-source FPGA, or doing hardware more easily. Hardware designers feedback is appreciated.

    Open Source Bitstream Generation without R.E. or license violations: http://www.isi.edu/~nsteiner/p...

    Archipelago - an open-source FPGA with toolflow support: http://www.eecs.berkeley.edu/P...

    Cx, open-source, hardware & synthesis language: http://cx-lang.org/

    QFlow Open-source Flow from behavioral synthesis to detail routing: http://opencircuitdesign.com/q...

    Have fun people! Especially building on the first two. I'd appreciate experienced people telling me how good the Cx system is for (a) people doing FPGA with high-level synthesis tools and/or (b) beginners using behavioral verilog wanting something better.

  26. Re:And Lattice wont shut this project down because by TeknoHog · · Score: 1

    In my understanding, one main reason for this secrecy with FPGAs is a kind of DRM. A lot of gadgets out there use FPGAs, and they contain some proprietary design in the form of the bitstream. If this format were open, anyone could copy and modify the design, much more easily than copying actual hardware design of a chip. Thus the secrecy is in the interest of major FPGA users, not the manufacturers themselves.

    IIRC, some FPGAs even provide a kind of encryption for bitstreams, but then there's your usual DRM problem of having the keys available somewhere.

    --
    Escher was the first MC and Giger invented the HR department.
  27. Re:And Lattice wont shut this project down because by KGIII · · Score: 1

    That is what I was thinking but he does point out that they are insane. I have no evidence to the contrary, so...

    --
    "So long and thanks for all the fish."
  28. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  29. Re:And Lattice wont shut this project down because by serviscope_minor · · Score: 1

    I've never actually worked with Lattice, so they might be the rare exception. But yeah most hardware companies seem to be crazy.

    --
    SJW n. One who posts facts.
  30. Re:DO-254 by Kishin · · Score: 1

    Very interesting that you do DO-254. My background was high assurance and I studied a lot of DO-178B stuff in the process. I didn't work in that market but it generated many high-quality components applicable to other areas. What they pulled off in terms of features amenable to assurance/certification also gave me a guess at what the next project with similar complexity would pull off. Also how I discovered SPARK and Astree. :)

    My recent focus is on clean-slate, secure hardware with two aspects being ensuring hardware correctness and preventing subversion. I've come up with a lot of methods applicable to what HW people have taught me of their flows. Safety- and security-critical have considerable overlap in terms of verification from defect reduction to testing to traceability. I'd be very curious to hear of what flow you use for HW (esp ASIC) design in DO-254 space. I appreciate the memo as it's a good start on the subject and will help my own work. Still curious if there is a write-up by anyone on specific flow and what methods worked best on what problems past what's published on HW development in general.