Show rgr related config during initialization. ORGR in traceAnalyzer. Submodule drampower set properly (point to rgr branch). New config for row increment (selective ref.). Specific simulations NO REF. and AR with close page policy. Simulation files ddr4 1, 2, 4 x mode open, close page policy, no ref, ar, rgr, orgr. New config for number of auto-ref. cmds in 64 ms. New traces for ddr4. New spec for dd4 16Gb after Christian's corrections. Initial offset for bankwise logic (if zeroed, for research). ORGR/RGR. Flex. ORGR/RGR. Bankwise flex. refresh. Small schanges. RGR flex test files. Doc updated.
250 lines
8.6 KiB
Prolog
250 lines
8.6 KiB
Prolog
TARGET = DRAMSys
|
|
|
|
TEMPLATE = lib
|
|
CONFIG += staticlib
|
|
CONFIG += console
|
|
CONFIG -= app_bundle
|
|
CONFIG -= qt
|
|
|
|
system(cd ../../DRAMSys/library/src/common/third_party/DRAMPower; make src/libdrampower.a;)
|
|
|
|
systemc_home = $$(SYSTEMC_HOME)
|
|
isEmpty(systemc_home) {
|
|
systemc_home = /opt/systemc
|
|
}
|
|
|
|
# Check if PCT's SystemC should be used?
|
|
dramsys_pct = $$(DRAMSYS_PCT)
|
|
isEmpty(dramsys_pct) {
|
|
dramsys_pct = false
|
|
}
|
|
|
|
$$eval(dramsys_pct) {
|
|
# PCT:
|
|
message(PCT Simulation Feature Enabled)
|
|
systemc_home = /software/Synopsys_CoWare/K-2015.12-SP1/SLS/linux/common
|
|
INCLUDEPATH += $${systemc_home}/include/tlm
|
|
|
|
DEFINES += DRAMSYS_PCT
|
|
}
|
|
|
|
# Check if gem5 should be used
|
|
gem5 = $$(GEM5)
|
|
isEmpty(gem5) {
|
|
message(GEM5 environment variable not found)
|
|
message(Gem5 Simulation Disabled)
|
|
} else {
|
|
message(Gem5 Simulation Feature Enabled)
|
|
message(Gem5 home is $${gem5})
|
|
DEFINES += DRAMSYS_GEM5
|
|
}
|
|
|
|
message(SystemC home is $${systemc_home})
|
|
|
|
systemc_target_arch = $$(SYSTEMC_TARGET_ARCH)
|
|
isEmpty(systemc_target_arch) {
|
|
systemc_target_arch = linux64
|
|
}
|
|
message(SystemC target architecture is $${systemc_target_arch})
|
|
|
|
INCLUDEPATH += $${systemc_home}/include
|
|
|
|
INCLUDEPATH += src/common/third_party/DRAMPower/src
|
|
INCLUDEPATH += src/common/third_party/DRAMPower/src/libdrampower
|
|
INCLUDEPATH += src/common/third_party/json/include
|
|
|
|
DEFINES += TIXML_USE_STL
|
|
DEFINES += SC_INCLUDE_DYNAMIC_PROCESSES
|
|
|
|
unix:!macx {
|
|
QMAKE_CXXFLAGS += -std=c++11 -O0 -g
|
|
}
|
|
|
|
macx: {
|
|
CONFIG += c++11
|
|
QMAKE_CXXFLAGS += -std=c++0x -stdlib=libc++ -O0 -g
|
|
}
|
|
|
|
QMAKE_CXXFLAGS += -isystem $${systemc_home}/include
|
|
|
|
SOURCES += \
|
|
src/common/third_party/tinyxml2/tinyxml2.cpp \
|
|
src/common/xmlAddressdecoder.cpp \
|
|
src/common/Utils.cpp \
|
|
src/common/TlmRecorder.cpp \
|
|
src/common/dramExtension.cpp \
|
|
src/common/DebugManager.cpp \
|
|
src/controller/core/configuration/Configuration.cpp \
|
|
src/controller/core/powerdown/PowerDownManagerTimeout.cpp \
|
|
src/controller/core/powerdown/PowerDownManagerBankwise.cpp \
|
|
src/controller/core/powerdown/PowerDownManager.cpp \
|
|
src/controller/scheduler/ThreadLoad.cpp \
|
|
src/controller/scheduler/PARBS.cpp \
|
|
src/controller/scheduler/Fr_Fcfs.cpp \
|
|
src/controller/scheduler/Fifo.cpp \
|
|
src/controller/scheduler/SMS.cpp \
|
|
src/controller/core/refresh/RefreshManagerBankwise.cpp \
|
|
src/controller/core/refresh/RefreshManager.cpp \
|
|
src/controller/core/refresh/RGR.cpp \
|
|
src/controller/core/scheduling/checker/WriteChecker.cpp \
|
|
src/controller/core/scheduling/checker/RefreshChecker.cpp \
|
|
src/controller/core/scheduling/checker/ReadChecker.cpp \
|
|
src/controller/core/scheduling/checker/PrechargeChecker.cpp \
|
|
src/controller/core/scheduling/checker/PrechargeAllChecker.cpp \
|
|
src/controller/core/scheduling/checker/PowerDownChecker.cpp \
|
|
src/controller/core/scheduling/checker/ActivateChecker.cpp \
|
|
src/controller/core/scheduling/checker/PreBChecker.cpp \
|
|
src/controller/core/scheduling/checker/ActBChecker.cpp \
|
|
src/controller/core/scheduling/ScheduledCommand.cpp \
|
|
src/controller/core/TimingCalculation.cpp \
|
|
src/controller/core/Slots.cpp \
|
|
src/controller/core/ControllerCore.cpp \
|
|
src/simulation/MemoryManager.cpp \
|
|
src/simulation/TemperatureController.cpp \
|
|
src/controller/scheduler/readwritegrouper.cpp \
|
|
src/controller/core/configuration/ConfigurationLoader.cpp \
|
|
src/controller/core/powerdown/NoPowerDown.cpp \
|
|
src/controller/Command.cpp \
|
|
src/controller/ControllerState.cpp \
|
|
src/controller/RowBufferStates.cpp \
|
|
src/controller/scheduler/IScheduler.cpp \
|
|
src/controller/scheduler/FifoStrict.cpp \
|
|
src/error/errormodel.cpp \
|
|
src/controller/Controller.cpp \
|
|
src/simulation/TracePlayer.cpp \
|
|
src/simulation/StlPlayer.cpp \
|
|
src/controller/core/powerdown/PowerDownManagerTimeoutBankwise.cpp \
|
|
src/simulation/TraceSetup.cpp \
|
|
src/simulation/DRAMSys.cpp \
|
|
src/simulation/Setup.cpp \
|
|
src/error/ECC/Bit.cpp \
|
|
src/error/ECC/ECC.cpp \
|
|
src/error/ECC/Word.cpp \
|
|
src/error/eccbaseclass.cpp \
|
|
src/error/ecchamming.cpp \
|
|
src/controller/scheduler/Fr_Fcfs_read_priority.cpp \
|
|
src/controller/scheduler/Fr_Fcfs_grouper.cpp \
|
|
src/common/AddressDecoder.cpp \
|
|
src/common/jsonAddressDecoder.cpp
|
|
|
|
HEADERS += \
|
|
src/common/third_party/tinyxml2/tinyxml2.h \
|
|
src/common/xmlAddressdecoder.h \
|
|
src/common/Utils.h \
|
|
src/common/TlmRecorder.h \
|
|
src/common/tlm2_base_protocol_checker.h \
|
|
src/common/protocol.h \
|
|
src/common/dramExtension.h \
|
|
src/common/DebugManager.h \
|
|
src/controller/core/configuration/Configuration.h \
|
|
src/controller/core/powerdown/PowerDownManagerTimeout.h \
|
|
src/controller/core/powerdown/PowerDownManagerBankwise.h \
|
|
src/controller/core/powerdown/PowerDownManager.h \
|
|
src/controller/scheduler/ThreadLoad.h \
|
|
src/controller/scheduler/PARBS.h \
|
|
src/controller/scheduler/Fr_Fcfs.h \
|
|
src/controller/scheduler/Fifo.h \
|
|
src/controller/scheduler/SMS.h \
|
|
src/controller/Controller.h \
|
|
src/controller/core/refresh/RefreshManagerBankwise.h \
|
|
src/controller/core/refresh/RefreshManager.h \
|
|
src/controller/core/refresh/IRefreshManager.h \
|
|
src/controller/core/refresh/RGR.h \
|
|
src/controller/core/scheduling/checker/WriteChecker.h \
|
|
src/controller/core/scheduling/checker/RefreshChecker.h \
|
|
src/controller/core/scheduling/checker/ReadChecker.h \
|
|
src/controller/core/scheduling/checker/PrechargeChecker.h \
|
|
src/controller/core/scheduling/checker/PrechargeAllChecker.h \
|
|
src/controller/core/scheduling/checker/PowerDownChecker.h \
|
|
src/controller/core/scheduling/checker/ICommandChecker.h \
|
|
src/controller/core/scheduling/checker/ActivateChecker.h \
|
|
src/controller/core/scheduling/checker/PreBChecker.h \
|
|
src/controller/core/scheduling/checker/ActBChecker.h \
|
|
src/controller/core/scheduling/Trigger.h \
|
|
src/controller/core/scheduling/ScheduledCommand.h \
|
|
src/controller/core/TimingCalculation.h \
|
|
src/controller/core/Slots.h \
|
|
src/controller/core/ControllerCore.h \
|
|
src/simulation/TracePlayer.h \
|
|
src/simulation/MemoryManager.h \
|
|
src/simulation/Dram.h \
|
|
src/simulation/Arbiter.h \
|
|
src/common/libDRAMPower.h \
|
|
src/controller/scheduler/readwritegrouper.h \
|
|
src/simulation/ReorderBuffer.h \
|
|
src/controller/core/configuration/MemSpec.h \
|
|
src/controller/core/configuration/thermalSimConfig.h \
|
|
src/simulation/StlPlayer.h \
|
|
src/simulation/TracePlayerListener.h \
|
|
src/simulation/TraceGenerator.h \
|
|
src/simulation/TemperatureController.h \
|
|
src/controller/core/powerdown/NoPowerDown.h \
|
|
src/controller/Command.h \
|
|
src/controller/RowBufferStates.h \
|
|
src/controller/ControllerState.h \
|
|
src/controller/core/powerdown/IPowerDownManager.h \
|
|
src/controller/scheduler/IScheduler.h \
|
|
src/controller/scheduler/FifoStrict.h \
|
|
src/controller/IController.h \
|
|
src/controller/core/configuration/ConfigurationLoader.h \
|
|
src/error/errormodel.h \
|
|
src/simulation/ExampleInitiator.h \
|
|
src/controller/core/powerdown/PowerDownManagerTimeoutBankwise.h \
|
|
src/simulation/TraceSetup.h \
|
|
src/simulation/DRAMSys.h \
|
|
src/simulation/Setup.h \
|
|
src/error/ECC/Bit.h \
|
|
src/error/ECC/ECC.h \
|
|
src/error/ECC/Word.h \
|
|
src/error/eccbaseclass.h \
|
|
src/error/ecchamming.h \
|
|
src/controller/scheduler/Fr_Fcfs_read_priority.h \
|
|
src/controller/scheduler/Fr_Fcfs_grouper.h \
|
|
src/simulation/IArbiter.h \
|
|
src/simulation/SimpleArbiter.h \
|
|
src/common/AddressDecoder.h \
|
|
src/common/jsonAddressDecoder.h
|
|
#src/common/third_party/json/include/nlohmann/json.hpp \
|
|
|
|
thermalsim = $$(THERMALSIM)
|
|
isEmpty(thermalsim) {
|
|
thermalsim = false
|
|
}
|
|
|
|
$$eval(thermalsim) {
|
|
message(Thermal Simulation Feature Enabled)
|
|
|
|
libthreed_ice_home = $$(LIBTHREED_ICE_HOME)
|
|
isEmpty(libthreed_ice_home) {
|
|
libthreed_ice_home = /opt/3D-ICE/
|
|
}
|
|
message(LIBTHREED_ICE_HOME path is $${libthreed_ice_home})
|
|
|
|
libsuperlu_home = $$(LIBSUPERLU_HOME)
|
|
isEmpty(libsuperlu_home) {
|
|
libsuperlu_home = /opt/SuperLU_4.3/
|
|
}
|
|
message(LIBSUPERLU_HOME path is $${libthreed_ice_home})
|
|
|
|
LIBS += -L$${libthreed_ice_home}/lib -lthreed-ice-2.2.4
|
|
LIBS += -L$${libsuperlu_home}/lib -lsuperlu_4.3
|
|
LIBS += -lblas
|
|
message(Libraries: $${LIBS})
|
|
|
|
INCLUDEPATH += $${libthreed_ice_home}/include
|
|
INCLUDEPATH += $${libsuperlu_home}/SRC
|
|
INCLUDEPATH += $${systemc_home}/include
|
|
message(Include paths: $${INCLUDEPATH})
|
|
|
|
QMAKE_CXXFLAGS += -DTHERMALSIM
|
|
message(Compiler flags: $${QMAKE_CXXFLAGS})
|
|
|
|
} else {
|
|
message(Thermal Simulation Feature Disabled)
|
|
}
|
|
|
|
# Additional Files:
|
|
include(resources/resources.pri)
|
|
|
|
DISTFILES += ../DRAMSys.astylerc
|