#pragma once #include #include #include #include #include "io/event.h" #include "isa/isa.h" struct iomodel { static constexpr unsigned int TT_OUTPUT_DELAY = 10; event_log log; bool interact(std::uint64_t icount, std::array &ctlregs, bool replay=false); bool done(std::uint64_t icount) { return log.lower_bound(icount) == log.end(); } std::uint64_t load_icount = 0; void load_evt(std::istream &fh); std::ostream & write_evt(std::ostream &fh); };