  Increasing reuse opportunities is a well-known problem for software designers
as well as for hardware designers. Nonetheless, current software and hardware
engineering practices have embraced different approaches to this problem.
Software designs are usually modelled after a set of proven solutions to
recurrent problems called design patterns. This approach differs from the
component-based reuse usually found in hardware designs: design patterns do not
specify unnecessary implementation details. Several authors have already
proposed translating structural design patterns concepts to hardware design. In
this paper we extend the discussion to behavioural design patterns.
Specifically, we describe how the hardware version of the Iterator can be used
to enhance model reuse.
