diff --git a/DRAMSys/analyzer/scripts/plots.py b/DRAMSys/analyzer/scripts/plots.py
index d5ae6cc0..dc2153d3 100755
--- a/DRAMSys/analyzer/scripts/plots.py
+++ b/DRAMSys/analyzer/scripts/plots.py
@@ -31,7 +31,7 @@ def memory_utilisation_window(connection, tracePath, steps):
cursor.execute(" SELECT WindowSize FROM GeneralInfo ")
windowSize = float(cursor.fetchone()[0])
# All possible cases of data transfers inside a time window
- queryFull = """ SELECT sum(DataStrobeEnd - DataStrobeBegin) FROM transactions Where DataStrobeBegin > ? and DataStrobeEnd < ?""" # The data transfer begins and ends inside the time window
+ queryFull = """ SELECT sum(DataStrobeEnd - DataStrobeBegin) FROM transactions Where DataStrobeBegin >= ? and DataStrobeEnd <= ?""" # The data transfer begins and ends inside the time window
queryEnd = """ SELECT sum(DataStrobeEnd - ?) FROM transactions Where DataStrobeBegin < ? and DataStrobeEnd > ? and DataStrobeEnd <=?""" # Only the end of the data transfer is inside the time window
queryBegin = """ SELECT sum(? - DataStrobeBegin) FROM transactions Where DataStrobeBegin >= ? and DataStrobeBegin < ? and DataStrobeEnd > ?""" # Only the beginning of the data transfer is inside the time window
queryPart = """ SELECT DataStrobeBegin FROM transactions Where DataStrobeBegin <= ? and DataStrobeEnd >= ?""" # The data transfer occupies all the time window
diff --git a/DRAMSys/simulator/resources/configs/simulator/wideio.xml b/DRAMSys/simulator/resources/configs/simulator/wideio.xml
index c811e71a..8ba8f3ba 100644
--- a/DRAMSys/simulator/resources/configs/simulator/wideio.xml
+++ b/DRAMSys/simulator/resources/configs/simulator/wideio.xml
@@ -7,7 +7,7 @@
-
+
diff --git a/DRAMSys/simulator/resources/simulations/wideio-example.xml b/DRAMSys/simulator/resources/simulations/wideio-example.xml
index 8c068c25..c0847e17 100644
--- a/DRAMSys/simulator/resources/simulations/wideio-example.xml
+++ b/DRAMSys/simulator/resources/simulations/wideio-example.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/DRAMSys/simulator/simulator.pro b/DRAMSys/simulator/simulator.pro
index cf0dcd19..b95f4256 100644
--- a/DRAMSys/simulator/simulator.pro
+++ b/DRAMSys/simulator/simulator.pro
@@ -18,8 +18,11 @@ isEmpty(systemc_target_arch) {
message(SystemC target architecture is $${systemc_target_arch})
-#QMAKE_RPATHDIR += $${systemc_home}/lib-$${systemc_target_arch}
-#message(Linker options QMAKE_RPATHDIR is $${QMAKE_RPATHDIR})
+unix:!macx {
+ message(Building on a GNU/Linux)
+ QMAKE_RPATHDIR += $${systemc_home}/lib-$${systemc_target_arch}
+ message(Linker options QMAKE_RPATHDIR is $${QMAKE_RPATHDIR})
+}
DEFINES += TIXML_USE_STL
DEFINES += SC_INCLUDE_DYNAMIC_PROCESSES
@@ -38,9 +41,9 @@ INCLUDEPATH += $${systemc_home}/include
INCLUDEPATH += src/common/third_party/DRAMPower/src
INCLUDEPATH += src/common/third_party/DRAMPower/src/libdrampower
-LIBS += -lsqlite3
LIBS += -L$${systemc_home}/lib-$${systemc_target_arch} -lsystemc
LIBS += libDRAMSys.a
LIBS += ../../DRAMSys/simulator/src/common/third_party/DRAMPower/src/libdrampower.a
+LIBS += -lsqlite3
SOURCES += src/simulation/main.cpp
diff --git a/DRAMSys/tests/TLM_compliance/test.pl b/DRAMSys/tests/TLM_compliance/test.pl
index ac6a4d73..6aafa38f 100644
--- a/DRAMSys/tests/TLM_compliance/test.pl
+++ b/DRAMSys/tests/TLM_compliance/test.pl
@@ -64,7 +64,7 @@ chomp $storeModeLine;
system("sed -i.bu '" . $storeModeLine . "s^.*^ ^' ../../DRAMSys/tests/TLM_compliance/fifoStrict.xml");
-`./dramSys ../../DRAMSys/tests/TLM_compliance/sim-batch.xml &> ../../DRAMSys/tests/TLM_compliance/output.txt`;
+`./DRAMSys ../../DRAMSys/tests/TLM_compliance/sim-batch.xml &> ../../DRAMSys/tests/TLM_compliance/output.txt`;
if("" ne `grep "Error: tlm2_protocol_checker" ../../DRAMSys/tests/TLM_compliance/output.txt`)
{
@@ -80,7 +80,7 @@ system("sed -i.bu '" . $storeModeLine . "s^.*^ ../../DRAMSys/tests/TLM_compliance/output.txt`;
+`./DRAMSys ../../DRAMSys/tests/TLM_compliance/sim-batch.xml &> ../../DRAMSys/tests/TLM_compliance/output.txt`;
if("" ne `grep "Error: tlm2_protocol_checker" ../../DRAMSys/tests/TLM_compliance/output.txt`)
{
diff --git a/DRAMSys/tests/error/generateErrorTest_4ch.pl b/DRAMSys/tests/error/generateErrorTest_4ch.pl
new file mode 100644
index 00000000..1bad5d65
--- /dev/null
+++ b/DRAMSys/tests/error/generateErrorTest_4ch.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl -w
+use warnings;
+use strict;
+
+# Assuming this address mapping:
+#
+#
+#
+#
+#
+#
+#
+
+# This is how it should look like later:
+# 31: write 0x0 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+my $numberOfRows = 8192;
+my $numberOfColumnsPerRow = 128;
+my $bytesPerColumn = 16;
+my $burstLength = 4; # burst length of 4 columns --> 4 columns written or read per access
+my $dataLength = $bytesPerColumn * $burstLength;
+
+my $rowOffset = 0x4000;
+my $colOffset = 0x80;
+
+# Generate Data Pattern:
+my $dataPatternByte = "ff";
+
+my $dataPattern = "";
+for(my $i = 0; $i < $dataLength; $i++)
+{
+ $dataPattern .= $dataPatternByte;
+}
+
+my $clkCounter = 0;
+my $addr = 0;
+
+# Generate Trace file (writes):
+
+for(my $ch = 0; $ch < 4; $ch++) {
+ $addr = 0;
+ $addr |= $ch << 27;
+ for(my $row = 0; $row < ($numberOfRows * $rowOffset); $row = $row + $rowOffset)
+ {
+ for(my $col = 0; $col < ($numberOfColumnsPerRow * $colOffset); $col = $col + ($colOffset * $burstLength))
+ {
+ my $addrHex = sprintf("0x%x", $addr);
+ print "$clkCounter:\twrite\t$addrHex\t$dataPattern\n";
+ $clkCounter++;
+ $addr += $colOffset * $burstLength;
+ }
+ }
+}
+
+$clkCounter = 350000000;
+$addr = 0;
+
+# Generate Trace file (reads):
+for(my $ch = 0; $ch < 4; $ch++) {
+ $addr = 0;
+ $addr |= $ch << 27;
+ for(my $row = 0; $row < ($numberOfRows * $rowOffset); $row = $row + $rowOffset)
+ {
+ for(my $col = 0; $col < ($numberOfColumnsPerRow * $colOffset); $col = $col + ($colOffset * $burstLength))
+ {
+ my $addrHex = sprintf("0x%x", $addr);
+ print "$clkCounter:\tread\t$addrHex\t$dataPattern\n";
+ $clkCounter++;
+ $addr += $colOffset * $burstLength;
+ }
+ }
+}
diff --git a/DRAMSys/tests/error/test.pl b/DRAMSys/tests/error/test.pl
index 14fd35fb..20c0ff54 100644
--- a/DRAMSys/tests/error/test.pl
+++ b/DRAMSys/tests/error/test.pl
@@ -53,7 +53,7 @@ if (! -e $trace_file) {
# Run Simulation:
chdir("../../../build/simulator/");
-`./dramSys ../../DRAMSys/tests/error/sim-batch.xml > ../../DRAMSys/tests/error/output.txt`;
+`./DRAMSys ../../DRAMSys/tests/error/sim-batch.xml > ../../DRAMSys/tests/error/output.txt`;
chdir("../../DRAMSys/tests/error");
diff --git a/DRAMSys/tests/simple/test.pl b/DRAMSys/tests/simple/test.pl
index 20a977f2..8c801c86 100644
--- a/DRAMSys/tests/simple/test.pl
+++ b/DRAMSys/tests/simple/test.pl
@@ -40,7 +40,7 @@ use File::Compare;
# Run Simulation:
chdir("../../../build/simulator/");
-`./dramSys ../../DRAMSys/tests/simple/sim-batch.xml > ../../DRAMSys/tests/simple/output.txt`;
+`./DRAMSys ../../DRAMSys/tests/simple/sim-batch.xml > ../../DRAMSys/tests/simple/output.txt`;
chdir("../../DRAMSys/tests/simple");
diff --git a/DRAMSys/tests/start.pl b/DRAMSys/tests/start.pl
index 2d699ffb..501853c0 100755
--- a/DRAMSys/tests/start.pl
+++ b/DRAMSys/tests/start.pl
@@ -76,12 +76,12 @@ chdir("build/") || die("chdir");
# Build the Project:
my $starttime = time();
print "\n", color($timestamp_color), timestamp(), color("reset"),"Build Project\t";
-`qmake ../DRAMSys/dram.vp.system.pro >/dev/null 2>&1`;
+`qmake ../DRAMSys/DRAMSys.pro >/dev/null 2>&1`;
`make -j$numberOfCores > /dev/null 2>&1`;
my $took = time() - $starttime;
# Check if Build was sucessful:
-if( -e "./simulator/dramSys" )
+if( -e "./simulator/DRAMSys" )
{
print color("reset"),"[ ", color("green"), "done", color("reset"), " ]\t", "(", $took, " seconds)\n";
}
diff --git a/DRAMSys/tests/timing_compliance/test.pl b/DRAMSys/tests/timing_compliance/test.pl
index 00c256fb..3406ad0e 100644
--- a/DRAMSys/tests/timing_compliance/test.pl
+++ b/DRAMSys/tests/timing_compliance/test.pl
@@ -57,7 +57,7 @@ foreach (@powerDownModes)
system("sed -i.bu '" . $bankwiseLogicLine . "s^.*^ ^' ../../DRAMSys/tests/timing_compliance/fifoStrict.xml");
system("sed -i.bu '" . $powerDownModeLine . "s^.*^ ^' ../../DRAMSys/tests/timing_compliance/fifoStrict.xml");
- `./dramSys ../../DRAMSys/tests/timing_compliance/sim-batch.xml`;
+ `./DRAMSys ../../DRAMSys/tests/timing_compliance/sim-batch.xml`;
@files = `ls sim-batch/timing_compliance_test_fifoStrict_channel*.tdb`;
chomp @files;
@@ -76,7 +76,7 @@ foreach (@powerDownModes)
system("sed -i.bu '" . $powerAnalysisLine . "s^.*^ ^' ../../DRAMSys/tests/timing_compliance/sim-batch.xml");
system("sed -i.bu '" . $bankwiseLogicLine . "s^.*^ ^' ../../DRAMSys/tests/timing_compliance/fifoStrict.xml");
- `./dramSys ../../DRAMSys/tests/timing_compliance/sim-batch.xml`;
+ `./DRAMSys ../../DRAMSys/tests/timing_compliance/sim-batch.xml`;
foreach (@files)
{
diff --git a/README.md b/README.md
index e5182c22..eb3e5f75 100644
--- a/README.md
+++ b/README.md
@@ -147,7 +147,7 @@ $ qtcreator &
Use the menu bar and open the DRAMSys project.
-**File -> Open Project -> dram.vp.system/DRAMSys/dram.vp.system.pro**
+**File -> Open Project -> dram.vp.system/DRAMSys/DRAMSys.pro**
When you open the project for the first time a configuration window pops-up.
Then click in **Configure Project** and after that **Build** the project.
@@ -173,7 +173,7 @@ use **qmake** to generate a Makefile and then compile the project.
``` bash
$ mkdir build
$ cd build
-$ qmake ../DRAMSys/dram.vp.system.pro
+$ qmake ../DRAMSys/DRAMSys.pro
$ make
```
@@ -301,7 +301,7 @@ has to be changed like [this](https://trac.macports.org/attachment/ticket/44288/
``` bash
$ mkdir build
-$ qmake ../DRAMSys/dram.vp.system.pro
+$ qmake ../DRAMSys/DRAMSys.pro
$ make -j
```
@@ -418,7 +418,7 @@ or
$ mkdir build
$ cd build
$ export THERMALSIM=true
-$ qmake ../DRAMSys/dram.vp.system.pro
+$ qmake ../DRAMSys/DRAMSys.pro
$ make
```