Skip to main content

When & Which

When & Which?

Comparison

Feature for Loop while Loop for-generate Statement
Execution Sequential Sequential Concurrent
Usage Location Inside a process Inside a process Outside a process
Iteration Fixed number of times Repeats while a condition is true Creates N physical copies
Purpose Algorithmic tasks Searching or Polling Hardware Replication

Quick Guide

  • Use a for loop when...

    • You need to repeat an action a specific number of times.
    • Iterating through all the bits of a vector, initializing every address in a memory.
  • Use a while loop when...

    • You need to repeat an action until a condition changes, and you don't know how long that will take.
    • Searching for the first occurrence of a value, waiting for a status flag to be set in a testbench.
  • Use a for-generate statement when...

    • You need to create multiple, regular instances of hardware components or concurrent statements.
    • Building an N-bit register from N flip-flops, creating a chain of adders, connecting several identical modules to a bus.

Remember, all loops have the same syntax rules, so you just need to remember the structure. Good luck! :+1: