Tuesday, May 6, 2014

Interview Question 23: Micro Architect a Counters Block



Micro-architect a counters module as shown in above picture.

This module contains a large number of counters using an SRAM. This memory takes two clocks to write and three clocks to read data. You need to read counter value based on provided Address_In, perform increment or decrement operation, and then write it back to the same location to update the value. The output ports provide updated counter values.

This may seem like a simple read-modify-write operation but account for corner cases like consecutive operations performed on the same address.