33 #define ORCA_EPOCH_LENGTH 100000 34 #define ORCA_EPOCHS_TO_SIM 10000 44 switch (Simulator::GetInterruptionStatus()) {
45 case SimulatorInterruptionStatus::RUNNING:
46 Simulator::SetInterruptionStatus(
47 SimulatorInterruptionStatus::INTERRUPTED);
48 std::cout << std::endl
49 <<
"Simulation interrupted. Wait for the current epoch to finish " 50 <<
"or press CTRL+C again to force quit." << std::endl;
52 case SimulatorInterruptionStatus::INTERRUPTED:
53 Simulator::SetInterruptionStatus(SimulatorInterruptionStatus::ABORTED);
60 = SimulatorInterruptionStatus::RUNNING;
71 return std::string(
_params[index]);
76 std::cout <<
"param list:" << std::endl;
77 for(
int i = 0; i < argc; ++i){
78 std::cout << i <<
"\t" << argv[i] << std::endl;
87 _params = std::vector<std::string>();
88 for (
int i = 0; i < argc; i++) {
89 char* param = argv[i];
90 _params.push_back(std::string(param));
109 t1 = std::chrono::high_resolution_clock::now();
113 t2 = std::chrono::high_resolution_clock::now();
116 std::chrono::duration_cast<std::chrono::milliseconds>(
t2 -
t1)
122 (static_cast<double>(duration) / 1000.0);
126 << duration <<
"ms (running @ " << (hertz / 1000000.0)
127 <<
" MHz)" << std::endl;
129 #ifdef ORCA_EPOCHS_TO_SIM SimulatorInterruptionStatus
This class models a TimedModel.
virtual void Schedule()=0
SimulationTime Run(SimulationTime time=100000)
Executes the simulator until the internal clock reaches <time> cycles.
#define ORCA_EPOCHS_TO_SIM
#define ORCA_EPOCH_LENGTH
static SimulatorInterruptionStatus GetInterruptionStatus()
This class models a discrete event.
static void sig_handler(int _)
std::chrono::high_resolution_clock::time_point t2
SimulationTime NextEpoch()
Resets the simulation clock and advance simulation to the next epoch.
std::chrono::high_resolution_clock::time_point t1
void Schedule(const Event &e)
Adds an event to the simulation queue.
SimulationTime GetEpochs()
Gets the number of cycles to simulate before reseting the simulation clock.
void SetExitStatus(int status)
std::string GetParam(int index)
std::vector< std::string > _params
static volatile SimulatorInterruptionStatus _interruption_status
void Register(TimedModel *m)