File frontend_golden.h
File List > projects > simtix > src > simtix > uvm > frontend_golden.h
Go to the documentation of this file
#pragma once
#include <simtix/uvm.h>
#include <cstdint>
#include <string>
#include "simtix/sm.h"
#include "sm/pipelined/pipelined.h"
#include "uvm/mock_instr_buffer.h"
namespace simtix {
namespace uvm {
using pipelined::PipelinedSM;
class FrontendGoldenImpl : public pipelined::PipelinedSMImpl {
public:
explicit FrontendGoldenImpl(
const std::string &name, uint32_t cid,
const ArchParam &p = kDefaultArchParam,
const PipelinedSM::Param &pp = PipelinedSM::kDefaultParam);
~FrontendGoldenImpl();
protected:
void Tick() override;
MockInstrBuffer *mock_ibuffer_;
std::deque<FrontendGolden::Input> test_q_;
};
class FrontendGolden::Impl : public FrontendGoldenImpl {
public:
Impl(const std::string &name, uint32_t cid,
const ArchParam &p = kDefaultArchParam,
const PipelinedSM::Param &pp = PipelinedSM::kDefaultParam)
: FrontendGoldenImpl(name, cid, p, pp) {}
~Impl() = default;
protected:
friend class FrontendGolden;
};
} // namespace uvm
} // namespace simtix