PicoEVB – Artix-7 FPGA board with M.2 interface
picoevb.com
picoevb.com
There are open source tools for programming FPGAs, and they are really great too: https://rwmj.wordpress.com/2018/03/17/playing-with-picorv32-...
The Virtex 7 series has been reverse engineered, but we're not quite in the situation where you can use the open source tools yet: https://github.com/SymbiFlow/prjxray
It’s not the the open source doesn’t work, it usually does, and the small size of it is really nice, it’s that it doesn’t come close in terms of debugging functionality when things go wrong.
My current workflow is to always develop using Quartus first, and only when things work perfectly I move it over to ICE40.
But even then I sometimes have an identical mid sized RTL design that works perfectly on my small Altera and Xilinx boards, and it just doesn’t work on my ICE40 board.
How do I debug this?
There is no easy signaltap or chipscope route. I just have to guess and hope for the best.
Unfortunately, what also doesn’t help is that all those cheaper Lattice FPGAs are woefully outdated. And their newer ones aren’t supported by open source tools yet.
I hope things improve fast, but for now, I’d advise hobbyists who are getting their toes in the water to use closed sourced tools.
We (or more likely, Clifford Wolf) writes the code to do it. Maybe not today, but proprietary software wasn't replaced by open source software in a day.
I'm not saying that yosys is a replacement for Vivado, it's obviously not, but here we have a nice Artix-based board and with not too much effort we could also offer a completely free, easy to use toolchain for it, perhaps not one which does everything, but definitely enough to download designs, compile a bitstream and program it onto the board.
Instead we have this huge barrier to entry - download 40GB [sic] of proprietary crap and register for a time-limited account which is tied to the particular chip you're using.
Actually, you kinda did:
>>> Please let's kill off Vivado once and for all. [...] There are open source tools for programming FPGAs, and they are really great too: https://rwmj.wordpress.com/2018/03/17/playing-with-picorv32-...
Right, and my truck runs on dreams and starlight.
But, Vivado does a lot of very valuable things in practice that will take a lot of time to really replace properly, if you're doing serious FPGA work for Xilinx systems. Or even if you're doing semi-serious work. A working flow is one thing, killing it off is a much harder challenge.
Even for Lattice FPGAs, IceStorm does not match e.g. Lattice iCEcube2 in terms of features or functionality (timing analysis reports, power estimation, floorplan and pinout UXs, very standard clock synthesis and constraint options, etc etc.) But it's way better at the things it actually does, admittedly. Despite that, I still find myself reaching for iCEcube2, even if my actual flow is IceStorm. These are all fixable and you can live without them, but that's for a simple EDA tool on the simplest/cheapest consumer FPGA you can buy, with a limited technology library and hard IP.
The ongoing move to use tools like VPR however will polish a lot of that off (power/timing/clock constraint synthesis). XRay will benefit from that. The rest is going to be a lot of IP cores, simulation models, middleware, and software tooling, and that's what's needed to really kill off something like Vivado.
Debugging tools are probably the most important middleware in particular, and they are sorely lacking.
Personally at least, I will say Yosys is IMO the nicest synthesis tool there is. So, if you are OK with Verilog, the FOSS community does have some best-in-class tools already. :)
This must be the weekly "Give beginners terrible advice" thread.
I might be missing something, but is that Virtex 7 or Artix 7 ? From the project page, it looks like Artix, and that's great since many hobbyist level entry boards use Artix 7, like Arty, Basys and Nexys (at the upper end)
It's fine now, or at least as 'fine' as FPGA tools ever get. Much better than ISE ever was. In any case, there is currently no alternative if you're looking at using a Xilinx part that is supported only by Vivado and not ISE.
I'm familiar with how FPGAs work, and I did a project writing Verilog and using Xilinx chips to make a basic CPU while at university. I still think the technology is really cool.
The problem is, after 4 years, I still haven't found a good use for my Virtex-II dev board. I'll give it away for free to anyone in Taiwan, or if you pay shipping to elsewhere. You could also try to suggest fun projects (e.g. I really want HDMI input to my laptop), but the physical size of the board is just too cumbersome for my itinerant needs.
The snickerdoodle is probably better if you want to do a lot of electronic breakout. Otherwise, for straight FPGA work, at this rate, the new Avnet Ultra96 simply looks like a superior base platform in most respects, and will be shipping in volume quite soon.
You're right that technology has continued to march along. $250 for a Zynq Ultrascale is very tempting, but I have enough dev boards collecting dust...
The FPGA has a PCIe endpoint peripheral. Making that available opens up a lot of possibilities.
I got a couple iCE40 boards and fired up yosys/icestorm (never touched the [more feature complete, I'm sure] proprietary toolchain for these), instant satisfaction, and I was able to do exactly what I wanted (and on any host CPU architecture or operating system I wanted). The only limitations were a lack of big IO, rather small memory, limited system size.
Frankly I think Lattice should just hire a couple people endorsed by Clifford Wolf (since I know Clifford is a very busy dude) to package up his brilliant toolchain with a bow, fill in the desired analytical features, and ship it as the official iCE40 toolchain. Maybe they could try to get something similar going for their larger FPGAs (which are unrelated to the iCE40, which they got as part of an acquisition) as well.
Prepare to have fun with setting up drivers for it on Linux.
Oh yeah, Artix 7 is not programmable by anything other than vevado...