Interview Questions
-
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…
-
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…
-
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,…
-
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…
-
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…
-
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…
-
Design a DDR Memory Controller (II) – Data Hazards Handling
We provided an overview of a DDR memory controller architecture in previous posts. One important aspect that impacts the controller architecture, is data hazards handling. Note, the data hazards we discuss here is from AXI master’s perspective. Write After Write (WAW) hazards can happen, when…
-
Design a DDR Memory Controller (I) – An Overview
We will cover DDR memory controller design in this post. Note, there are many ways to implement DDR memory controllers, and we show one possible implementation as a case study. As shown below, on one side, a DDR memory controller takes read and write requests…
-
RTL Implementations of 3 Must Know Encoding Techniques
There are quite a few encoding techniques used in modern ASIC design. In this post, we will cover RTL implementations of 3 must know encoding techniques. Binary / 1-Hot Encoding To implement binary to 1-hot encoding, using 3-bit binary number for example: It is a…
-
2 Version Control Tools in ASIC Design Industry: Git & Perforce
Version control tools are critical for large projects such as ASIC / SOC developments and they enable cross functional team collaborations. The version control tools maintain a record of every change complete with authorship, timestamp, and many other details. ASIC / SOC engineers must be…
Read Our Books for Free with Kindle Unlimited
Our books are available on Kindle Unlimited for free. Plus, you get unlimited access to hundreds of other books for preparing hardware interviews, including our recommended reading list
* Chipress participates in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com
Subscribe
Enter your email to get updates from us. You might need to check the spam folder for the confirmation email.











