Commit 071ef18c authored by Antoine Kaufmann's avatar Antoine Kaufmann
Browse files

condrum: checkpoint fix for memreader

parent d8f4300b
......@@ -24,9 +24,7 @@ void MemWriter::step()
cur->engine->mem_op_complete(cur);
cur = 0;
}
if (!cur && !pending.empty()) {
} else if (!cur && !pending.empty()) {
cur = pending.front();
pending.pop_front();
......@@ -88,27 +86,26 @@ void MemReader::step()
size_t data_byte_width = DATA_WIDTH / 8;
if (cur && p.mem_resvalid) {
std::cerr << "completed read from: " << cur->ram_addr << std::endl;
std::cerr << "completed read from: " << std::hex << cur->ram_addr << std::endl;
p.mem_valid = 0;
p.mem_resready = 0;
/*for (size_t i = 0; i < 32; i++)
std::cerr << " val = " << p.mem_data[i] << std::endl;*/
size_t off = cur->ram_addr % data_byte_width;
for (size_t i = 0; i < cur->len; i++, off++) {
size_t byte_off = off % 4;
size_t byte_off = (off % 4);
cur->data[i] = (p.mem_data[off / 4] >> (byte_off * 8)) & 0xff;
}
cur->engine->mem_op_complete(cur);
cur = 0;
}
if (!cur && !pending.empty()) {
} else if (!cur && !pending.empty()) {
cur = pending.front();
pending.pop_front();
std::cerr << "issuing read from " << cur->ram_addr << std::endl;
std::cerr << "issuing read from " << std::hex << cur->ram_addr << std::endl;
size_t data_offset = cur->ram_addr % data_byte_width;
std::cerr << " off=" << data_offset << std::endl;
if (cur->len > data_byte_width - data_offset) {
std::cerr << "MemReader::step: cannot be written in one cycle TODO" << std::endl;
......@@ -127,6 +124,7 @@ void MemReader::step()
size_t byte_off = off % 4;
p.mem_valid |= (1 << (off / (SEG_WIDTH / 8)));
}
p.mem_resready = p.mem_valid;
uint64_t seg_addr = cur->ram_addr / data_byte_width;
size_t seg_addr_bits = 12;
......@@ -141,7 +139,9 @@ void MemReader::step()
}
}
p.mem_resready = 1;
/*for (size_t i = 0; i < 3; i++)
std::cerr << " addr = " << p.mem_addr[i] << std::endl;
std::cerr << " mem_valid = " << (unsigned) p.mem_valid << std::endl;*/
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment