-
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 good practice to write an SVA, making sure “oneHot” is…
-
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 proficient in check-in / check-out / branch / merge commands…
-
Design a sync FIFO using single-port SRAMs
In our 1st book in series “Crack the Hardware Interview”, we discussed how to design a sync FIFO using a dual-port SRAM. Assuming the same size of storage, single-port SRAMs typically come with a smaller area than dual-port SRAMs. Therefore, using single-port SRAMs as sync FIFO storage is a more common practice and a more…
-
How to implement hardware for array sorting in ascending order (III) – Using Linear Algebra?
In a previous post, we discussed one possible array sort solution without comparators. There are more comparison-free array sorting implementations available. In paper “An Efficient O(N) Comparison-Free Sorting Algorithm”, Saleh Abel-Hafeez and Ann Gordon-Ross proposed a new sorting algorithm, targeted for custom, IC-designed applications, such as GPU, and video processing DSP chips. The idea is…
-
How to implement hardware for array sorting in ascending order (II) – Without Comparator?
In a previous post, we discussed hardware implementation for array sorting using comparators. However, it is also possible to sort arrays without comparators. Surajeet Ghosh, Shaon Dasgupta and Sanchita Saha Ray presented a novel solution in their paper “A Comparison-Free Hardware Sorting Engine”. We will cover the high-level idea and a few implementation details of…
-
How to implement hardware for array sorting in ascending order (I) – With Comparator?
Implementing hardware based array sorting is frequently asked when interviewing with high frequency trading companies. There are quite a few software based sorting algorithms that hardware implementation can leverage. If interested, you can go to this site and get a visual idea how each sorting algorithm works with random initial order. In the following discussions,…
-
How to “evaluate” the hiring manager during an interview?
Since the hiring manager has a direct impact on your future career growth in the company, it is important for you to evaluate whether you would like to work with the hiring manager in the future. The most effective approach is to get the opinions / feedback from other people’s mouths if they have worked…
-
Design a DDR Memory Controller (VI) – DRAM hierarchy & DDR Address Decoding
A typical DRAM hierarchy looks like this: It is possible that a particular DRAM product does not include one or more hierarchies listed above. For example, DIMM was commonly seen in desktops and servers, not in smart phones or watches; Bank Group (BG) was introduced in DDR4; Channel (CH) was introduced in LPDDR4, etc. Due…
-
How to quickly learn scripting languages for ASIC design interviews?
In ASIC design and implementation flows, Tcl and Python are the 2 most widely used scripting languages: Therefore, it is important to master these 2 scripting languages for ASIC design interview preparation. We recommend the following 2 books if you want to learn Tcl and Python thoroughly: However, for the sake of ASIC design interview…
-
A Must Read List of Papers for ASIC Design Interviews
Yet Another Latch and Gotchas Paper by Don Mills This paper discusses several SystemVerilog coding topics that can lead to inadvertent design bugs, including casex / casez expressions and unique / priority case statements. It is a recommended reading before using these SystemVerilog new features. Simulation and Synthesis Techniques for Asynchronous FIFO Design by Clifford…
