Make BlockingRead/WriteDelay configurable
This commit is contained in:
@@ -74,11 +74,15 @@ struct BlockingInitiator : sc_core::sc_module
|
||||
{
|
||||
tlm_utils::simple_initiator_socket<BlockingInitiator> iSocket;
|
||||
static constexpr std::array<uint64_t, 8> TEST_DATA = {0xDEADBEEF};
|
||||
SC_CTOR(BlockingInitiator)
|
||||
DRAMSys::DRAMSys const &dramSys;
|
||||
|
||||
BlockingInitiator(sc_core::sc_module_name const &name, DRAMSys::DRAMSys const &dramSys)
|
||||
: sc_core::sc_module(name), dramSys(dramSys)
|
||||
{
|
||||
SC_THREAD(readAccess);
|
||||
SC_THREAD(writeAccess);
|
||||
}
|
||||
SC_HAS_PROCESS(BlockingInitiator);
|
||||
|
||||
void readAccess()
|
||||
{
|
||||
@@ -87,7 +91,7 @@ struct BlockingInitiator : sc_core::sc_module
|
||||
sc_core::sc_time delay = sc_core::SC_ZERO_TIME;
|
||||
iSocket->b_transport(payload, delay);
|
||||
|
||||
EXPECT_EQ(delay, Dram::BLOCKING_READ_LATENCY);
|
||||
EXPECT_EQ(delay, dramSys.getConfig().blockingReadDelay);
|
||||
}
|
||||
|
||||
void writeAccess()
|
||||
@@ -100,13 +104,13 @@ struct BlockingInitiator : sc_core::sc_module
|
||||
sc_core::sc_time delay = sc_core::SC_ZERO_TIME;
|
||||
iSocket->b_transport(payload, delay);
|
||||
|
||||
EXPECT_EQ(delay, Dram::BLOCKING_WRITE_LATENCY);
|
||||
EXPECT_EQ(delay, dramSys.getConfig().blockingWriteDelay);
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(BTransportNoStorage, RWDelay)
|
||||
{
|
||||
BlockingInitiator initiator("initiator");
|
||||
BlockingInitiator initiator("initiator", dramSysNoStorage);
|
||||
initiator.iSocket.bind(dramSysNoStorage.tSocket);
|
||||
|
||||
sc_core::sc_start(sc_core::sc_time(1, sc_core::SC_US));
|
||||
@@ -114,7 +118,7 @@ TEST_F(BTransportNoStorage, RWDelay)
|
||||
|
||||
TEST_F(BTransportStorage, RWDelay)
|
||||
{
|
||||
BlockingInitiator initiator("initiator");
|
||||
BlockingInitiator initiator("initiator", dramSysStorage);
|
||||
initiator.iSocket.bind(dramSysStorage.tSocket);
|
||||
|
||||
sc_core::sc_start(sc_core::sc_time(1, sc_core::SC_US));
|
||||
@@ -122,7 +126,7 @@ TEST_F(BTransportStorage, RWDelay)
|
||||
|
||||
TEST_F(BTransportStorage, DataWritten)
|
||||
{
|
||||
BlockingInitiator initiator("initiator");
|
||||
BlockingInitiator initiator("initiator", dramSysStorage);
|
||||
initiator.iSocket.bind(dramSysStorage.tSocket);
|
||||
|
||||
sc_core::sc_start(sc_core::sc_time(1, sc_core::SC_US));
|
||||
@@ -140,7 +144,7 @@ TEST_F(BTransportStorage, DataWritten)
|
||||
|
||||
TEST_F(BTransportNoStorage, Warning)
|
||||
{
|
||||
BlockingInitiator initiator("initiator");
|
||||
BlockingInitiator initiator("initiator", dramSysNoStorage);
|
||||
initiator.iSocket.bind(dramSysNoStorage.tSocket);
|
||||
|
||||
// Redirect stdout to buffer
|
||||
|
||||
@@ -59,7 +59,9 @@
|
||||
"RequestBufferSize": 8,
|
||||
"RespQueue": "Fifo",
|
||||
"Scheduler": "FrFcfs",
|
||||
"SchedulerBuffer": "Bankwise"
|
||||
"SchedulerBuffer": "Bankwise",
|
||||
"BlockingReadDelay": 80,
|
||||
"BlockingWriteDelay": 100
|
||||
},
|
||||
"memspec": {
|
||||
"memarchitecturespec": {
|
||||
|
||||
Reference in New Issue
Block a user