Design a module as shown below. The input sync_A gets asserted for some (say 3) clocks in the clk_A domain. The output sync_B should also assert for exactly the same number of clocks but in the clk_B domain.
Wednesday, October 14, 2020
Interview Question 47: Multi Clock Sync Pulse
Tuesday, September 15, 2020
Interview Question 46: What is wrong with this design?
Study the provided block diagram of a chip-level design. Each square has one clock delay associated with it. What can go wrong with this type of design? How will you fix it? How it will affect the overall design?
Monday, August 3, 2020
Interview Question 45: Find faster clock
Design a module that finds the faster clock between two different clocks. The output A_faster_than_B asserts "1" when fA > fB and asserts "0" when fB > fA along with valid.
Followup questions:
- How will you handle when clocks are almost the same or the same? How will you indicate the output in this case?
- How will update the design if asked to find and indicate the frequency of the clocks?
Monday, July 6, 2020
Interview Question 44: Fix the Timing Issue
Consider a design where two modules on the chip communicate with each other over a bus using a protocol like AXI. Data from block 1 is consumed by block 2 when both valid and ready are asserted.
Saturday, June 6, 2020
Interview Question 43: Improve the data pipeline
This is a data pipeline question. The existing design has a simple data pipeline as shown below.
Wednesday, May 20, 2020
Interview Question 42: Design Moving Average Calculator
Moving average = Sum of (number_in_1 + ...................+ number_in_N) / N
Assume that you need to calculate the moving average over 256 last numbers.
Followup questions:
- Design a parameterized RTL which can be used for any number
- What is the width of incoming numbers? (parameterized)
- Is there any restriction on the size of the design?
. How restriction on size will change design and accuracy?
Friday, April 3, 2020
Interview Question 41: Design a circuit to calculate square of a number
Create micro-architecture and write an RTL code for a design that calculates the square of a given number.
Caveat: It should not use any multiplier operation. It does not have to be done in one clock cycle.Wednesday, March 11, 2020
Interview Question 40: Design a Data Collector Machine
You are tasked to create a Data Collector Machine in Verilog as shown below. How will you approach this design?
Wednesday, February 12, 2020
Interview Question 39: Compute Sum of Differences.
You need to compute the Sum of Differences for the given two matrices.
Output = ABS(A00-B00) + .... + ABS(A03-B03) + ........+ ABS(A30-B30) + .... + ABS(A33-B33)
Monday, January 6, 2020
Interview Question 38: What are the issues with this logic?
This is one of the common questions asked to check your experience or awareness of CDC. (Clock Domain Crossing) Can you find at least two issues?