core.cc (12980:127afc3ac506) core.cc (13409:071d5425ce37)
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * Copyright (c) 2013 Mark D. Hill and David A. Wood
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are

--- 23 unchanged lines hidden (view full) ---

32 */
33
34#include "sim/core.hh"
35
36#include <iostream>
37#include <string>
38
39#include "base/callback.hh"
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * Copyright (c) 2013 Mark D. Hill and David A. Wood
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are

--- 23 unchanged lines hidden (view full) ---

32 */
33
34#include "sim/core.hh"
35
36#include <iostream>
37#include <string>
38
39#include "base/callback.hh"
40#include "base/cprintf.hh"
41#include "base/logging.hh"
40#include "base/output.hh"
41#include "sim/eventq.hh"
42
43using namespace std;
44
45namespace SimClock {
46/// The simulated frequency of curTick(). (In ticks per second)
47Tick Frequency;

--- 16 unchanged lines hidden (view full) ---

64Tick ms;
65Tick us;
66Tick ns;
67Tick ps;
68} // namespace Float
69
70} // namespace SimClock
71
42#include "base/output.hh"
43#include "sim/eventq.hh"
44
45using namespace std;
46
47namespace SimClock {
48/// The simulated frequency of curTick(). (In ticks per second)
49Tick Frequency;

--- 16 unchanged lines hidden (view full) ---

66Tick ms;
67Tick us;
68Tick ns;
69Tick ps;
70} // namespace Float
71
72} // namespace SimClock
73
74namespace {
75
76bool _clockFrequencyFixed = false;
77
78// Default to 1 THz (1 Tick == 1 ps)
79Tick _ticksPerSecond = 1e12;
80
81} // anonymous namespace
82
72void
83void
73setClockFrequency(Tick ticksPerSecond)
84fixClockFrequency()
74{
85{
86 if (_clockFrequencyFixed)
87 return;
88
75 using namespace SimClock;
89 using namespace SimClock;
76 Frequency = ticksPerSecond;
90 Frequency = _ticksPerSecond;
77 Float::s = static_cast<double>(Frequency);
78 Float::ms = Float::s / 1.0e3;
79 Float::us = Float::s / 1.0e6;
80 Float::ns = Float::s / 1.0e9;
81 Float::ps = Float::s / 1.0e12;
82
83 Float::Hz = 1.0 / Float::s;
84 Float::kHz = 1.0 / Float::ms;
85 Float::MHz = 1.0 / Float::us;
86 Float::GHz = 1.0 / Float::ns;
87
88 Int::s = Frequency;
89 Int::ms = Int::s / 1000;
90 Int::us = Int::ms / 1000;
91 Int::ns = Int::us / 1000;
92 Int::ps = Int::ns / 1000;
93
91 Float::s = static_cast<double>(Frequency);
92 Float::ms = Float::s / 1.0e3;
93 Float::us = Float::s / 1.0e6;
94 Float::ns = Float::s / 1.0e9;
95 Float::ps = Float::s / 1.0e12;
96
97 Float::Hz = 1.0 / Float::s;
98 Float::kHz = 1.0 / Float::ms;
99 Float::MHz = 1.0 / Float::us;
100 Float::GHz = 1.0 / Float::ns;
101
102 Int::s = Frequency;
103 Int::ms = Int::s / 1000;
104 Int::us = Int::ms / 1000;
105 Int::ns = Int::us / 1000;
106 Int::ps = Int::ns / 1000;
107
108 cprintf("Global frequency set at %d ticks per second\n", _ticksPerSecond);
109
110 _clockFrequencyFixed = true;
94}
111}
112bool clockFrequencyFixed() { return _clockFrequencyFixed; }
95
96void
113
114void
115setClockFrequency(Tick tps)
116{
117 panic_if(_clockFrequencyFixed,
118 "Global frequency already fixed at %f ticks/s.", _ticksPerSecond);
119 _ticksPerSecond = tps;
120}
121Tick getClockFrequency() { return _ticksPerSecond; }
122
123void
97setOutputDir(const string &dir)
98{
99 simout.setDirectory(dir);
100}
101
102/**
103 * Queue of C++ callbacks to invoke on simulator exit.
104 */

--- 29 unchanged lines hidden ---
124setOutputDir(const string &dir)
125{
126 simout.setDirectory(dir);
127}
128
129/**
130 * Queue of C++ callbacks to invoke on simulator exit.
131 */

--- 29 unchanged lines hidden ---