diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 718fd16c..9011e4ab 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,7 +20,7 @@ build:
- mkdir -p build
- cd build
- cmake ../DRAMSys
- - make -j4
+ - make -j16
- find . -name "*.o" -type f -delete
- rm -rf ${CI_PROJECT_DIR}/coverage
- mkdir -p ${CI_PROJECT_DIR}/coverage
diff --git a/DRAMSys/tests/DDR3/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml b/DRAMSys/tests/DDR3/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml
index 39d66692..b2c3af48 100644
--- a/DRAMSys/tests/DDR3/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml
+++ b/DRAMSys/tests/DDR3/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml
@@ -1,25 +1,34 @@
-
-
-
-
-
-
-
-
-
-
+
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+
+
\ No newline at end of file
diff --git a/DRAMSys/tests/DDR3/configs/mcconfigs/fifoStrict.xml b/DRAMSys/tests/DDR3/configs/mcconfigs/fifoStrict.xml
index ed869b57..44bf294e 100644
--- a/DRAMSys/tests/DDR3/configs/mcconfigs/fifoStrict.xml
+++ b/DRAMSys/tests/DDR3/configs/mcconfigs/fifoStrict.xml
@@ -1,50 +1,20 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/DRAMSys/tests/DDR3/configs/mcconfigs/fr_fcfs.xml b/DRAMSys/tests/DDR3/configs/mcconfigs/fr_fcfs.xml
index 20db08cd..7240485d 100644
--- a/DRAMSys/tests/DDR3/configs/mcconfigs/fr_fcfs.xml
+++ b/DRAMSys/tests/DDR3/configs/mcconfigs/fr_fcfs.xml
@@ -1,50 +1,20 @@
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/DRAMSys/tests/DDR3/scripts/createTraceDB.sql b/DRAMSys/tests/DDR3/scripts/createTraceDB.sql
index 1ba6c3aa..7a127fac 100644
--- a/DRAMSys/tests/DDR3/scripts/createTraceDB.sql
+++ b/DRAMSys/tests/DDR3/scripts/createTraceDB.sql
@@ -1,5 +1,6 @@
DROP TABLE IF EXISTS Phases;
DROP TABLE IF EXISTS GeneralInfo;
+DROP TABLE IF EXISTS CommandLengths;
DROP TABLE IF EXISTS Comments;
DROP TABLE IF EXISTS ranges;
DROP TABLE IF EXISTS Transactions;
@@ -17,6 +18,7 @@ CREATE TABLE Phases(
CREATE TABLE GeneralInfo(
NumberOfTransactions INTEGER,
TraceEnd INTEGER,
+ NumberOfRanks INTEGER,
NumberOfBanks INTEGER,
clk INTEGER,
UnitOfTime TEXT,
@@ -29,6 +31,24 @@ CREATE TABLE GeneralInfo(
ControllerThread INTEGER
);
+CREATE TABLE CommandLengths(
+ ACT INTEGER,
+ PRE INTEGER,
+ PREA INTEGER,
+ RD INTEGER,
+ RDA INTEGER,
+ WR INTEGER,
+ WRA INTEGER,
+ REFA INTEGER,
+ REFB INTEGER,
+ PDEA INTEGER,
+ PDXA INTEGER,
+ PDEP INTEGER,
+ PDXP INTEGER,
+ SREFEN INTEGER,
+ SREFEX INTEGER
+);
+
CREATE TABLE Power(
time DOUBLE,
AveragePower DOUBLE
@@ -58,8 +78,9 @@ CREATE TABLE Transactions(
Burstlength INTEGER,
TThread INTEGER,
TChannel INTEGER,
- TBank INTEGER,
+ TRank INTEGER,
TBankgroup INTEGER,
+ TBank INTEGER,
TRow INTEGER,
TColumn INTEGER,
DataStrobeBegin INTEGER,
diff --git a/DRAMSys/tests/WIDEIO/scripts/createTraceDB.sql b/DRAMSys/tests/WIDEIO/scripts/createTraceDB.sql
index 1ba6c3aa..7a127fac 100644
--- a/DRAMSys/tests/WIDEIO/scripts/createTraceDB.sql
+++ b/DRAMSys/tests/WIDEIO/scripts/createTraceDB.sql
@@ -1,5 +1,6 @@
DROP TABLE IF EXISTS Phases;
DROP TABLE IF EXISTS GeneralInfo;
+DROP TABLE IF EXISTS CommandLengths;
DROP TABLE IF EXISTS Comments;
DROP TABLE IF EXISTS ranges;
DROP TABLE IF EXISTS Transactions;
@@ -17,6 +18,7 @@ CREATE TABLE Phases(
CREATE TABLE GeneralInfo(
NumberOfTransactions INTEGER,
TraceEnd INTEGER,
+ NumberOfRanks INTEGER,
NumberOfBanks INTEGER,
clk INTEGER,
UnitOfTime TEXT,
@@ -29,6 +31,24 @@ CREATE TABLE GeneralInfo(
ControllerThread INTEGER
);
+CREATE TABLE CommandLengths(
+ ACT INTEGER,
+ PRE INTEGER,
+ PREA INTEGER,
+ RD INTEGER,
+ RDA INTEGER,
+ WR INTEGER,
+ WRA INTEGER,
+ REFA INTEGER,
+ REFB INTEGER,
+ PDEA INTEGER,
+ PDXA INTEGER,
+ PDEP INTEGER,
+ PDXP INTEGER,
+ SREFEN INTEGER,
+ SREFEX INTEGER
+);
+
CREATE TABLE Power(
time DOUBLE,
AveragePower DOUBLE
@@ -58,8 +78,9 @@ CREATE TABLE Transactions(
Burstlength INTEGER,
TThread INTEGER,
TChannel INTEGER,
- TBank INTEGER,
+ TRank INTEGER,
TBankgroup INTEGER,
+ TBank INTEGER,
TRow INTEGER,
TColumn INTEGER,
DataStrobeBegin INTEGER,
diff --git a/DRAMSys/traceAnalyzer/CMakeLists.txt b/DRAMSys/traceAnalyzer/CMakeLists.txt
index 00b38a9a..37da1e4a 100644
--- a/DRAMSys/traceAnalyzer/CMakeLists.txt
+++ b/DRAMSys/traceAnalyzer/CMakeLists.txt
@@ -35,20 +35,18 @@ cmake_minimum_required(VERSION 3.10)
# Project Name:
project(TraceAnalyzer)
-# Add Python Dependency:
-find_library(PYTHON3_LIBRARY NAMES Python3)
-
-# Add sqlite3 Dependency:
-find_package(PythonLibs REQUIRED)
+# Add Python3 Dependency:
+find_package(Python3 COMPONENTS Development)
# Add QWT Dependency:
-find_library(QWT_LIBRARY NAMES "qwt-qt5" "qwt")
-find_path (QWT_INCLUDE_DIRS NAMES "qwt_plot.h" PATHS
+find_library(QWT_LIBRARY NAMES "qwt-qt5" "qwt" PATHS $ENV{LIBQWT_HOME})
+find_path(QWT_INCLUDE_DIRS NAMES "qwt_plot.h" PATHS
"/usr/include/qwt-qt5"
"/usr/include/qwt"
"C:\\Qwt\\"
"C:\\Qwt-6.1.4\\"
"C:\\Users\\jung\\Zeugs\\qwt\\qwt-614-install\\include"
+ $ENV{LIBQWT_HEADERS}
)
# Add QT Library:
@@ -64,7 +62,7 @@ set(DCMAKE_SH="CMAKE_SH-NOTFOUND")
include_directories(
${QWT_INCLUDE_DIRS}
- ${PYTHON_INCLUDE_DIRS}
+ ${Python3_INCLUDE_DIRS}
./
businessObjects/
businessObjects/phases/
@@ -86,7 +84,7 @@ add_executable(TraceAnalyzer
gototimedialog.cpp
presentation/traceplot.cpp
tracefiletab.cpp
- presentation/pornotracescroller.cpp
+ presentation/tracescroller.cpp
traceanalyzer.cpp
presentation/transactiontreewidget.cpp
presentation/commenttreewidget.cpp
@@ -115,7 +113,7 @@ add_executable(TraceAnalyzer
# Build:
target_link_libraries(TraceAnalyzer
- ${PYTHON_LIBRARIES}
+ ${Python3_LIBRARIES}
${QWT_LIBRARY}
)
qt5_use_modules(TraceAnalyzer Widgets Sql)
diff --git a/DRAMSys/traceAnalyzer/mainwindow.cpp b/DRAMSys/traceAnalyzer/mainwindow.cpp
index 9bdc2565..0e911285 100644
--- a/DRAMSys/traceAnalyzer/mainwindow.cpp
+++ b/DRAMSys/traceAnalyzer/mainwindow.cpp
@@ -52,7 +52,7 @@ MainWindow::MainWindow(QWidget *parent) :
db = new TraceDB("tpr.tdb", true);
traceNavigator = new TraceNavigator(db->getGeneralInfo(), this);
ui->tracePlot->init(traceNavigator, db);
- ui->pornoTraceScroller->init(traceNavigator, db, ui->tracePlot);
+ ui->traceScroller->init(traceNavigator, db, ui->tracePlot);
phases = db->getPhasesInTimespan(
traceNavigator->GeneralTraceInfo().TraceSpan());
transactions = db->getTransactionsInTimespan(
diff --git a/DRAMSys/traceAnalyzer/presentation/pornotracescroller.cpp b/DRAMSys/traceAnalyzer/presentation/tracescroller.cpp
similarity index 91%
rename from DRAMSys/traceAnalyzer/presentation/pornotracescroller.cpp
rename to DRAMSys/traceAnalyzer/presentation/tracescroller.cpp
index 8b66efd2..64506edf 100644
--- a/DRAMSys/traceAnalyzer/presentation/pornotracescroller.cpp
+++ b/DRAMSys/traceAnalyzer/presentation/tracescroller.cpp
@@ -38,11 +38,11 @@
#include
#include
#include
-#include "pornotracescroller.h"
+#include "tracescroller.h"
#include "traceplotitem.h"
#include "util/engineeringScaleDraw.h"
-PornoTraceScroller::PornoTraceScroller(QWidget *parent):
+TraceScroller::TraceScroller(QWidget *parent):
QwtPlot(parent), isInitialized(false), drawingProperties(false, false,
ColorGrouping::PhaseType)
{
@@ -53,7 +53,7 @@ PornoTraceScroller::PornoTraceScroller(QWidget *parent):
canvasClip->attach(this);
}
-void PornoTraceScroller::init(TraceNavigator *navigator, TracePlot *tracePlot)
+void TraceScroller::init(TraceNavigator *navigator, TracePlot *tracePlot)
{
Q_ASSERT(isInitialized == false);
isInitialized = true;
@@ -76,7 +76,7 @@ void PornoTraceScroller::init(TraceNavigator *navigator, TracePlot *tracePlot)
}
-void PornoTraceScroller::setUpTracePlotItem()
+void TraceScroller::setUpTracePlotItem()
{
TracePlotItem *tracePlotItem = new TracePlotItem(transactions, *navigator,
drawingProperties);
@@ -84,7 +84,7 @@ void PornoTraceScroller::setUpTracePlotItem()
tracePlotItem->attach(this);
}
-void PornoTraceScroller::setUpDrawingProperties()
+void TraceScroller::setUpDrawingProperties()
{
drawingProperties.numberOfRanks = navigator->GeneralTraceInfo().numberOfRanks;
drawingProperties.numberOfBanks = navigator->GeneralTraceInfo().numberOfBanks;
@@ -96,14 +96,14 @@ void PornoTraceScroller::setUpDrawingProperties()
}
-void PornoTraceScroller::setUpAxis()
+void TraceScroller::setUpAxis()
{
setAxisScale(yLeft, -1, navigator->GeneralTraceInfo().numberOfBanks + 2, 1.0);
axisScaleDraw(yLeft)->enableComponent(QwtAbstractScaleDraw::Labels, false );
axisScaleDraw(yLeft)->enableComponent(QwtAbstractScaleDraw::Ticks, false );
}
-void PornoTraceScroller::connectNavigatorQ_SIGNALS()
+void TraceScroller::connectNavigatorQ_SIGNALS()
{
QObject::connect(navigator, SIGNAL(currentTraceTimeChanged()), this,
SLOT(currentTraceTimeChanged()));
@@ -113,15 +113,15 @@ void PornoTraceScroller::connectNavigatorQ_SIGNALS()
SLOT(selectedTransactionsChanged()));
}
-Timespan PornoTraceScroller::GetCurrentTimespan()
+Timespan TraceScroller::GetCurrentTimespan()
{
traceTime deltaOnTracePlot = navigator->GeneralTraceInfo().span.End() -
tracePlot->ZoomLevel();
- traceTime deltaOnPornoTraceScroller = navigator->GeneralTraceInfo().span.End() -
+ traceTime deltaOnTraceScroller = navigator->GeneralTraceInfo().span.End() -
zoomLevel;
traceTime newBegin = static_cast
- (tracePlot->GetCurrentTimespan().Begin() * (1.0 * deltaOnPornoTraceScroller) /
+ (tracePlot->GetCurrentTimespan().Begin() * (1.0 * deltaOnTraceScroller) /
deltaOnTracePlot);
Timespan span(newBegin, newBegin + zoomLevel);
@@ -133,7 +133,7 @@ Timespan PornoTraceScroller::GetCurrentTimespan()
}
-void PornoTraceScroller::getAndDrawComments()
+void TraceScroller::getAndDrawComments()
{
for (const auto &pair : navigator->getComments()) {
const Comment &comment = pair.second;
@@ -151,18 +151,18 @@ void PornoTraceScroller::getAndDrawComments()
*
*/
-void PornoTraceScroller::selectedTransactionsChanged()
+void TraceScroller::selectedTransactionsChanged()
{
replot();
}
-void PornoTraceScroller::colorGroupingChanged(ColorGrouping colorGrouping)
+void TraceScroller::colorGroupingChanged(ColorGrouping colorGrouping)
{
drawingProperties.colorGrouping = colorGrouping;
replot();
}
-void PornoTraceScroller::currentTraceTimeChanged()
+void TraceScroller::currentTraceTimeChanged()
{
Timespan spanOnTracePlot = tracePlot->GetCurrentTimespan();
canvasClip->setInterval(spanOnTracePlot.Begin(), spanOnTracePlot.End());
@@ -172,21 +172,21 @@ void PornoTraceScroller::currentTraceTimeChanged()
replot();
}
-void PornoTraceScroller::commentsChanged()
+void TraceScroller::commentsChanged()
{
detachItems(QwtPlotItem::Rtti_PlotMarker);
getAndDrawComments();
replot();
}
-void PornoTraceScroller::tracePlotZoomChanged()
+void TraceScroller::tracePlotZoomChanged()
{
zoomLevel = tracePlot->ZoomLevel() * tracePlotEnlargementFactor;
if (zoomLevel > navigator->GeneralTraceInfo().span.timeCovered())
zoomLevel = navigator->GeneralTraceInfo().span.timeCovered();
}
-bool PornoTraceScroller::eventFilter( QObject *object, QEvent *event )
+bool TraceScroller::eventFilter( QObject *object, QEvent *event )
{
if (object == canvas()) {
static bool clipDragged = false;
diff --git a/DRAMSys/traceAnalyzer/presentation/pornotracescroller.h b/DRAMSys/traceAnalyzer/presentation/tracescroller.h
similarity index 93%
rename from DRAMSys/traceAnalyzer/presentation/pornotracescroller.h
rename to DRAMSys/traceAnalyzer/presentation/tracescroller.h
index 98f5a97b..b9166f2e 100644
--- a/DRAMSys/traceAnalyzer/presentation/pornotracescroller.h
+++ b/DRAMSys/traceAnalyzer/presentation/tracescroller.h
@@ -35,8 +35,8 @@
* Matthias Jung
*/
-#ifndef PORNOTRACESCROLLER_H
-#define PORNOTRACESCROLLER_H
+#ifndef TRACESCROLLER_H
+#define TRACESCROLLER_H
#include
#include
@@ -45,7 +45,7 @@
#include "traceplot.h"
-class PornoTraceScroller : public QwtPlot
+class TraceScroller : public QwtPlot
{
Q_OBJECT
private:
@@ -67,7 +67,7 @@ private:
TraceDrawingProperties drawingProperties;
public:
- PornoTraceScroller(QWidget *parent = NULL);
+ TraceScroller(QWidget *parent = NULL);
void init(TraceNavigator *navigator, TracePlot *tracePlot);
Timespan GetCurrentTimespan();
@@ -80,4 +80,4 @@ public Q_SLOTS:
};
-#endif // PORNOTRACESCROLLER_H
+#endif // TraceScroller_H
diff --git a/DRAMSys/traceAnalyzer/tracefiletab.cpp b/DRAMSys/traceAnalyzer/tracefiletab.cpp
index bf0ff6ef..a0d638f5 100644
--- a/DRAMSys/traceAnalyzer/tracefiletab.cpp
+++ b/DRAMSys/traceAnalyzer/tracefiletab.cpp
@@ -75,9 +75,9 @@ void TraceFileTab::initNavigatorAndItsDependentWidgets(QString path)
ui->traceplot->init(navigator);
- ui->pornoTraceScroller->init(navigator, ui->traceplot);
+ ui->traceScroller->init(navigator, ui->traceplot);
connect(this, SIGNAL(colorGroupingChanged(ColorGrouping)),
- ui->pornoTraceScroller, SLOT(colorGroupingChanged(ColorGrouping)));
+ ui->traceScroller, SLOT(colorGroupingChanged(ColorGrouping)));
ui->selectedTransactionTree->init(navigator);
//ui->debugMessages->init(navigator,ui->traceplot);
diff --git a/DRAMSys/traceAnalyzer/tracefiletab.h b/DRAMSys/traceAnalyzer/tracefiletab.h
index 3bef247c..5629a6c5 100644
--- a/DRAMSys/traceAnalyzer/tracefiletab.h
+++ b/DRAMSys/traceAnalyzer/tracefiletab.h
@@ -43,7 +43,7 @@
#include
#include "presentation/tracenavigator.h"
#include "presentation/traceplot.h"
-#include "presentation/pornotracescroller.h"
+#include "presentation/tracescroller.h"
namespace Ui {
class TraceFileTab;
diff --git a/DRAMSys/traceAnalyzer/tracefiletab.ui b/DRAMSys/traceAnalyzer/tracefiletab.ui
index e3d18d6f..d6951f1b 100644
--- a/DRAMSys/traceAnalyzer/tracefiletab.ui
+++ b/DRAMSys/traceAnalyzer/tracefiletab.ui
@@ -38,7 +38,7 @@
-
-
+
4
@@ -162,9 +162,9 @@
- PornoTraceScroller
+ TraceScroller
QListView
- presentation/pornotracescroller.h
+ presentation/tracescroller.h
CommentTreeWidget