-
DFT (I) – Why is ASIC / SOC Testability Important?
During chip pre-silicon verification, RTL and DV engineers work together to check the functionality of the HDL model of a chip. Engineers utilize simulation, or formal verification, to make sure an SoC is well designed and logically free of errors. However, silicon may still fail due to physical defects arising from fabrication. Such defects include…
-
Software API of Hardware Accelerators: A Quick Overview
Modern SoC equips with varieties of hardware accelerators for different types of workloads, for example: The heart of an SoC is the CPU, and it is where the Operating System (OS) is running. A driver is the software that tells the OS how to communicate with a hardware accelerator in the SoC, and the OS…
-
Learning UVM: 2 Free Online Resources
UVM (Universal Verification Methodology) is the most popular verification framework used in the ASIC / SOC industry. Unfortunately, there are not a whole lot of resources for people to study UVM themselves, and many schools do not teach UVM in classrooms. We found 2 free online resources for UVM study: Both of these are recommended…
-
RTL Implementation of Integer Division by Constants
In our 1st book in “Crack the Hardware Interview”, we discussed how to implement arbitrary integer division in RTL, and such division takes several clock cycles to complete and is costly in physical implementation. It is also quite common to implement integer division by constant in hardware design. We will cover a few cases in…
-
Transistor Evolution: from Planar to FinFET to NanoSheet
Conventional transistors come with a 2D planar structure, where both source and drain are implemented beneath the surface of the silicon substrate. However, as the process advances, it gets harder and harder to achieve high frequency response, high channel control, and low leakage currents. Starting from 22 nm and 16 nm technology nodes, the industry…
-
LFSR (Linear Feedback Shift Register): Randomize in Digital World
In digital design, we quite often need to generate random numbers. However, it is impossible to achieve true randomness in the digital world. Therefore, design engineers use LFSR (Linear Feedback Shift Register) to generate pseudo-random sequences. Why Randomness is Needed in Digital Design? Randomness is everywhere in digital design, for example, cryptography, BIST (Built-in Self-test)…
-
3 EDA Playgrounds: Free Online RTL Simulators & Waveform Editor
Traditional commercial EDA tools usually cost tens of thousands annually, and it introduces high bars for people who want to enter the hardware industry. Unlike the software industry, there are not a whole lot of open-source hardware tools for people to try out freely. Luckily, hardware engineers still have a few free or open-source choices…
-
Signal Manipulation in RTL: Edge Detection, Pulse & Level Signal Conversions
How to detect signal edges, as well as how to convert between pulse and level signals, are frequently asked in ASIC / RTL design interviews. We intend to cover these RTL signal manipulation techniques in this post. Rising Edge Detection RTL implementation of rising edge detection is shown below: Falling Edge Detection RTL implementation of…
-
Design a DDR Memory Controller (IV) – RAS & Power Saving Control
The DDR memory controller should typically be equipped with RAS features and saving control. We will cover these two topics in this post. RAS Features RAS stands for Reliability, Availability, and Serviceability. If there exists data corruption, either internal to the DDR memory controller or the DRAM device, the DDR memory controller should report and…
-
Design a DDR Memory Controller (III) – Arbitration, Scheduling & QoS
We discussed how a DDR memory controller deals with data hazards in previous posts. Let us look at how the DDR memory controller handles DDR command arbitration, scheduling and QoS. There are many ways to implement DDR command arbitration and scheduling, and we show one possible solution below. Before any DDR command can be issued,…
