diff --git a/DRAMSys/analyzer/scripts/plots.py b/DRAMSys/analyzer/scripts/plots.py
index f953c4f4..ef672088 100755
--- a/DRAMSys/analyzer/scripts/plots.py
+++ b/DRAMSys/analyzer/scripts/plots.py
@@ -165,7 +165,7 @@ def generatePlots(pathToTrace):
cursor.execute(" SELECT WindowSize FROM GeneralInfo")
windowSize = float(cursor.fetchone()[0])
if(windowSize == 0):
- outputFiles = "No output file created"
+ outputFiles = "No output file created. Check WindowSize and EnableWindowing configs."
else:
cursor.execute(" SELECT TraceEnd FROM GeneralInfo ")
traceEnd = float(cursor.fetchone()[0])
diff --git a/DRAMSys/analyzer/traceAnalyzer.pro b/DRAMSys/analyzer/traceAnalyzer.pro
index 177e2b4d..057ed8f8 100644
--- a/DRAMSys/analyzer/traceAnalyzer.pro
+++ b/DRAMSys/analyzer/traceAnalyzer.pro
@@ -22,12 +22,12 @@ unix:!macx {
macx: {
CONFIG += c++11
QMAKE_CXXFLAGS += -std=c++0x -stdlib=libc++ -DMAC
- QMAKE_LFLAGS += -F/opt/qwt-6.1.2/lib
- LIBS += -F/opt/qwt-6.1.2/lib/ -framework qwt
- INCLUDEPATH += /opt/qwt-6.1.2/lib/qwt.framework/Headers
- DEPENDPATH += /opt/qwt-6.1.2
- INCLUDEPATH += /usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/include/python3.5m
- LIBS += -L/usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/lib -lpython3.5
+ QMAKE_LFLAGS += -F$$(LIBQWT_HOME)
+ LIBS += -F$$(LIBQWT_HOME) -framework qwt
+ INCLUDEPATH += $$(LIBQWT_HEADERS)
+ DEPENDPATH += $$replace(LIBQWT_HOME, lib, )
+ INCLUDEPATH += $$(PYTHON_HEADERS)
+ LIBS += -L$$(PYTHON_HOME) -lpython3.5
}
# QWT library and header files
diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml
new file mode 100644
index 00000000..39d66692
--- /dev/null
+++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml
new file mode 100644
index 00000000..46cb5158
--- /dev/null
+++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_brc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_brc.xml
new file mode 100644
index 00000000..6f384970
--- /dev/null
+++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_brc.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_rbc.xml b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_rbc.xml
new file mode 100644
index 00000000..7f9e64fe
--- /dev/null
+++ b/DRAMSys/simulator/resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_rbc.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/DRAMSys/simulator/resources/resources.pri b/DRAMSys/simulator/resources/resources.pri
index cc46c3c4..bd1a5c7a 100644
--- a/DRAMSys/simulator/resources/resources.pri
+++ b/DRAMSys/simulator/resources/resources.pri
@@ -48,6 +48,7 @@ OTHER_FILES += resources/traces/mediabench-g721encode_32.stl
OTHER_FILES += resources/traces/small.stl
OTHER_FILES += resources/traces/chstone-motion_32.stl
OTHER_FILES += resources/traces/mediabench-adpcmdecode_32.stl
+OTHER_FILES += resources/traces/ddr3_example.stl
# mcconfigs
OTHER_FILES += resources/configs/mcconfigs/fifoStrict.xml
@@ -66,10 +67,52 @@ OTHER_FILES += resources/configs/memspecs/MatzesWideIO.xml
OTHER_FILES += resources/configs/memspecs/DDR4.xml
OTHER_FILES += resources/configs/memspecs/WideIO.xml
OTHER_FILES += resources/configs/memspecs/MatzesWideIO-short.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G.xml
+OTHER_FILES += resources/configs/memspecs/JEDEC_256Mb_WIDEIO_SDR-200_128bit.xml
+OTHER_FILES += resources/configs/memspecs/JEDEC_256Mb_WIDEIO_SDR-266_128bit.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR2-1066_16bit_H.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR2-800_16bit_H.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_16bit_G.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_16bit_G_2s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_16bit_G_3s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_16bit_G_mu.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_8bit_G.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_8bit_G_2s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_8bit_G_3s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1066_8bit_G_mu.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G_2s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G_3s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_1Gb_DDR3-1600_8bit_G_mu.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1066_8bit_D.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1066_8bit_D_2s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1066_8bit_D_3s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1066_8bit_D_mu.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1600_16bit_D.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1600_16bit_D_2s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1600_16bit_D_3s.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_DDR3-1600_16bit_D_mu.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_LPDDR-266_16bit_A.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_LPDDR-333_16bit_A.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_LPDDR2-1066-S4_16bit_A.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_2Gb_LPDDR2-800-S4_16bit_A.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_4Gb_DDR4-1866_8bit_A.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_4Gb_DDR4-2400_8bit_A.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_4Gb_LPDDR3-1333_32bit_A.xml
+OTHER_FILES += resources/configs/memspecs/MICRON_4Gb_LPDDR3-1600_32bit_A.xml
+OTHER_FILES += resources/configs/memspecs/SAMSUNG_K4B1G1646E_1Gb_DDR3-1600_16bit.xml
+
+
# address mapping configs
OTHER_FILES += resources/configs/amconfigs/am_ddr3.xml
-OTHER_FILES += resources/configs/amconfigs/am_ddr4.xml
+OTHER_FILES += resources/configs/amconfigs/am_ddr3_x16_brc.xml
+OTHER_FILES += resources/configs/amconfigs/am_ddr3_x16_rbc.xml
+OTHER_FILES += resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml
+OTHER_FILES += resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml
+OTHER_FILES += resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_brc.xml
+OTHER_FILES += resources/configs/amconfigs/am_ddr3_8x2Gbx8_dimm_p1KB_rbc.xml
+OTHER_FILES += resources/configs/amconfigs/resources/configs/amconfigs/am_ddr4.xml
OTHER_FILES += resources/configs/amconfigs/am_highHits.xml
OTHER_FILES += resources/configs/amconfigs/am_highPara.xml
OTHER_FILES += resources/configs/amconfigs/am_wideio.xml
diff --git a/DRAMSys/simulator/resources/simulations/ddr3-example.xml b/DRAMSys/simulator/resources/simulations/ddr3-example.xml
index 4368ca7b..643716ef 100644
--- a/DRAMSys/simulator/resources/simulations/ddr3-example.xml
+++ b/DRAMSys/simulator/resources/simulations/ddr3-example.xml
@@ -5,7 +5,7 @@
-
+
@@ -29,21 +29,33 @@
+
+
+
-
+
+
+
+
+
+
- chstone-adpcm_32.stl
+
+ ddr3_example.stl
diff --git a/DRAMSys/simulator/src/controller/core/ControllerCore.cpp b/DRAMSys/simulator/src/controller/core/ControllerCore.cpp
index 8de6d3f5..da9df026 100644
--- a/DRAMSys/simulator/src/controller/core/ControllerCore.cpp
+++ b/DRAMSys/simulator/src/controller/core/ControllerCore.cpp
@@ -139,7 +139,7 @@ void ControllerCore::triggerRefresh(tlm::tlm_generic_payload& payload)
powerDownManager->wakeUpForRefresh(bank, time); //expects PDNA and PDNP to exit without delay
bool pdnpToSrefTransition = false;
if (config.PowerDownMode == EPowerDownMode::Staggered) {
- pdnpToSrefTransition = state->getLastCommand(Command::PDNPX,bank).getStart() >= time;
+ pdnpToSrefTransition = state->getLastCommand(Command::PDNPX,bank).getStart() >= time;
}
if (pdnpToSrefTransition) {
powerDownManager->sleep(bank,time);
diff --git a/DRAMSys/simulator/src/simulation/Dram.h b/DRAMSys/simulator/src/simulation/Dram.h
index 0641ed23..bb4a3d2b 100644
--- a/DRAMSys/simulator/src/simulation/Dram.h
+++ b/DRAMSys/simulator/src/simulation/Dram.h
@@ -244,9 +244,9 @@ struct Dram : sc_module
cout << name() << string("\tTotal Time: \t") <<(endTime-startTime).to_string() << endl;
//cout << name() << string("\tTotal IDLE: \t") </Qt5.7.0/5.7/clang_64/bin:${PATH}"
+export PATH
```
- Install the QWT manually to /opt/qwt, then do:
-``` bash
-cd /Library/Frameworks
-sudo ln -s /opt/qwt-6.1.2/lib/qwt.framework/ .
-```
-- The boost library must be installed manually, since the macports version is not compatible with DRAMSys:
-
-In your “user-config.jam”, put this:
``` bash
-using clang : 11
- : "/usr/bin/clang++"
- : "-std=c++11 -stdlib=libc++" "-stdlib=libc++""
- ;
+$ cd /Library/Frameworks
+$ sudo ln -s /opt/qwt-6.1.2/lib/qwt.framework/ .
+```
+
+- The boost library can be installed manually or through homebrew:
+
+Manually: Install boost lib (filesystem & system) in /opt/boost
-```
-Then compile and install it:
``` bash
-./b2 toolset=clang-11
-sudo ./b2 install
-```
-DRAMSys and Analyzer only runs if the following is configured in the project settings:
+$ ./bootstrap.sh --prefix=/opt/boost --with-libraries=filesystem,system
+$ sudo ./b2 install
```
-DYLD_LIBRARY_PATH=/opt/boost/lib
-LIBQWT_HEADERS=/opt/local/include
-LIBQWT_HOME=/opt/local/lib
-PYTHON_HEADERS=/opt/local/include
-PYTHON_HOME=/opt/local/lib
-SYSTEMC_TARGET_ARCH=macosx64
-```
-For the trace analyzer the file /opt/local/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m/pyport.h has to be changed like this: https://trac.macports.org/attachment/ticket/44288/issue10910-workaround.txt
+
+Homebrew: Install boost lib (all, which consumes large storage) in
+```
+/usr/local/Cellar
+```
+
+``` bash
+$ brew install boost
+```
+
+
+- Export correct Environment Variables in your terminal's profile, e.g:
+
+``` bash
+# Setting for DRAMSys
+# SystemC via official source
+export SYSTEMC_HOME=/opt/systemc
+export SYSTEMC_TARGET_ARCH=macosx64
+# SystemC via Homebrew
+#export SYSTEMC_HOME=/usr/local/Cellar/systemc/2.3.1
+#export SYSTEMC_TARGET_ARCH=macosx64
+
+# Python via official pkg
+export PYTHON_HOME=/Library/Frameworks/Python.framework/Versions/3.5/lib
+export PYTHON_HEADERS=/Library/Frameworks/Python.framework/Versions/3.5/Headers
+
+# Python3 via Homebrew
+#export PYTHON_HOME=/usr/local/Cellar/python3/3.5.2_2/Frameworks/Python.framework/Versions/3.5/lib
+#export PYTHON_HEADERS=/usr/local/Cellar/python3/3.5.2_2/Frameworks/Python.framework/Versions/3.5/Headers
+
+export LIBQWT_HOME=/opt/qwt-6.1.4/lib
+export LIBQWT_HEADERS=/opt/qwt-6.1.4/lib/qwt.framework/Headers
+export LIBBOOST_HOME=/opt/boost/lib
+export LIBBOOST_HEADERS=/opt/boost/include
+
+# Add Boost Lib into Dynamic Lib Path
+DYLD_LIBRARY_PATH="/opt/boost/lib:${DYLD_LIBRARY_PATH}"
+export DYLD_LIBRARY_PATH
+```
+
+- For the trace analyzer the file:
+```
+/opt/local/Library/Frameworks/Python.framework/Versions/3.5/include/python3.4m/pyport.h
+```
+has to be changed like [this](https://trac.macports.org/attachment/ticket/44288/issue10910-workaround.txt)
+
+- Install package [xerces](http://xerces.apache.org/mirrors.cgi) if your system does not have.
+
+- Type following command inside your dram.vp.system folder:
+
+``` bash
+$ mkdir build
+$ qmake ../DRAMSys/dram.vp.system.pro
+$ make -j
+```
+
+Now you can try to run DramSys and traceAnalyzer App inside folder simulator and analyzer, respectively
### DRAMSys Thermal Simulation
The thermal simulation is performed by a **3D-ICE** [8] server accessed
through the network. Therefore users interested in thermal simulation during
their DRAMSys simulations need to make sure they have a 3D-ICE server up and
-running before starting. For more information about 3D-ICE visit the official
-website http://esl.epfl.ch/3D-ICE.
+running before starting. For more information about 3D-ICE visit the [official website](http://esl.epfl.ch/3D-ICE).
#### Installing the lastest 3D-ICE version
-Download the lastest version. Make sure you got version 2.2.6 or greater:
+[Download](http://esl.epfl.ch/3d-ice/download.html) the lastest version. Make sure you got version 2.2.6 or greater:
``` bash
$ wget http://esl.epfl.ch/files/content/sites/esl/files/3dice/releases/3d-ice-latest.zip
$ tar -xvzf 3d-ice-latest.zip
```
-Install SuperLU dependencies:
+Install [SuperLU](http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_5.2.1.tar.gz) dependencies:
``` bash
$ sudo apt-get install build-essential git bison flex libblas-dev