aboutsummaryrefslogtreecommitdiffstats
path: root/passes
diff options
context:
space:
mode:
authorAndrew Zonenberg <azonenberg@drawersteak.com>2017-02-14 08:29:37 -0800
committerAndrew Zonenberg <azonenberg@drawersteak.com>2017-02-14 08:29:37 -0800
commit6fed2dc996a57b0f7c4205e1d76da865dd410982 (patch)
treeab980df43bc10a3aeefb2220b17885e210eeb0a7 /passes
parent203b521a781ccc4c8dba05d2cc73e4625bcf2a8e (diff)
parent4fb800717101c65344fe78a365b8ae6ca0a90d9e (diff)
downloadyosys-6fed2dc996a57b0f7c4205e1d76da865dd410982.tar.gz
yosys-6fed2dc996a57b0f7c4205e1d76da865dd410982.tar.bz2
yosys-6fed2dc996a57b0f7c4205e1d76da865dd410982.zip
Merge https://github.com/cliffordwolf/yosys
Diffstat (limited to 'passes')
-rw-r--r--passes/hierarchy/hierarchy.cc5
-rw-r--r--passes/techmap/techmap.cc9
2 files changed, 11 insertions, 3 deletions
diff --git a/passes/hierarchy/hierarchy.cc b/passes/hierarchy/hierarchy.cc
index 4786aacaf..3534cbcdb 100644
--- a/passes/hierarchy/hierarchy.cc
+++ b/passes/hierarchy/hierarchy.cc
@@ -625,9 +625,12 @@ struct HierarchyPass : public Pass {
for (auto module : design->modules())
for (auto cell : module->cells())
{
+ if (GetSize(cell->parameters) != 0)
+ continue;
+
Module *m = design->module(cell->type);
- if (m == nullptr)
+ if (m == nullptr || m->get_bool_attribute("\\blackbox"))
continue;
for (auto &conn : cell->connections())
diff --git a/passes/techmap/techmap.cc b/passes/techmap/techmap.cc
index 6784f48c3..b351d3be8 100644
--- a/passes/techmap/techmap.cc
+++ b/passes/techmap/techmap.cc
@@ -305,10 +305,15 @@ struct TechmapWorker
// approach that yields nicer outputs:
// replace internal wires that are connected to external wires
- if (w->port_output)
+ if (w->port_output && !w->port_input) {
port_signal_map.add(c.second, c.first);
- else
+ } else
+ if (!w->port_output && w->port_input) {
port_signal_map.add(c.first, c.second);
+ } else {
+ module->connect(c);
+ extra_connect = SigSig();
+ }
for (auto &attr : w->attributes) {
if (attr.first == "\\src")