summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-11-24 17:17:21 +0100
committerClifford Wolf <clifford@clifford.at>2013-11-24 17:17:21 +0100
commit609caa23b5e12547c043dc4a1827d1a531af1992 (patch)
tree297e7d5b77b28eebccc3bd8e7af318f174165744 /kernel
parent1e6836933d8b74d391f816ccdcf71c972f8b1db1 (diff)
Implemented correct handling of signed module parameters
Diffstat (limited to 'kernel')
-rw-r--r--kernel/rtlil.cc2
-rw-r--r--kernel/rtlil.h3
2 files changed, 3 insertions, 2 deletions
diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc
index bd73fe53..afd7ca2f 100644
--- a/kernel/rtlil.cc
+++ b/kernel/rtlil.cc
@@ -260,7 +260,7 @@ RTLIL::Module::~Module()
delete it->second;
}
-RTLIL::IdString RTLIL::Module::derive(RTLIL::Design*, std::map<RTLIL::IdString, RTLIL::Const>)
+RTLIL::IdString RTLIL::Module::derive(RTLIL::Design*, std::map<RTLIL::IdString, RTLIL::Const>, std::set<RTLIL::IdString>)
{
log_error("Module `%s' is used with parameters but is not parametric!\n", id2cstr(name));
}
diff --git a/kernel/rtlil.h b/kernel/rtlil.h
index c7f9cf12..a4c3008b 100644
--- a/kernel/rtlil.h
+++ b/kernel/rtlil.h
@@ -264,7 +264,7 @@ struct RTLIL::Module {
std::vector<RTLIL::SigSig> connections;
RTLIL_ATTRIBUTE_MEMBERS
virtual ~Module();
- virtual RTLIL::IdString derive(RTLIL::Design *design, std::map<RTLIL::IdString, RTLIL::Const> parameters);
+ virtual RTLIL::IdString derive(RTLIL::Design *design, std::map<RTLIL::IdString, RTLIL::Const> parameters, std::set<RTLIL::IdString> signed_parameters);
virtual void update_auto_wires(std::map<RTLIL::IdString, int> auto_sizes);
virtual size_t count_id(RTLIL::IdString id);
virtual void check();
@@ -300,6 +300,7 @@ struct RTLIL::Cell {
RTLIL::IdString type;
std::map<RTLIL::IdString, RTLIL::SigSpec> connections;
std::map<RTLIL::IdString, RTLIL::Const> parameters;
+ std::set<RTLIL::IdString> signed_parameters;
RTLIL_ATTRIBUTE_MEMBERS
void optimize();