Skip to content

Commit 0b632f7

Browse files
Merge branch 'master' into feature/clock_tree_extractor
2 parents abc94cb + c52b95f commit 0b632f7

74 files changed

Lines changed: 1241 additions & 356 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ubuntu24.04.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,14 @@ jobs:
9898
# Execute the build. You can specify a specific target with "--target <NAME>"
9999
run: |
100100
cd build
101+
echo "==> Disk usage before clean"
102+
df -h .
103+
sudo rm -rf /usr/share/dotnet
104+
sudo rm -rf /opt/ghc
105+
sudo rm -rf /usr/local/lib/android
106+
sudo rm -rf /opt/hostedtoolcache
107+
echo "==> Disk usage after clean"
108+
df -h .
101109
ninja
102110
env:
103111
CCACHE_DIR: ${{runner.workspace}}/.ccache

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
All notable changes to this project will be documented in this file.
33

44
## [Unreleased]
5+
* added information to GUI setting file so that widgets position and size from previous session gets restored
6+
* added option to focus on pin in pin context menu
7+
* plugins
8+
* fixed bug in waveform viewer, make sure that deleting a controller causes closing the tab
9+
* fixed broken initialization of DANA plugin when starting via CLI
10+
* changed behavior of GUI plugin manager to keep only those plugins loaded which are requested by user
11+
* fixed bug in the bitorder propagation algorithm that would assign a wrong propagation order if pingroups with direction none were given as parameters
12+
13+
## [4.5.0](v4.5.0) - 2025-09-23 12:00:00+02:00 (urgency: medium)
514
* plugins
615
* simulation
716
* added simulation engine property `timeout_after_sec`
@@ -22,7 +31,6 @@ All notable changes to this project will be documented in this file.
2231
* updated the hgl format version for the provided `.hgl` libraries and added the `ordered` attribute to all pin groups, which defaults to false
2332
* added scrollbar in `logic evaluator` plugin
2433
* added `dataflow::Result::create_modules` function that takes nothing but group IDs for easier module creation
25-
* fixed a bug in the bitorder propagation algorithm that would assign a wrong propagation order if pingroups with direction none were given as parameters
2634
* added feature to import precompiled binary plugins in GUI plugin manager
2735
* added switch to GUI plugin manager to activate/deactivate menu contribution for plugin
2836
* build process

include/hal_core/netlist/boolean_function/parser.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ namespace hal
3838
Liberty,
3939
/// refers to the 'Standard' Boolean function parser
4040
Standard,
41+
/// as 'Liberty' above, but removing space first
42+
LibertyNoSpace
4143
};
4244

4345
/// TokenType refers to a token identifier for a Boolean function string.

plugins/dataflow_analysis/src/api/result.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ namespace hal
283283
write_path /= "graph.dot";
284284
}
285285

286-
if (write_path.extension() != "dot")
286+
if (write_path.extension() != ".dot")
287287
{
288288
log_info("dataflow", "replacing invalid file extension '{}' with '.dot' ...", write_path.extension().string());
289289
write_path.replace_extension("dot");
@@ -357,7 +357,7 @@ namespace hal
357357
write_path /= "groups.txt";
358358
}
359359

360-
if (write_path.extension() != "txt")
360+
if (write_path.extension() != ".txt")
361361
{
362362
log_info("dataflow", "replacing invalid file extension '{}' with '.txt' ...", write_path.extension().string());
363363
write_path.replace_extension("txt");

plugins/dataflow_analysis/src/plugin_dataflow.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ namespace hal
6262
UNUSED(args);
6363

6464
dataflow::Configuration config(nl);
65+
config.with_control_pin_types({PinType::clock, PinType::enable, PinType::reset, PinType::set});
66+
config.with_gate_types({GateTypeProperty::ff});
67+
6568
std::string path;
6669

6770
if (args.is_option_set("--path"))
@@ -103,6 +106,19 @@ namespace hal
103106
return false;
104107
}
105108

109+
if (!path.empty())
110+
{
111+
auto grouping = grouping_res.get();
112+
if (const auto res = grouping.write_dot(path); res.is_error())
113+
{
114+
log_error("dataflow", "could not write .dot file:\n{}", res.get_error().get());
115+
}
116+
if (const auto res = grouping.write_txt(path); res.is_error())
117+
{
118+
log_error("dataflow", "could not write .txt file:\n{}", res.get_error().get());
119+
}
120+
}
121+
106122
return true;
107123
}
108124

plugins/dot_viewer/deps/QGVCore/QGVScene.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ QGVScene::QGVScene(QObject *parent)
8181

8282
QGVScene::~QGVScene()
8383
{
84+
for (QGraphicsItem* item : items())
85+
item->setSelected(false);
8486
gvFreeLayout(_context->context(), _graph->graph());
8587
agclose(_graph->graph());
8688
gvFreeContext(_context->context());

plugins/dot_viewer/include/dot_viewer/dot_graphics_view.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
#include <QGraphicsView>
3030
#include <QWheelEvent>
31+
#include <QMouseEvent>
3132

3233
namespace hal
3334
{
@@ -42,9 +43,14 @@ namespace hal
4243
void handleZoomOutShortcut();
4344

4445
protected:
45-
virtual void wheelEvent(QWheelEvent* event);
46+
void wheelEvent(QWheelEvent* event) override;
47+
void mousePressEvent(QMouseEvent* event) override;
48+
void mouseMoveEvent(QMouseEvent* event) override;
4649

4750
private:
51+
QPoint mMovePosition;
52+
Qt::KeyboardModifier mPanModifier;
53+
4854
void scaleWithinLimits(qreal scaleFactor);
4955
};
5056
}

plugins/dot_viewer/include/dot_viewer/dot_viewer.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ namespace hal
5959
static DotViewer* getDotviewerInstance();
6060
QString filename() const { return mFilename; }
6161
QString creatorPlugin() const { return mCreatorPlugin; }
62+
bool loadDotFile(const QString& fileName, const QString& creator = QString());
6263

6364
public Q_SLOTS:
6465
void handleOpenInputFileByName(const QString& fileName, const QString& creator = QString());
@@ -84,7 +85,7 @@ namespace hal
8485
Q_OBJECT
8586
public:
8687
DotViewerCallFromTread(QObject* parent = nullptr) : QObject(parent) {;}
87-
void emitOpenInputFileByName(DotViewer* callee, QString filename, QString plugin);
88+
bool openInputFileByName(DotViewer* callee, QString filename, QString plugin);
8889
Q_SIGNALS:
8990
void callOpenInputFileByName(QString filename, QString plugin);
9091
};

plugins/dot_viewer/include/dot_viewer/interaction/dataflow_interaction.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
#include <QHash>
3232

3333
namespace hal {
34+
class Module;
35+
3436
class DataflowInteraction : public QGVInteraction {
3537
Q_OBJECT
3638
public:
@@ -41,6 +43,7 @@ namespace hal {
4143

4244
private Q_SLOTS:
4345
void handleHALSelectionChanged(void* sender);
46+
void handleHALModuleNameChanged(Module* m);
4447
void handleQGVSelectionChanged();
4548
void handleEdgeContextMenu(QGVEdge* edge);
4649

plugins/dot_viewer/include/dot_viewer/interaction/solve_fsm_interaction.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ namespace hal {
3737
Q_OBJECT
3838
public:
3939
SolveFsmInteraction(QGVScene* parent);
40+
~SolveFsmInteraction();
4041

4142
void registerNode(QGVNode* node) override;
4243
void registerEdge(QGVEdge* edge) override;

0 commit comments

Comments
 (0)