279 lines
9.2 KiB
Prolog
279 lines
9.2 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})
|
|
|
|
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
|
|
|
|
dramsys_disable_coverage_check = $$(DRAMSYS_DISABLE_COVERAGE_CHECK)
|
|
isEmpty(dramsys_disable_coverage_check) {
|
|
coverage_check = true
|
|
message(Coverage check ENABLED)
|
|
} else {
|
|
coverage_check = false
|
|
message(Coverage check DISABLED)
|
|
}
|
|
|
|
unix:!macx {
|
|
QMAKE_CXXFLAGS += -std=c++11 -O0 -g
|
|
$$eval(coverage_check) {
|
|
QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage -fPIC -O0
|
|
QMAKE_LFLAGS += -lgcov --coverage
|
|
}
|
|
}
|
|
|
|
macx: {
|
|
CONFIG += c++11
|
|
QMAKE_CXXFLAGS += -std=c++0x -stdlib=libc++ -O0 -g
|
|
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.14
|
|
$$eval(coverage_check) {
|
|
QMAKE_CXXFLAGS += --coverage
|
|
QMAKE_LFLAGS += --coverage
|
|
}
|
|
}
|
|
|
|
QMAKE_CXXFLAGS += -isystem $${systemc_home}/include
|
|
|
|
SOURCES += \
|
|
src/common/third_party/tinyxml2/tinyxml2.cpp \
|
|
src/common/TlmRecorder.cpp \
|
|
src/common/DebugManager.cpp \
|
|
src/configuration/Configuration.cpp \
|
|
src/simulation/MemoryManager.cpp \
|
|
src/simulation/TemperatureController.cpp \
|
|
src/configuration/ConfigurationLoader.cpp \
|
|
src/controller/Command.cpp \
|
|
src/error/errormodel.cpp \
|
|
src/simulation/TracePlayer.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/common/AddressDecoder.cpp \
|
|
src/simulation/dram/Dram.cpp \
|
|
src/simulation/Arbiter.cpp \
|
|
src/common/CongenAddressDecoder.cpp \
|
|
src/common/XmlAddressDecoder.cpp \
|
|
src/common/timingCalculations.cpp \
|
|
src/common/dramExtensions.cpp \
|
|
src/common/utils.cpp \
|
|
src/simulation/dram/DramDDR3.cpp \
|
|
src/simulation/dram/DramDDR4.cpp \
|
|
src/simulation/dram/DramRecordable.cpp \
|
|
src/simulation/dram/DramWideIO.cpp \
|
|
src/configuration/memspec/MemSpec.cpp \
|
|
src/controller/BankMachine.cpp \
|
|
src/controller/Controller.cpp \
|
|
src/controller/scheduler/SchedulerFifo.cpp \
|
|
src/controller/scheduler/SchedulerFrFcfs.cpp \
|
|
src/controller/cmdmux/CmdMuxStrict.cpp \
|
|
src/controller/cmdmux/CmdMuxOldest.cpp \
|
|
src/controller/ControllerRecordable.cpp \
|
|
src/controller/checker/CheckerDDR3.cpp \
|
|
src/controller/refresh/RefreshManager.cpp \
|
|
src/controller/refresh/RefreshManagerDummy.cpp \
|
|
src/controller/refresh/RefreshManagerBankwise.cpp \
|
|
src/controller/checker/CheckerWideIO.cpp \
|
|
src/configuration/memspec/MemSpecDDR3.cpp \
|
|
src/configuration/memspec/MemSpecDDR4.cpp \
|
|
src/configuration/memspec/MemSpecWideIO.cpp \
|
|
src/configuration/memspec/MemSpecLPDDR4.cpp \
|
|
src/controller/checker/CheckerDDR4.cpp \
|
|
src/simulation/dram/DramLPDDR4.cpp \
|
|
src/controller/checker/CheckerLPDDR4.cpp \
|
|
src/configuration/memspec/MemSpecWideIO2.cpp \
|
|
src/simulation/dram/DramWideIO2.cpp \
|
|
src/controller/checker/CheckerWideIO2.cpp \
|
|
src/configuration/memspec/MemSpecHBM2.cpp \
|
|
src/simulation/dram/DramHBM2.cpp \
|
|
src/controller/checker/CheckerHBM2.cpp \
|
|
src/configuration/memspec/MemSpecGDDR5.cpp \
|
|
src/configuration/memspec/MemSpecGDDR5X.cpp \
|
|
src/configuration/memspec/MemSpecGDDR6.cpp \
|
|
src/controller/checker/CheckerGDDR5.cpp \
|
|
src/controller/checker/CheckerGDDR5X.cpp \
|
|
src/controller/checker/CheckerGDDR6.cpp \
|
|
src/simulation/dram/DramGDDR5.cpp \
|
|
src/simulation/dram/DramGDDR5X.cpp \
|
|
src/simulation/dram/DramGDDR6.cpp \
|
|
src/controller/powerdown/PowerDownManagerStaggered.cpp \
|
|
src/controller/powerdown/PowerDownManagerDummy.cpp
|
|
|
|
HEADERS += \
|
|
src/common/third_party/tinyxml2/tinyxml2.h \
|
|
src/common/TlmRecorder.h \
|
|
src/common/tlm2_base_protocol_checker.h \
|
|
src/common/protocol.h \
|
|
src/common/DebugManager.h \
|
|
src/configuration/Configuration.h \
|
|
src/simulation/TracePlayer.h \
|
|
src/simulation/MemoryManager.h \
|
|
src/simulation/dram/Dram.h \
|
|
src/simulation/Arbiter.h \
|
|
src/common/libDRAMPower.h \
|
|
src/simulation/ReorderBuffer.h \
|
|
src/configuration/memspec/MemSpec.h \
|
|
src/simulation/StlPlayer.h \
|
|
src/simulation/TracePlayerListener.h \
|
|
src/simulation/TraceGenerator.h \
|
|
src/simulation/TemperatureController.h \
|
|
src/controller/Command.h \
|
|
src/configuration/ConfigurationLoader.h \
|
|
src/error/errormodel.h \
|
|
src/simulation/ExampleInitiator.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/simulation/IArbiter.h \
|
|
src/simulation/SimpleArbiter.h \
|
|
src/common/AddressDecoder.h \
|
|
src/common/CongenAddressDecoder.h \
|
|
src/common/XmlAddressDecoder.h \
|
|
src/common/timingCalculations.h \
|
|
src/common/dramExtensions.h \
|
|
src/common/utils.h \
|
|
src/configuration/TemperatureSimConfig.h \
|
|
src/simulation/dram/DramDDR3.h \
|
|
src/simulation/dram/DramDDR4.h \
|
|
src/simulation/dram/DramRecordable.h \
|
|
src/simulation/dram/DramWideIO.h \
|
|
src/controller/GenericController.h \
|
|
src/controller/BankMachine.h \
|
|
src/controller/Controller.h \
|
|
src/controller/scheduler/SchedulerIF.h \
|
|
src/controller/scheduler/SchedulerFifo.h \
|
|
src/controller/scheduler/SchedulerFrFcfs.h \
|
|
src/controller/cmdmux/CmdMuxIF.h \
|
|
src/controller/cmdmux/CmdMuxStrict.h \
|
|
src/controller/cmdmux/CmdMuxOldest.h \
|
|
src/controller/ControllerRecordable.h \
|
|
src/controller/checker/CheckerIF.h \
|
|
src/controller/checker/CheckerDDR3.h \
|
|
src/controller/refresh/RefreshManagerIF.h \
|
|
src/controller/refresh/RefreshManager.h \
|
|
src/controller/refresh/RefreshManagerDummy.h \
|
|
src/controller/refresh/RefreshManagerBankwise.h \
|
|
src/controller/checker/CheckerWideIO.h \
|
|
src/configuration/memspec/MemSpecDDR3.h \
|
|
src/configuration/memspec/MemSpecWideIO.h \
|
|
src/configuration/memspec/MemSpecDDR4.h \
|
|
src/configuration/memspec/MemSpecLPDDR4.h \
|
|
src/controller/checker/CheckerDDR4.h \
|
|
src/simulation/dram/DramLPDDR4.h \
|
|
src/controller/checker/CheckerLPDDR4.h \
|
|
src/configuration/memspec/MemSpecWideIO2.h \
|
|
src/simulation/dram/DramWideIO2.h \
|
|
src/controller/checker/CheckerWideIO2.h \
|
|
src/configuration/memspec/MemSpecHBM2.h \
|
|
src/simulation/dram/DramHBM2.h \
|
|
src/controller/checker/CheckerHBM2.h \
|
|
src/configuration/memspec/MemSpecGDDR5.h \
|
|
src/configuration/memspec/MemSpecGDDR5X.h \
|
|
src/configuration/memspec/MemSpecGDDR6.h \
|
|
src/controller/checker/CheckerGDDR5.h \
|
|
src/controller/checker/CheckerGDDR5X.h \
|
|
src/controller/checker/CheckerGDDR6.h \
|
|
src/simulation/dram/DramGDDR5.h \
|
|
src/simulation/dram/DramGDDR5X.h \
|
|
src/simulation/dram/DramGDDR6.h \
|
|
src/controller/powerdown/PowerDownManagerStaggered.h \
|
|
src/controller/powerdown/PowerDownManagerIF.h \
|
|
src/controller/powerdown/PowerDownManagerDummy.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
|