1. Decompose a sequential process into suboperations
2. Execute each subprocess in a special dedicated segment
3. Operate concurrently with all other segments
4. Associate a register with each segment
5. Registers provide isolation between each segment
6. Segment consists of an input register and a combinational circuit
7. Apply a clock to all registers after enough time has elapsed to perform all segment activity