27 class PrototypeTiming;
42 explicit Timing(std::string name,
unsigned seed)
noexcept;
66 [[nodiscard]] std::string
getName() const noexcept {
return _name; }
73 [[nodiscard]]
bool getSyncOnPulse() const noexcept {
return _sync_on_pulse; }
99 [[nodiscard]]
bool isEnabled() const noexcept {
return _enabled && _model && _model->enabled(); }
132 [[nodiscard]] std::unique_ptr<Timing>
clone()
const;
136 bool _enabled{
false};
137 std::unique_ptr<noise::ClockModelGenerator> _model{
nullptr};
138 std::vector<RealType> _alphas;
139 std::vector<RealType> _weights;
143 bool _sync_on_pulse{
false};
145 const PrototypeTiming* _prototype{
nullptr};
Manages timing properties such as frequency, offsets, and synchronization.
Represents a timing source for simulation.
Timing & operator=(Timing &&)=delete
std::string getName() const noexcept
Gets the name of the timing source.
void reset() noexcept
Resets the timing model.
Timing & operator=(const Timing &)=delete
void initializeModel(const PrototypeTiming *timing) noexcept
Initializes the timing model.
RealType getNextSample() const noexcept
Gets the next sample from the timing source.
void skipSamples(long long samples) noexcept
Skips a number of samples in the timing model.
RealType getFreqOffset() const noexcept
Gets the frequency offset of the timing source.
bool getSyncOnPulse() const noexcept
Checks if the timing source synchronizes on pulse.
bool isEnabled() const noexcept
Checks if the timing source is enabled.
RealType getFrequency() const noexcept
Gets the frequency of the timing source.
Timing(const Timing &)=delete
RealType getPhaseOffset() const noexcept
Gets the phase offset of the timing source.
std::unique_ptr< Timing > clone() const
Creates a new Timing instance based on the same prototype.
Global configuration file for the project.
double RealType
Type for real numbers.
Header file for noise generator classes.