8 ms·
An open source Xilinx Spartan 6 miniPCIe development board
- vineeth 11y agoPretty cool. Does the board show up as PCIe endpoint if it's plugged into a laptop?
- duskwuff 11y agoNot on its own. You'd have to implement an endpoint on the FPGA to make it show up. (Same as most USB microcontrollers won't show up on the bus until there's appropriate code running on them.)
- TD-Linux 11y agoReally nice design! Impressive routing, I was surprised you were able to fit two DDR chips on there as well. It's still too bad that all the tooling for this is closed source (Altium, Xilinx ISE / Vivado, with the latter being far more offensive). But the Spartan 6 is a really nice chip otherwise. It seems like the target application is compute acceleration. Do you have any particular applications in mind?
- jjoonathan 11y agoAnother possible application: talking to high speed serial busses. This isn't just a Spartan 6, it's a Spartan 6 XCblahblahT. Usually when you see cheap Spartan 6 boards they use the non-transceiver version to cut costs without mentioning that it cuts one of the killer features of the chip! This one is the real deal. You still have to use ISE (not even Vivado; they locked the Spartan 6s out of Vivado) but it's still nice. EDIT: they may have brought all the transceivers out to PCIe; I'd have to look closer to tell for sure.
- opello 11y agoThis is MiniPCIe which would only have a x1 connection to the edge fingers, which means only 4 GTP connections would be needed (and the XC6SLX100T has 8 IIRC).
- aceperry 11y agoThis. Although I think Altium is the more offensive toolset. The real fly in the ointment for open source hardware is the proprietary tooling.
- TD-Linux 11y agoI've since moved on to KiCAD and been pretty happy with it. Something like this board would still be near difficult to impossible, though, as impedance matching for the DDR lines doesn't really exist in KiCAD. I also ordered a few ICEsticks to play with the new icestorm open source toolchain. That FPGA is in no way comparable to a Spartan 6, though.
- dfox 11y agoNew KiCAD versions (from bzr) have push and shove interactive router which also can do length matching and differential pairs, although the whole thing is far from complete and stable but it is usable (for example, the "push and shove" part does not work when routing diff pairs and when you move move mouse too fast in plain track routing mode it just crashes). One problem with these new features is that they are somehow linked to new implementation of pcbnew's canvas which also implies somewhat different UI behavior (more windows-like, with selection of individual PCB elements and so on), which I generally don't like that much. Anyhow I recently used current kicad from bzr for somewhat non-trivial board (smallish FPGA in TQFP, ARM MCU, some analog RF, few LVDS lines).
- michaelt 11y agoAltium have recently released 'circuitmaker' which is basically a $0 version of Altium, for open hardware. I guess it's meant to compete with Eagle, which a lot of open hardware projects use. It's still closed source (like Eagle). And it's Windows-only. And currently there's a DirectX conflict with VirtualBox so you can't use it there (reportedly it works in other VMs). But it's cheaper than paying $9000-a-seat-plus-$1000-a-year-maintainance for commercial Altium.
- mng2 11y agoIt should be mentioned that the '100T device pictured actually requires the full paid version of ISE. The free-as-in-beer ISE Webpack only supports up to the '75T. Thankfully Xilinx implemented compatible packages through the device family, so lower devices are a drop-in replacement (mostly). Maybe one day we'll have a Free toolchain, but FPGA tools are much closer to chip design tools than to compilers, and the space is fraught with patent concerns. However I did read on Deep Chip that some fundamental synthesis patents have been invalidated, which might open up some breathing room.
- mindcrime 11y agoSupposedly, a lot of key FPGA patents are set to expire Real Soon Now, or just did, or something along those lines. I'm holding out hope that we'll have a true Open Source FPGA environment sooner or later, but it sure is taking it's time... :-(
- Tomte 11y agoAre patents really what's blocking it? I only have a passing understanding of the FPGA world, but I thought that everything in that space in shrouded in trade secrets. Do patent claim descriptions really have enough detail to help you produce a working bitstream?
- wtallis 11y agoPatent threats don't really hinder community reverse engineering efforts, but they do discourage the major vendors from being open-source friendly, because nobody wants to open up their tech only to get sued over the details you just disclosed.
- sliverstorm 11y agoThat's a key point, Altera and Xilinx may well have decided to keep some of their inventions secret, banking on being able to keep them secret, In which case a patent may do them little good. And there is no 7-year date of expiry on secrets.
- 11y ago
- masta 11y agoI was a bit surprised to see an asymmetric stackup, many board-houses will complain about that. It can also become a problem during assembly, because the different heat distributions can cause the board to warp. Neither the schematics nor the layout would have passed a proper review. On the other hand, thanks for providing the data to the public, it is an interesting project either way.
- vardump 11y agoSo there's a serial flash on board? How many milliseconds max it takes to load the bitstream to FPGA after power on? Can you load PCIe endpoint within PCIe spec alotted time, 100 ms? Is partial bitstream reprogramming possible?
- duskwuff 11y agoThe FPGA is an XC6SLX100T, so the bitstream could be up to 26.7 megabits. It could take up to two seconds or so to configure the part with a large design.
- vardump 11y agoSo is it possible to load bitstream in parts, enough for basic PCIe endpoint within 100 ms to conform to PCIe spec and then load a bigger design afterwards?
- Sanddancer 11y agoYes. Xilinx chips can do on-the-fly reconfiguration. So you can have your bootstrap loader and then either load a more complete firmware from the spi chip, or over pcie
- mng2 11y agoI don't think it's supported for Spartan-6 though.
- vardump 11y agoSo it's not possible to implement compliant PCIe interface together with some bigger block with this board?
- mng2 11y agoNot with official workflows at least, and even then, you would somehow have to keep the PCIe block up during reconfiguration for compliance. I think it would be difficult to reverse engineer to that level. The easier thing to do would be to delay enumeration.
- Smushman 11y agohttp://polysome.io/ http://polysome.io/ The manufacturer. What purpose is this useful for? Can someone elaborate?
- fezz 11y agoSoftware defined radio maybe? Also, if you had a small motherboard with mini-pcie, this could be an interesting add on to offload processing to?
- Sanddancer 11y agoIt looks like, from the scant info on the website and github, that they initial goal is to use these as autonomous mesh network nodes, probably with lots of crypto processing, given that the name of the board files is PolysomeCrypto01. It looks, though, like this was discovered before the folks were ready to really discuss it.
- polysome 11y agoOriginally we built this board for a custom security enhanced SoC design based on OpenSPARC T1. It was to run OpenBSD from the microSD card and operate as the baseband controller for a new type of wireless network node. The board could be repurposed for the lowRISC project. It is also suitable for use with embedded routers and laptops as a crypto coprocessor or HSM. We are pairing the first batch of prototypes with the PCengines apu1d4 (w/coreboot) and will provide these reference platforms to developers. To be considered for a unit you need to compile a bitstream of the OpenSPARC T1 for the LX150T variant of this board. Email development@polysome.io for more details Thanks for all your encouragement ! Just wait till you see what's coming.
- aceperry 11y agoExcellent looking design. This could become a big deal for the maker community. I'm glad to see so much open source stuff coming out for hardware.
- AdieuToLogic 11y agoWay cool hardware! Kudos to the team putting this out.
- imrehg 11y agoOh, nice! On the other hand, seeing this on HN now I feel really inadequate, having just finished the prototype of my miniPCIe Arduino clone last weekend... Really need to level up too! KiCad source of the PCIeDuino: https://github.com/moonpunchorg/pcieduino https://github.com/moonpunchorg/pcieduino Pictures: http://imgur.com/a/XiJ12 http://imgur.com/a/XiJ12
- adisbladis 11y agoWhich ARM-board you are using in those pictures?
- imrehg 11y agoIt's a VIA VAB-600 Springboard. There are some other VIA ARM boards that can do mini-PCIe (though some just USB, some do PCI too) VAB-600: http://www.viaspringboard.com/ http://www.viaspringboard.com/ or http://www.viaembedded.com/en/boards/pico-itx/vab-600/ http://www.viaembedded.com/en/boards/pico-itx/vab-600/ VAB-820: http://www.viaembedded.com/en/boards/pico-itx/vab-820/ http://www.viaembedded.com/en/boards/pico-itx/vab-820/ (better software, Freescale SoC) VAB-1000: http://www.viaembedded.com/en/boards/pico-itx/vab-1000/ http://www.viaembedded.com/en/boards/pico-itx/vab-1000/ (at the moment Android only) I hope to try other vendors' ARM boards too, I've made a list a few weeks ago of those that have mini-PCIe connectors, so plenty to experiment with.... (disclaimer, I'm currently working at VIA)
- userbinator 11y agoThe FPGA itself is around $160. Not cheap, but not expensive either (look at some of the high-end Virtex devices for an idea of how much expensive FPGAs cost...)
- acd 11y agoWhat is the speed of a Xilinux Spartan 6 compared to an recent Intel i5-i7 series cpu?
- timpattinson 11y agoBeing an FPGA (essentially a blank canvas where you can design a logic cirguit), it's not really comparable to a general-purpose CPU. However in specialised applications, it can be much much faster. see: bitcoin mining and other crypto tasks.
- throwaway7767 11y agoWhat is the cruising altitude of a Boeing 787 compared to a VW beetle? You cannot compare these things in this way, it's apples and oranges.