Sunday, October 18, 2009

Interview Question 4: Digital Delay


You are asked to design a 512 Clock Digital delay. A 32 bit data is fed to this module. It comes out after 512 clocks at the output.
- What is the most efficient way to design this block?
- What happens if data widths of input and output change? For example {32,64} or {64,32}?


- Where such huge delays are used?

Sunday, September 13, 2009


Interview Question 3: Random number generator with weights


Generate random numbers such that they follow certain needed pattern. For example out of 100 generated random numbers.

35% should be    5
20% should be   25
10% should be   123
35% should be   73

The naming is confusing. The set of output numbers is small. You are just creating numbers from a small set {5,25,123,73} but the sequence of output numbers is random or unpredictable.

Can you think of any application or test bench mechanism where such numbers are needed?

Sunday, August 9, 2009


Interview Question 2: Find the largest bit in 64 bit number

Problem: You are asked to design a hardware which takes in a 64 bit number and finds out the largest position of  “1”.  For example if the input number is “00001010101111000” then the output should assert “1100” or 12 in decimal.



You can also dive deeper and find out corner cases and suggest how to fix them.
Also try to create solution which will be synthesis friendly and produces smallest and fastest solution.

Tuesday, July 7, 2009

Interview Question 1: Design a Tape Reader


Problem 1: Design a tape reading system. The tape contains 2^n - 1 numbers. One number is missing on the tape. Design hardware + software system to read the numbers and find out the missing number.
Assumptions:
- Tape is continuous. Assume that you have enough low level components given to identify and read a number.

Problem 2: The similar problem is posed with 2*n + 1 numbers. 2*n numbers are in pairs. For example
{10,10, 21,21,3} and you need to find out the odd number which is 3 in this example.
The numbers are not in any particular order. For example in the above example the numbers might occur as
{10,3,21,10,21}. The “n” is large.

You will notice that this is an open ended question. The interviewer is not looking for a fixed answer. Rather he is looking for a matured approach which shows how a person thinks and applies his existing knowledge in solving a given problem.


Block diagram of the desired system

Saturday, June 6, 2009

This blog will contain information related to
- Digital design basics
- High speed design
- Low power design
- Interview questions
- EDA books and tool reviews

If you want to suggest any topic or get answer to any related question then please email it to rajesh52@gmail.com.