From c28c996271c7c921f26fc285be9eaf145b0067cf Mon Sep 17 00:00:00 2001 From: Thanh Tran Date: Mon, 7 Nov 2016 17:25:59 +0100 Subject: [PATCH] Fix hardcoded memory size (issue #128) Recalculate memory size using #Banks, #Rows, and #Columns from memory specs. --- DRAMSys/simulator/src/simulation/Dram.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/DRAMSys/simulator/src/simulation/Dram.h b/DRAMSys/simulator/src/simulation/Dram.h index 7db71f78..85dfdf8a 100644 --- a/DRAMSys/simulator/src/simulation/Dram.h +++ b/DRAMSys/simulator/src/simulation/Dram.h @@ -94,8 +94,11 @@ struct Dram : sc_module SC_CTOR(Dram) : tSocket("socket") { - // FIXME: memory size - unsigned int size = 1024 * 1024 * 1024; + // calculate memory size + unsigned int banks = Configuration::getInstance().memSpec.NumberOfBanks; + unsigned int rows = Configuration::getInstance().memSpec.NumberOfRows; + unsigned int columns = Configuration::getInstance().memSpec.NumberOfColumns; + unsigned int size = banks * rows * columns; memory = (unsigned char *)mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, -1, 0); tSocket.register_nb_transport_fw(this, &Dram::nb_transport_fw);