I just received a jolly interesting email from Victor Lyuboslavsky about a really useful and free online tool he developed called EDA Playground. Victor's message reads as follows:
Hi Max, as a follow-up to our earlier communications, I just wanted to let you know that you can now simulate and synthesize SystemVeriog and other HDLs from a web browser on EDA Playground. Since the tool is free and online, there is nothing to install, and it runs on any OS.
Before I go into detail as to what EDA Playground offers, let me first explain why I created it. Not long ago, I was preparing myself for job interviews and trying to ramp up on SystemVerilog and UVM (Universal Verification Methodology).
I used the web to find code examples and tutorials. However, often the examples were incomplete. Sometimes they were missing the necessary code to hook the example into a real design. Other times, the code examples had syntax errors -- I might be presented with a working design, with lines stripped out, but with undefined variables and dangling commas left in. Other times the code examples simply did not work on my simulator. All this resulted in endless frustration for the student in me. I knew there had to be a better way, so I created EDA Playground.
EDA Playground is a free web application that allows users to edit, simulate (and view waveforms), synthesize, and share their HDL code. Its goal is to accelerate the learning of design and testbench development with easier code sharing and with simpler access to simulators and libraries. EDA Playground is specifically designed for small prototypes and examples (it is not intended to be used for a full-blown FPGA or ASIC design).
The usage model is simple -- type in your code, select your favorite simulator or synthesis tool, and click run. If your simulation dumps waves, all you have to do is click a checkbox and the waves will open in a new window after the run. Any code or waveform display may be saved as a static HTML link, like this example, so that anyone can open up the code, re-run it, and get the same result.
Currently, EDA Playground runs open source and/or free simulation and synthesis EDA tools. It supports several HDLs such as SystemVerilog, VHDL, MyHDL, and Migen. Verification engineers may play with several libraries and methodologies, such as UVM, OVL, SVUnit, and cocotb. UVM is currently one of the most popular verification methodologies. Here is a simple Verilog design and UVM testbench. For synthesis, EDA Playground uses the open source Yosys and VTR flows.
Most users are using EDA Playground for quick prototyping and simply trying something out. Some are using it to provide code examples when asking and answering questions in online forums. We have one engineer who uses EDA Playground during technical interviews to test candidates' HDL coding and debug skills. Another user, Neil Johnson, a guest blogger for EE Times, has been creating hands-on tutorials for the SVUnit library on EDA Playground.
We are currently working with universities to create hands-on web-based tutorials and labs that will be used in actual digital design university courses. Our vision is for EDA Playground to become the destination for HDL examples and best practices in the industry. We also plan to add more tools in the future, such as formal verification, linting, and mixed-signal simulations.
Regards, Victor Lyuboslavsky, creator of EDA Playground
Well, all I can say is that I am very impressed. Anything that makes learning this stuff and sharing things easier has to be a good thing. I would be very interested to hear your views on EDA Playground, especially if you've already been playing with it.
Congratulations Victor!! This is a really cool tool. I've been playing with some simple VHDL examples using Modelsim simulator and it works like a charm.
I like the feature that allows saving the code. Maybe some people could be afraid of logging with Google or Facebook private account, but this is mandatory too for a lot of online apps that are far from being as useful as EDA Playground is -- I believe this is a fair way of getting funded ;-)
antedeluvian, you bring up a good point regarding self-learning material. EDA Playground is a platform where examples, tutorials, and hands-on labs can be hosted by EDA companies, training companies, or even individuals. However, so far the content is light. There is a tutorial for a cocotb testbench, the SVUnit tutorial mentioned in the article, and several Verilog video tutorials
We're looking for collaborators such as universities to create some quality comprehensive self-learning material.
Have you ever sat through a presentation where code snippets were shown in a Powerpoint slide? From my experience, I forget all about it when the slide is changed. Code should be run and be modified. There is no reason why every HDL training shouldn't be interactive.
This looks a remarkably powerful tool and Victor Lyuboslavsky is to be commended for making it freely available. I did follow the first tutorial and I was impressed at the presentation of the app (which is simple and uncluttered) and its linkage/compatibilty to many toolsets. I must admit though that some of it was over my head since my experience of any HDL was with AHDL (Altera's version of VHDL) at least 15 years ago.
What I would need (and advice is welcomed) is a suggestion for reading/self-learn matter that would take up to the point where I could actually use EDA Playground. It is possible on PSoC3/5 to define your own modules using Verilog and I would really like to get up to speed so that I can attempt that.