Unisim is a structural simulation framework, which means that each simulator is decomposed into several modules each corresponding to a hardware component. Such hardware components composing the simulator are called modules.
Decomposing the simulator into modules has several benefits:
Reuse: because simulators are decomposed into modules, it is much easier to extract and reuse part(s) of a simulator, or to replace it with alternative architectures.
Hardware to simulator mapping: structural simulators allow the intuitive mapping of the target architecture blocks into simulator modules, facilitating the development; for the same reason, structural simulation enhances readability and increases confidence in the simulation model.
Facilitating the development of large simulators: structural simulation leverages software engineering techniques known as component-based programming where programs are made of independent software components with well-defined interfaces.
Facilitating the modification of simulators: in a monolithic simulator, the different simulator parts can be so interspersed that modifying a part can have unexpected adverse effects on other parts. For instance, using a variable containing the outcome of a branch at a wrong place in the code may be equivalent to propagating the branch result signal too early in the architecture pipeline. Thanks to explicit connections between modules, such performance bugs are not as easily created in structural simulators.