The frequency_bus class implements a bus that distributes a frequency to a set of targets. Targets subscribe to the bus via the simple_dispatcher interface, and frequency changes are distributed to subscribers via the frequency_listener iface. The distributed frequency can either be generated by the bus itself, or be fetched from a different object (e.g., from another frequency bus). The input frequency can optionally be scaled before it is distributed.
conf_object, log_object, frequency_listener, scale_factor_listener, simple_dispatcher
- cell-change
- Notifier that is triggered after the object's cell was changed.
- object-delete
- Notifier that is triggered just before Simics object is deleted.
- queue-change
- Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
-
info
– print information about the object
-
status
– print status of the object
-
current_output_freq
-
Pseudo attribute;
read-only access; type:
[ii]
The frequency currently output to connected devices
-
frequency
-
Optional attribute;
read/write access; type:
o|[ii]|[os]
The frequency broadcasted by this bus. A value of [p, q] means a fix frequency of p/q Hz; if the value is an object implementing the simple_dispatcher interface, the frequency is fetched from that object; if the value is an [object, port] pair, the frequency is fetched from the given port.
-
scale_factor
-
Optional attribute;
read/write access; type:
o|[ii]|[os]
The input frequency is multiplied by this number before broadcasted. A value of [p, q] means a fix factor of p/q; if the value is an object implementing the simple_dispatcher interface, the factor is fetched from that object; if the value is an [object, port] pair, the factor is fetched from the given port.
-
targets
-
Pseudo attribute;
read-only access; type:
[[o,s|n]*]
Current frequency target objects, on the form [object, port]
frequency-bus