cummulative fixes, RTL uuid trace, texture unit fixes, simx timing fixes
This commit is contained in:
@@ -10,6 +10,7 @@ private:
|
||||
MemSim* simobject_;
|
||||
uint32_t num_banks_;
|
||||
uint32_t latency_;
|
||||
PerfStats perf_stats_;
|
||||
|
||||
public:
|
||||
Impl(MemSim* simobject, uint32_t num_banks, uint32_t latency)
|
||||
@@ -18,16 +19,23 @@ public:
|
||||
, latency_(latency)
|
||||
{}
|
||||
|
||||
const PerfStats& perf_stats() const {
|
||||
return perf_stats_;
|
||||
}
|
||||
|
||||
void step(uint64_t /*cycle*/) {
|
||||
for (uint32_t i = 0, n = num_banks_; i < n; ++i) {
|
||||
auto& mem_req_port = simobject_->MemReqPorts.at(i);
|
||||
if (mem_req_port.empty())
|
||||
continue;
|
||||
auto& mem_req = mem_req_port.top();
|
||||
auto& mem_req = mem_req_port.front();
|
||||
if (!mem_req.write) {
|
||||
MemRsp mem_rsp;
|
||||
mem_rsp.tag = mem_req.tag;
|
||||
simobject_->MemRspPorts.at(i).send(mem_rsp, latency_);
|
||||
++perf_stats_.reads;
|
||||
} else {
|
||||
++perf_stats_.writes;
|
||||
}
|
||||
mem_req_port.pop();
|
||||
}
|
||||
@@ -40,9 +48,9 @@ MemSim::MemSim(const SimContext& ctx,
|
||||
uint32_t num_banks,
|
||||
uint32_t latency)
|
||||
: SimObject<MemSim>(ctx, "MemSim")
|
||||
, impl_(new Impl(this, num_banks, latency))
|
||||
, MemReqPorts(num_banks, this)
|
||||
, MemRspPorts(num_banks, this)
|
||||
, impl_(new Impl(this, num_banks, latency))
|
||||
{}
|
||||
|
||||
MemSim::~MemSim() {
|
||||
|
||||
Reference in New Issue
Block a user