DescriptionQ335
Q335DesignArchASIC interview problem
Schedule bank commands with accepted-slot cooldown
TechniquesSchedulerCooldownDeterministic arbitration
DifficultyMedium
TopicRTL Design
LanguageSystemVerilog
Requirements5 checkpoints
01
Problem
Buffer a frame of commands for four banks, then reorder across banks so repeated commands to one bank have at least C intervening accepted slots. Emit accepted idle tokens only when no pending bank is eligible.
Example input and output
Use this case to check your interpretationInput
C=1; framed commands in arrival order: bank0=A, bank0=B, bank1=COutput
accepted slots: bank0 A, bank1 C, bank0 BExplanation
Bank 0 initially has the largest queue; after A, one accepted command from bank 1 supplies the required intervening cooldown slot before B.
02
Requirements (5)
- Buffer 1 through 16 commands and capture C in the range 0 through 3 with the first command.
- Preserve arrival order within each bank while allowing reordering across banks.
- Choose the eligible bank with the largest pending count and break ties by lower bank ID.
- Advance cooldown, FIFO heads, and pending counts only when slot_valid and slot_ready are both high.
- Count accepted idle tokens as intervening slots and hold the selected token stable during backpressure.
