The current activities: book, manual, seminars in California, seminars internationally, board support etc:

One-liners:

  1. Writing a textbook “Information Technology Architectures” with Purdue University.
  2. Writing an FPGA lab manual for the high school students.
  3. Creating the follow-up challenges to SystemVerilog microarchitecture challenge for AI No.1 and No.2.
  4. Creating an open-source illustration and educational materials around cache coherency using the MSI protocol.
  5. Creating an open-source UVM AXI-Lite Verification IP for educational purposes.
  6. Preparation for the event at CalPoly San Luis Obispo: uArch, foss ASIC and DV.
  7. An idea of a similar event in UC Santa Cruz.
  8. Report about Verilog Meetup / Mirai event in Mexico.
  9. Preparing for the Maker Faire event in Vallejo, California on September 26-28.
  10. Creating the board support packages for four boards that use Gowin, Altera and Xilinx.
  11. BSP for Kiwi (Vietnam) Gowin boards, as well as OrangePi MSOC board.
  12. Lattice board support.
  13. Miscellaneous boards: Numato Lab Mimas A7 Mini and BetterShengsun (Cyclone IV).
  14. A demo for the Maker Faire: Tang Nano 9K + a Geiger counter.
  15. A demo for the Make Faire: Tang Nano 4K + a camera within BGM example infra.
  16. A regional seminar in Bosnia + Serbia, Croatia, Montenegro.
  17. An idea of a regional seminar in Kenya.
  18. Online-based platform for systemverilog-homework.
  19. Formal verification methodology that can be added to the educational project.

Video discussion

In details:

  1. Writing a textbook “Information Technology Architectures” with Purdue University – Dmitry Gusev, Yuri Panchul. This textbook is aimed at freshmen students to introduce them to the whole technology stack, including gates, RTL, microarchitecture, CPU, assembly programming, high-level languages, operating systems and networking. The chapters on combinational and sequential logic have references to the Verilog Meetup examples. Status: in progress, delayed.
  2. Writing an FPGA lab manual for the high school students, hobbyists and other beginners with Jim Burnham. The manual is based on a restricted board set and simplified examples to make it more accessible. The manual has to be self-sufficient: each chapter has to include a minimal necessary theory and a step-by-step instruction to run the examples on the board. Status: uncertain. The original plan was to finish it during the summer; whether Jim cam work on it during the school year is unclear.
  3. Creating the follow-up challenges to SystemVerilog microarchitecture challenge for AI No.1 and No.2 – Yuri Panchul, Aadithya Manoj, Maxim Kudinov and others. AI engines still struggle with No.2 but we need to prepare ahead the challenges No.3, 4 etc. They can present this work at the event at California Polytechnic State University in San Luis Obispo, California. The event is tentatively planned to the weekend of October 18.
  4. Creating an open-source illustration and educational materials around cache coherency using the MSI protocol. Should allow the students to create transactions (reads, writes and interventions) and observe the sequence of actions: state changes, movement of data between L1 caches and the coherency manager, etc. Should include visualization via animation, RTL simulation support, ability to drive the transactions with or without CPU cores and a demo on FPGA boards. Nevil Pooniwala and Yuri Panchul. Status: brainstorming before the proposal.
  5. Creating an open-source UVM AXI-Lite Verification IP for educational purposes, based on non-UVM VIP by Yuri Panchul and UVM testbench by Shiva Swaroop.https://github.com/verilog-meetup/non-uvm-axi-lite-verification-ip
  6. Preparing the events at CalPoly San Luis Obispo on FPGA and ASIC design: introductory FPGA hackathon, microarchitectural topics, open-source ASIC design and verification. After discussing this idea with Stanley To I also got an idea to make a session called “The Limits of AI in SystemVerilog Microarchitecture” based on the SystemVerilog microarchitecture challenge for AI No.2. Adding the flow control. https://github.com/verilog-meetup/systemverilog-microarchitecture-challenge-for-ai-2 – and the follow-up challenges. Status: in progress.
  7. Starting the discussion to make the same type of seminars at the University of California Santa Cruz. Status: The idea has been expressed to UCSC students Ethan James and (? forgot the name). Pending on their talk with their professor.
  8. Report about Verilog Meetup / Mirai event in Mexico. Jorge Zavala put some information about it on Facebook and LinkedIn, but i want him to add an article to verilog-meetup.com website. Note to pictures to articles in WordPress you need to shrink them to 2000 pixels side max before uploading to a WordPress website. If someone volunteers he can prepare an article – this is a good practice to learn how to write WordPress posts:

    https://youtu.be/MYHOxDsbEGc?si=r_LFgfeEjo8cOo4c

  9. Preparing for the Maker Faire event in Vallejo, California on September 26-28. Link from the previous year.Things to do:
    1. Design and order the tablecloth similar to the poster on OpenSauce.
    2. Order 500 or 1000 business cards.
    3. Solder 50 FPGA board kits – need help from Ramprakash Baskar and other volunteers.
    4. Add the materials to the Maker Faire website.
  10. Creating the board support packages for four boards:
    1. ChipInventor ChipBoard v2.2
    2. MAX1000 Altera MAX10 FPGA Development Board. More info.
    3. Digilent Cmod A7-35T
    4. Digilent Cmod S7

    Status: assigned: Asher Wrobel with the help regarding the ChipInventor board from Professor Aroca from Wernher Von Braun Labs.

  11. Creating more board support packages, particularly for a new line of Gowin boards called Kiwi from Vietnam – might be useful to connect with the community in Vietnam:https://onekiwi.com.vn/products/kiwi-1p5-fpga-board/

    Status: Matt Stankus started to work on them. In addition, Matt can assemble and test the support forthe OrangePi MSOC board. The support was created by Vadim Ostrikov, but has to be independently evaluated. The board on AliExpress.

  12. Lattice board support. Some Lattice boards are supported now using Yosys-based toolchain but:
    1. We need to have local demos for the 7 boards I have and
    2. Somebody has to evaluate Lattice’s proprietary tools with the examples in basics-graphics-music

    Status: Jiang ZC expressed interest to work on Lattice board support, plus last week I gave the boards to Ramprakash Baskar.

  13. Miscellaneous boards: Numato Lab Mimas A7 Mini and BetterShengsun (Cyclone IV).https://numato.com/product/mimas-a7-mini-fpga-development-board/

    Also consider improving omdazz_epm570 support.

  14. Creating a demo for the Maker Faire that integrates Tang Nano 9K board with a Geiger counter. Using an existing dem with Terasic DE10-Lite as a baseline example. Status: assigned to Asher Wrobel.
  15. Create a demo for the Make Faire that integrates Tang Nano 4K board with a camera within basic-graphics-music (BGM) example infrastructure. Status: assigned to Dan Barrowman.
  16. A regional seminar in Bosnia with the surrounding countries: Serbia, Croatia, Montenegro. Status: the idea was developed with Jasmin at chili-chips.com, however it was put on hold due to a lack of sponsors and content clarity. This idea is now resurrected. Action item: make a Zoom call with Jasmin at least 2 weeks before the Maker Faire event, facilitate Jasmin’s participation in the Maker Faire event to rehearse the introductory part of the potential event. We can also use the seminar in Cal Poly at San Luis Obispo, California as a model of the seminar in Bosnia.
  17. A regional seminar in Kenya in connection with Philip Sisa. Status: The idea has been discussed with a university in Kenya and is pending marketing evaluation of the seminar’s usefulness for local students. The local students do some outsourcing of microcontroller programming for foreign countries, design some PCB boards and work locally in system designs like food dispensing machines and industrial automation.
  18. Online-based platform for systemverilog-homework developed by Viacheslav Gomolko. Action item: make a call with him to evaluate his integration of microarchitectural exercises.
  19. Formal verification methodology that can be added to the educational project, developed by Alexander Gnusin. Action item: make a call with him to evaluate.

A note on all board support packages: a board support package makes sense if and only if:

    1. You implement support for pretty much all examples and basic peripherals, i.e. cover buttons, LEDs, 7-segment display, LCD/VGA/HDMI/whatever graphics, a microphone and a sound output.

If you implement only the first example with buttons and LEDs and give it to me to continue, I will not accept it because you are just giving me additional work: I would have to study and probably fix your design before adding all the other code in the BSP. This might be more labor-intensive than doing it from scratch.

  1. In general, there should not be any ad-hoc changes in the script names that make the board look different from any other 40 or so boards in basics-graphics-music. By adding your own script or a makefile you give me additional work to do the same things for the other 40 boards. Such things should be discussed beforehand.
  2. Similarly, there should not be unusual pin arrangements that make the board look different from any other 40 or so boards in basics-graphics-music and cause a “What?” reaction. A user should expect all boards with similar interfaces (such as Pmod) to be interchangeable in the lab. The user experience should be consistent.
  3. If you come up with the “let’s rewrite all bash scripts to Python” idea, please make sure to implement it for all 40+ boards and toolchains (Xilinx, Altera, Gowin, Lattice etc). Demoing it for a single or a couple of boards is an another way of creating additional work for other people or splitting the project into two making it confusing for the users.
  4. No AI-generated code in the repository. The purpose of this project is to train you how to write Verilog or work with the toolchains, not to manage me cleaning up your AI output.

Whether you are participating in a specific project or just learn RTL or DV, the general recommendations are:

  1. If you study Verilog from scratch, read Chapter 4 in Harris & Harris, in parallel with running basics-graphics-music examples on an FPGA board, in parallel with doing SystemVerilog Homework exercises.
  2. If you prefer to ignore reading the basics-graphics-music (BGM) example instruction and just run the vendor’s GUI and start asking the questions why something does not work – I cannot help you to troubleshoot such problems because the scripts in BGM were created specifically with the purpose to isolate a user from the vendor-specific details.
  3. Same thing for using the vendor’s example instead of the recommended BGM. Helping to troubleshoot errors when using the vendor’s examples just creates additional work for both me and you. And those efforts are in an unimportant area instead of focusing on what matters – your design functionality, microarchitecture, timing etc. It also makes the experience board and vendor-specific.
  4. If you need to prepare for a job interview, make sure to run the microarchitectural part of systemverilog-homework exercises, as well as the new series of SV challenges for AI (those are good for humans as well as for AI):
    1. SystemVerilog Microarchitecture Challenge for AI No.1.
    2. SystemVerilog Microarchitecture Challenge for AI No.2. Adding the Flow Control.
  5. If you want to contribute to the exercises, work on a board-support package or on a new microarchitecture, verification IP or CPU-related example, let’s discuss it.

Thank you,
Yuri Panchul

Relevant information from the post Self-education and educating others

Self Education to Guarantee the Quality

To ensure everybody’s quality, we expect every member who is new to the field, to go through the following steps in his education. Those who already know the basics can review the materials to ensure their quality:

  1. Do all the homework from https://github.com/yuri-panchul/systemverilog-homework.
  2. Run and review all the examples in https://github.com/yuri-panchul/basics-graphics-music
  3. Get a tutorial in Bash if you have not done this before. We use Bash scripts to isolate users from vendor-specific toolchains.
  4. Get a tutorial in Git if you have not done this before. We use Git and GitHub Forks / Pull requests as the vehicle of collaboration inside the team and to publish the examples.
  5. Get a tutorial in Markdown markup language as we use it for documentation.
  6. Study a diagram editor for microarchitecture diagrams such as Lucidspark or draw.io.
  7. Learn how to use wavedrom.com for microarchitecture diagrams.
  8. Learn how to use edaplayground.com useful to create verification examples with full-featured SystemVerilog.

The Recommended Literature

In parallel with going through the problems and examples, we recommend studying the following books and online articles:

  1. Digital Design and Computer Architecture, RISC-V Edition by Sarah Harris and David Harris.
  2. 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.
  3. Digital Design: A Systems Approach by William James Dally and R. Curtis Harting.
  4. IEEE 1800-2017 – Standard for SystemVerilog should be used as a reference.
  5. Verilog Gotcha articles by Stuart Sutherland, Don Mills and Chris Spear: Part 1 and Part 2.
  6. The articles of Cliff Cummings.Once we get to verification examples:
  7. SystemVerilog for Verification: A Guide to Learning the Testbench Language Features 3rd ed. 2012 Edition by Chris Spear and Greg Tumbush.
  8. Writing Testbenches using SystemVerilog 2006th Edition by Janick Bergeron.
  9. Getting Started with UVM: A Beginner’s Guide – May 22, 2013 by Vanessa R. Cooper. This book does an excellent job of setting up the minimum necessary skeleton for the UVM testbench. However, the BFM driver code in this book is not good for pipelined and out-of-order protocols. There are no good books on BFMs for pipelined and out-of-order protocols – we have examples of how to do this right here, but we need to convert this example into UVM using Vanessa R. Cooper’s UVM skeleton example.Once we get to CPU-specific examples (like branch predictors, caches and Tomasulo), we recommend:
  10. Modern Processor Design: Fundamentals of Superscalar Processors by John Paul Shen and Mikko H. Lipasti.
  11. Modern System-on-Chip Design by David J. Greaves.