ice40: split out cells_map.v into ff_map.v
[yosys.git] / kernel / rtlil.h
index 17f038e36806c8126e5fbbf195242ee85535d4e9..11c45bbec77904615e85d669cfd5b2a181fb1bcb 100644 (file)
@@ -656,6 +656,8 @@ struct RTLIL::AttrObject
 {
        dict<RTLIL::IdString, RTLIL::Const> attributes;
 
+       bool has_attribute(RTLIL::IdString id) const;
+
        void set_bool_attribute(RTLIL::IdString id, bool value=true);
        bool get_bool_attribute(RTLIL::IdString id) const;
 
@@ -663,12 +665,19 @@ struct RTLIL::AttrObject
                return get_bool_attribute(ID::blackbox) || (!ignore_wb && get_bool_attribute(ID::whitebox));
        }
 
+       void set_string_attribute(RTLIL::IdString id, string value);
+       string get_string_attribute(RTLIL::IdString id) const;
+
        void set_strpool_attribute(RTLIL::IdString id, const pool<string> &data);
        void add_strpool_attribute(RTLIL::IdString id, const pool<string> &data);
        pool<string> get_strpool_attribute(RTLIL::IdString id) const;
 
-       void set_src_attribute(const std::string &src);
-       std::string get_src_attribute() const;
+       void set_src_attribute(const std::string &src) {
+               set_string_attribute(ID::src, src);
+       }
+       std::string get_src_attribute() const {
+               return get_string_attribute(ID::src);
+       }
 };
 
 struct RTLIL::SigChunk
@@ -1082,7 +1091,8 @@ public:
        std::vector<RTLIL::SigSig> connections_;
 
        RTLIL::IdString name;
-       pool<RTLIL::IdString> avail_parameters;
+       idict<RTLIL::IdString> avail_parameters;
+       dict<RTLIL::IdString, RTLIL::Const> parameter_default_values;
        dict<RTLIL::IdString, RTLIL::Memory*> memories;
        dict<RTLIL::IdString, RTLIL::Process*> processes;