By default, devices in Simics use the Standard Device Model. Such models run in the Sim_Concurrency_Mode_Serialized concurrency mode.
Using the Standard Device Model amounts to being able to assume at least Cell Context when interface methods are invoked. Certain things, like object initialization, run in Global Context, which is the most permissive context.
Cell Context has the following properties:
In Cell Context, everything within the cell appears to be completely serialized. Under the hood, this may not be the case, and CPUs might be running concurrently. But when a CPU is accessed from a device, it is stopped until the device access is complete. For instance, a device will always see a stable cycle count when it repeatedly queries its associated clock during a register access.