what to read at any level of preparation
A new stream started in the fall Schools of Digital Circuit Synthesis — our free educational program on modern digital circuit design techniques. From commodity ASICs and general-purpose microprocessors to reconfigurable FPGAs and specialty computers. A considerable amount of professional literature has been published on these and related topics. We asked the School's teachers, Yuri Panchul and Alexander Ryabov, to choose books that will help with studying at school and independently mastering the synthesis of digital circuits.
“Digital Circuit Design and Computer Architecture: RISC-V”, David Harris, Sarah Harris
This new version the popular book “Digital Circuit Design and Computer Architecture”, which has become one of the main textbooks in many technical universities in Russia. We wrote about her in selection of books on circuit design.
Digital Circuit Design and Computer Architecture has three versions, focusing on MIPS, ARM, and RISC-V architectures. The first five chapters differ slightly; they are devoted to the basics of digital circuitry and the hardware description languages SystemVerilog and VHDL. Next come chapters about specific architecture (command system, processor interface for the programmer), microarchitecture (hardware organization of the processor from the perspective of an electronics specialist) and the use of ready-made chips based on a specific architecture. The section on microarchitecture describes the implementation of the simplest processor core in hardware description languages. This is an important advantage of the textbook.
In the 1990-2000s, many Western universities used the MIPS architecture for teaching, but in the 2010s, ARM cores became so dominant in commercial products that teachers began to switch to textbooks about ARM. Unfortunately, ARM did not allow university researchers to experiment freely with the architecture, so when the open architecture RISC-V appeared, it became the new standard for education.
Yuri Panchul
microarchitect and designer of digital circuits at the register transfer level
In addition to their work on digital circuit design and RISC-V architecture, David and Sarah Harris are currently finishing a new book RISC-V Microprocessor System-On-Chip Design — “Design of a microprocessor SoC with RISC-V architecture.” It will be published by Elsevier in January.
The book is intended for students who want to learn more about the development of general-purpose microprocessors. In it, the authors analyze the open Wally processor core from the OpenHW Group project. This kernel has a virtual memory management device and an interrupt controller. Implemented floating point commands. The book demonstrates the process of verifying such kernels and running Linux on them. The Harrises' sequel is not required reading for all electronics students: some are more interested in delving into the microarchitecture of accelerators for machine learning, computer graphics, networking chips, or other types of chips.
“FPGA Programming for Beginners” by Frank Bruno
It will also help with independent work book by Frank Brunowhich covers the entire process of FPGA programming and hardware circuit design. As you expand your knowledge of combinational logic and FPGAs, you'll start by switching LEDs and eventually build an entire output subsystem using a VGA controller. You can embark on this exciting path even with minimal knowledge of the SystemVerilog language and FPGA development.
“Logical design and verification of systems using SystemVerilog”, Donald Thomas
It will help you improve in SystemVerilog, a language for describing and verifying equipment. work by Donald Thomas. SystemVerilog makes it easy to convey engineering intent in models, includes software abstractions to make testing easier, and provides tools for measuring functional coverage during the verification process.
The book contains not only a description of SystemVerilog, but also additional materials on logical design. To master this you will need at least basic training in circuit design and programming.
Yuri Panchul
microarchitect and designer of digital circuits at the register transfer level
Donald Thomas and Philip Moorby are the authors of the very first textbook on Verilog, The Verilog Hardware Description Language, which was published in 1991 and went through five editions. This book has been compared to the work of Kernighan and Ritchie for the C programming language. But “Logical Design and Verification of Systems with SystemVerilog” is not a re-release of the classics, but a completely new book.
Unlike other authors, Donald Thomas does not retell syntax standards, but explains the meaning of the language: why certain constructions were introduced. It also concerns verification methodologies, static analysis of time delays, and the organization of interfaces between blocks. Finally, the book includes a chapter on how the Verilog simulator works, without understanding which many elements of the language, such as non-blocking assignments, look like incomprehensible black magic spells to a beginner.
Digital Design: A Systems Approach, Bill Dally, R. Curtis Harting
Book covers all the topics necessary to work with digital circuits: creating and using combinational and sequential circuits, timings, synchronization, efficient development in Verilog. The theoretical materials are supplemented by numerous examples, links to code and informative slides.
Yuri Panchul
microarchitect and designer of digital circuits at the register transfer level
Dally and Harting's book is a quality textbook that is used as the main textbook at Stanford. The book includes important topics that did not have space in the Harrises' introductory book, such as hardware implementation of floating-point arithmetic or double buffering of data in data processing pipelines. In addition to microarchitectural diagrams, there is also clearly written Verilog code.
The reader should remember that this book does not cover everything. For example, it does not describe data flow control using credit counters, which many industrial companies prefer to use instead of double-buffered pipelines. But you can find articles on such microarchitectural topics on your own, starting from the book by Dalli and Harting.
SystemVerilog for Verification: A Guide to Learning the Testbench Language Features, Chris Speer, Greg Tambush
Verification on SystemVerilog is worth devoting separate book. Speer and Tambush talk in detail about all the features related to verification, analyze the main concepts and offer hundreds of examples. In addition, the authors explain different verification approaches, allowing readers to choose the ones that are appropriate for their cases. Self-test exercises are provided at the end of each part.
Yuri Panchul
microarchitect and designer of digital circuits at the register transfer level
Speer and Tambush's book is probably the best introductory book on verification. It combines clarity of presentation and the vast experience of the authors, who clearly understand why certain linguistic means are needed, and pass on this knowledge to the reader. The authors are not trying to create an encyclopedia of verification: the book contains neither the UVM library, nor temporal logic in the form of the SystemVerilog Assertions (SVA) sublanguage, nor formal verification. But if you want a solid understanding of how the industry's biggest workhorses—dynamic verification with simulation, test case generation with constraint solvers, and functional coverage control—function, this book is for you.
Once you have mastered register transfer level (RTL) design using the SystemVerilog hardware description language, you can take a closer look at how to design a wide class of general-purpose processor circuits, as well as integrate them with specialized computers and memory structures in SoCs and networks on a chip. .
Modern Processor Design: Fundamentals of Superscalar Processors, John Paul Shen, Mikko Lipasti
Using a unified approach, the authors compare book many mobile, desktop and server processors – their architecture, pipelines, memory implementation, I/O systems and other parameters. The comparison is complemented by two real cases of the development of processor architectures. In addition, the book includes an overview of advanced instruction processing technologies and questions for self-reflection.
Yuri Panchul
microarchitect and designer of digital circuits at the register transfer level
To get the most out of Shen and Lipasti's book, use it to do a few small Verilog projects. Implement a branch predictor, a pipeline interlock demonstration, or a register renaming algorithm. The book contains enough information to write such blocks yourself, and then compare your code with implementations in open processors.
Modern System-on-Chip Design on Arm, David J. Greaves
If you want to focus on SoC design, this book may well become a tabletop for you. Starting with the concept of SoC as a whole, the author examines in detail every aspect of their work, highlights the latest achievements in this area and, in conclusion, summarizes all the basic information. Thus, the book is suitable even for those who have only a basic understanding of single-chip systems.
Yuri Panchul
microarchitect and designer of digital circuits at the register transfer level
David Greaves's book may be useful not only to system-on-chip designers and users of ARM cores, but also to block designers. In particular, this is the first textbook I know of that discusses data flow control using credit counters, a technique that is widely used in industry. Although there is no code in Greaves' book, writing examples yourself from the text is a great exercise for the reader.
Microarchitecture of Network-on-Chip Routers: A Designer's Perspective, Giorgos Dimitrakopoulos, Anastasios Psarras, Ioannis Seitanidis
Alexander Ryabov
RTL developer, contributor to B.G.M.
Today, when designing SoCs, it is important to consider not only the processor cores, caches, accelerators and peripherals, but also the on-chip network architecture.
Networks on a chip (Network-On-Chip, NOC) have replaced the traditional data bus with the increasing number and complexity of IP blocks in modern electronic circuits. The topology and microarchitecture of the NOC determine how efficiently the processor cores and other devices can communicate with each other.
The authors examine this subsystem in detail, starting with the basics – valid-ready handshake and credit-based flow control – and moving on to more complex concepts. These aspects are presented so clearly that they will be understandable even to specialists with little experience in the industry. If you are interested in component networks in digital circuits and their design, then this book for you.
Bonus: Articles by Dan Gisselquist on zipcpu.com
Alexander Ryabov
RTL developer, contributor to B.G.M.
Blog articles ZipCPU represent a retrospective of work on commercial projects, describe the author’s experience and approaches to solving complex problems in the field of design and verification of digital systems.
I especially recommend two articles from this blog. IN Lessons learned while building an ASIC design the author shares solutions to the problems he encountered while designing the chip. An Overview of a 10Gb Ethernet Switch reveals details of the development of a high-speed Ethernet switch, raising issues of performance, optimization and key design decisions.
Books are useful, but to ensure there are fewer gaps in your education, a systematic approach will not hurt. You can consistently master the difficult development of digital microcircuits in the free School of Digital Circuit Synthesis.
The training program lasts six months and consists of two levels. The first, basic one, will be held online and offline in the Moscow office of YADRO, in educational clusters in other cities of Russia and even in Minsk. Based on the results of completing homework in November, selection will take place for the second, in-depth level of the program, which will last until April and will be organized only offline. After completing the in-depth program, we issue certificates of participation in the school.
You can find out more details and requirements for applicants, as well as apply for training on the page Schools of Digital Circuit Synthesis.