![](https://habrastorage.org/getpro/habr/upload_files/5c1/7cc/cdd/5c17cccddc4632378d2dda788089ce3a.jpg)
The second meetup of the Portable SystemVerilog Examples group on January 21 2024 at Hacker Dojo in Mountain View, California, went as planned: we moved from the stage of presenting the project to the self-introductions of the participants and the initial tutorial with the first examples. We also started distributing the tasks. The next meetup is scheduled for January 28 at the same location, from 2 pm to 5 pm. The contents of the meeting will be to work on the examples: basics-graphics-music and systemverilog-homework.
Overall the goal of the group is to improve a set of portable SystemVerilog examples to use in educational seminars worldwide on digital design and microarchitecture. The focus is on solving three challenges:
Removing EDA and FPGA vendor locks for the educators. The examples support 30 boards with FPGAs from Xilinx, Altera, Gowin and Lattice and aim to be compatible with open-source ASIC design tools.
Compensating the gap between academia and industry in solving microarchitectural problems necessary for a career in ASIC design, building CPU, GPU and networking chips.
Reducing the barrier of entry for the novice or a person from a related field aiming to extend their expertise to become better in system design or software acceleration.
The motivation to participate in the group for different participants varies:
One gentleman and one lady have long experience working as a design verification (DV) engineer. The gentleman knows SystemVerilog but needs to beef up his experience in RTL microarchitecture: building pipelines, data flow control, arbitration, and FIFOs. The lady also knows SystemVerilog but needs to get familiar with FPGAs. I would expect the following sequence of steps from them:
a) Go through all the systemverilog-homework exercises. I will check the results. To go through the exercises you need to have Icarus Verilog version 12 installed either under Linux or Windows. Then you go to a subdirectory of the cloned repository and run either 01_combinational_logic/run_all_using_iverilog_under_linux_or_macos_brew.sh (Linux) or run_all_using_iverilog_under_windows.bat (Windows).
b) Go through all the examples in basics-graphics-music we did in the previous meetup.
c) Get from me a board we do not support yet and adopt the examples to that board by writing proper board-specific files and modifying the scripts.
d) Discuss with me the next microarchitectural examples to write. Some can be based on the information from Digital Design: A Systems Approach by William James Dally and R. Curtis Harting.Another gentleman is already an RTL designer but has limited exposure to CPUs. We have tasks to integrate a number of CPU cores into other example infrastructure, starting from the simplest schoolRISCV to several more complicated cores. We should create a series of interview-like problems, for example: "Get schoolRISCV, a single-cycle core with 240 lines of Verilog code, and show how you can add a multiplication instruction with a pipelined multiplier, implemented as a black box with latency 2 clock cycles".
I would recommend this gentleman to do a), b), c), then:
e) Read chapters 6 and 7 of Digital Design and Computer Architecture, RISC-V Edition by Sarah Harris and David Harris.
f) Adopt schoolRISCV into the basics-graphics-music infrastructure.
g) Work on adopting several more RISC-V cores.
h) Work on creating an example of multiple cores sharing multi-bank memory with arbitration.
i) Work on creating an example of multiple cores exchanging messages with FIFOs.
j) Work with me on creating interview questions similar to the one outlined above.There were several participants who went through the basic digital design classes in the university but later on worked on something else: embedded software or PCB design. There were also students who are looking to start or improve their knowledge. Not necessarily from scratch: one gentleman learned Verilog but wants to learn SystemVerilog. I would expect all of them to go through a), b), c) and also study the following two books:
k) Already mentioned Digital Design and Computer Architecture, RISC-V Edition by Sarah Harris and David Harris but from the beginning.
l) Logic Design and Verification Using SystemVerilog – March 1, 2016 by Donald Thomas. Not to be confused with the old (starting 1980s) books of the same author.
m) IEEE 1800-2017 - Standard for SystemVerilog should be used as a reference.There was also a distinguished school teacher (ex-Xilinx) who wants to try FPGA lessons in his technology curriculum. I created a special set of minimalistic examples to be used with minimalistic boards, and we can start from those examples at our next meetup on January 28. We can also try schoolRISCV with him. I would expect from him a) b) c) e) f) k) l).
Finally, we have a lady who is interested in working on even more introductory examples for children, using small-scale integration chips on a breadboard. We can create a smooth transition from these examples and examples on FPGA boards.
We also discussed the need to formulate a hackathon proposal that can be made for an FPGA, EDA, or electronic vendor.
See you all and possibly some new participants at the next meetup on Sunday, January 28, 2024, at Hacker Dojo in Mountain View, California, at 2 pm. For those who cannot join in person, you can try to use Zoom with the provided link.
![](https://habrastorage.org/getpro/habr/upload_files/b35/488/f0f/b35488f0f49682910c9706dbfaebcc18.jpg)