interchange: Add macro param map rules to chipdb
Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
parent
012b60c9ca
commit
237b27e50b
@ -337,6 +337,28 @@ NPNR_PACKED_STRUCT(struct MacroParameterPOD {
|
|||||||
int32_t value; // constid
|
int32_t value; // constid
|
||||||
});
|
});
|
||||||
|
|
||||||
|
enum MacroParamRuleType
|
||||||
|
{
|
||||||
|
PARAM_MAP_COPY = 0, // copy parameter value
|
||||||
|
PARAM_MAP_SLICE = 1, // take a slice of bits
|
||||||
|
PARAM_MAP_TABLE = 2, // lookup strings in table
|
||||||
|
};
|
||||||
|
|
||||||
|
NPNR_PACKED_STRUCT(struct MacroParamMapRulePOD {
|
||||||
|
// name of parameter on parent primitive
|
||||||
|
int32_t prim_param; // constid
|
||||||
|
// name of instance to set parameter on
|
||||||
|
int32_t inst_name; // constid
|
||||||
|
// name of parameter on macro expansion instance
|
||||||
|
int32_t inst_param; // constid
|
||||||
|
// type of mapping to use to derive new value
|
||||||
|
int32_t rule_type; // MacroParamRuleType
|
||||||
|
// for slice mappings, the bits to collect
|
||||||
|
RelSlice<uint32_t> slice_bits;
|
||||||
|
// for table mappings, the lookup table to use
|
||||||
|
RelSlice<MacroParameterPOD> map_table;
|
||||||
|
});
|
||||||
|
|
||||||
NPNR_PACKED_STRUCT(struct MacroCellInstPOD {
|
NPNR_PACKED_STRUCT(struct MacroCellInstPOD {
|
||||||
int32_t name; // instance name constid
|
int32_t name; // instance name constid
|
||||||
int32_t type; // instance type constid
|
int32_t type; // instance type constid
|
||||||
@ -376,6 +398,8 @@ NPNR_PACKED_STRUCT(struct MacroExpansionPOD {
|
|||||||
int32_t macro_name;
|
int32_t macro_name;
|
||||||
// list of parameters to (optionally) match
|
// list of parameters to (optionally) match
|
||||||
RelSlice<MacroParameterPOD> param_matches;
|
RelSlice<MacroParameterPOD> param_matches;
|
||||||
|
// how to derive parameters for expansion instances
|
||||||
|
RelSlice<MacroParamMapRulePOD> param_rules;
|
||||||
});
|
});
|
||||||
|
|
||||||
NPNR_PACKED_STRUCT(struct ChipInfoPOD {
|
NPNR_PACKED_STRUCT(struct ChipInfoPOD {
|
||||||
|
Loading…
Reference in New Issue
Block a user