4 ms·
I hear this a lot, but I really don't get it. The ide is very responsive, when you are interacting with a design, exploring structure or connectivity, static ti
by tails4e 6y ago
I hear this a lot, but I really don't get it. The ide is very responsive, when you are interacting with a design, exploring structure or connectivity, static timing analysis, etc.. Perhaps you are referring to synthesising RTL - yes thst is slow, but thats much slower with ASIC tools. Synthesis and PnR is a very cpu intensive task, and is separate from the GUI really. I'd be interested in hearing the specifics of what you found slow.
- user5994461 6y agoI have to join the other commenters. Vivado is maybe the worst IDE I have used. We had new projects and interns stuck for weeks because they couldn't figure out how to make a hello world project in Vivado (blink a led for a FPGA dev kit). There was zero doc and zero help available online because it's too niche. This was only unstuck after a while when one senior guy showed how to use it and wrote an internal 50 pages docs on how to create a project and do anything at all. Every single step is an impossible to figure out wonder. After the initial hiccups, the IDE and the SoC SDK were abysmal. Couldn't store the software in source control because Vivado had no source control support and it was autogenerating/overwriting garbage files all over the place. To be fair the tool was functional for routing and HDL development. It's usable professionally if you have time to learn and get trained. This may even be good by some embedded development standards (embedded consistently has really shitty development tools that other developers would never tolerate).
- tails4e 6y agoTheres loads of docs and step by step tutorials [0] is just one such free set of material with all files, with step by step PDFs and presentations to explain basic digital design concepts. This is just one form this larger list of courses [1], all free. There are also loads of videos showing how the GUI works [2] [0] https://github.com/xupgit/FPGA-Design-Flow-using-Vivado/tree/master/slides https://github.com/xupgit/FPGA-Design-Flow-using-Vivado/tree... [1] https://www.xilinx.com/support/university.html https://www.xilinx.com/support/university.html [2] https://www.xilinx.com/video/hardware/getting-started-with-the-vivado-ide.html https://www.xilinx.com/video/hardware/getting-started-with-t... Hello World blink an LED can be done in 10 mins flat, I'm afraid you did your intern a disservice by not giving him or her a basic intro and pointer to the docs. Do a goole search for vivado design flow and you'll see all those links I just posted. I lecture in digital design at my local university part time, and I use Vivado and in one lab students are already able to blink the LED, and much more. I do agree the SDK side is a bit dodgy. My biggest bugbear there is project corruption partly due to being eclipse based. I understand thats been upgraded to Vitis now, but have not used that yet. Vivado is separate from that and is very sold though
- user5994461 6y agoI was working on that around 2015 if I remember well. Some time after Xilinx was unifying their development tools into Vivado. The project attempted to use Zynq SoC, joint software and hardware development on the FPGA in HDL and on the embedded CPU in C. Not exactly trivial things to do but the scope was very small for a first go. We found zero documentation whatsoever on the internet. None of the things you linked to existed. Looks like it took 5 years for some tutorials to be written, and it's not even from Xilinx, it's from some guy sharing on GitHub (maybe a university). Interns were not to blame, more experienced engineers couldn't figure a thing and there was a 3 months deadline. If it were not for one employee who tried the Zynq platform 6 months before and was trained by Xilinx, the whole thing would surely have been canned. There was lots of issues with the platform and the IDE once got a hello world working (I really hope Xilinx fixed most of them). Basic APIs were not working or were documented wrong, the compiler had issues (modified gcc under a modified eclipse), the IDE occasionally crashed or got stuck (it called a ton of sub processes that got lost or failed). The SoC IO pins were undocumented (needed info and identifier to do the routing), had to get private doc from Xilinx and they had typo in their pin layouts, so there was a constant risk to misconfigure a pin and fry the board (FPGA don't forgive mixing up input and output and voltage). Now that I remember about it. The whole thing was pretty insane. ^^ My only question if I had to work on this again would be, does vivado support Git/SVN nowadays?
- tails4e 6y agoThanks for the detailed reply, but FYI the github stuff is from xilinx, they just make it open source. In 2015 vivado was pretty new, it's come a long way, so I'd give it another look. There has been a strong push as you can see to make the developer experience much better, so hopefully if you give it another chance you may come to appreciate it as much as I do.
- user5994461 6y agoTo be fair, the HDL tools are decent. There are some quirks but they get the job done (obviously it's professional tooling, not something an enthusiast can pick up over a weekend). I think you're working on the FPGA side? However the software development experience is dismal overall. I doubt it will ever improve much, hardware companies just don't make good development tools. The closest experience developers get to embedded might be android development. The IDE are good, source control, auto completion, the platform documentation is amazing, fully documented API with examples, there are entire guides on how the system work, remote debugging on the device (I've developed on Android version 1 a decade ago and it was all there). It's just great. Now try developing for a MCU and half the manufacturers can't document how to read an IO pin or use the DAC. I'm not looking forward to moving back to embedded. ^^