Two Structured Procedures (Blocks)
initial Block - Used to initialize behavioral statements for simulation
always Block - Used to describe the circuit functionality using behavioral statements
Each always and initial block represents a separate process
Processes run in parallel and start at simulation time 0
However, statements inside a process execute sequentially
always and initial blocks cannot be nested