Although this specific example seems to be valid for example only, there are several reasons why you need different architectures for some projects.
One thing that is usually done is to provide IP design black box models for performance reasons when you try to simulate another (unrelated) part of the entire SoC project.
Or you may have a higher model of the IP level, which allows you to speed up the simulation time, as well as a model designed for synthesis. Higher-level models are often used for processor cores, since simulation of the entire core is usually not required when checking the rest of the design.
Another possible reason is selective behavior in the design of IP, so that several unique versions can be created when IP is integrated into the SoC project. For example, one architecture may be designed to work with one clock domain, while the other may have synchronization between two different clock domains.
Tomi junnila
source share