diff options
author | gatecat <gatecat@ds0.me> | 2021-03-23 16:51:28 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-23 16:51:28 +0000 |
commit | 8c85e648dfdb73d69d4adbc6420e706d21d61f93 (patch) | |
tree | 231196fc8f46173d34e5691d42cd18b7121a0886 /fpga_interchange/cell_parameters.h | |
parent | b7bf2c706fcb24242b93b1993c8073d82d4028bb (diff) | |
parent | ae71206e1f9522542b919b0dd5b3e634a680dc03 (diff) | |
download | nextpnr-8c85e648dfdb73d69d4adbc6420e706d21d61f93.tar.gz nextpnr-8c85e648dfdb73d69d4adbc6420e706d21d61f93.tar.bz2 nextpnr-8c85e648dfdb73d69d4adbc6420e706d21d61f93.zip |
Merge pull request #639 from litghost/parameter_iteration
Update parameter processing based on new DeviceResources metadata
Diffstat (limited to 'fpga_interchange/cell_parameters.h')
-rw-r--r-- | fpga_interchange/cell_parameters.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/fpga_interchange/cell_parameters.h b/fpga_interchange/cell_parameters.h new file mode 100644 index 00000000..3507a81f --- /dev/null +++ b/fpga_interchange/cell_parameters.h @@ -0,0 +1,55 @@ +/* + * nextpnr -- Next Generation Place and Route + * + * Copyright (C) 2021 Symbiflow Authors + * + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#ifndef CELL_PARAMETERS_H +#define CELL_PARAMETERS_H + +#include <regex> + +#include "chipdb.h" +#include "dynamic_bitarray.h" +#include "hash_table.h" +#include "nextpnr_namespaces.h" +#include "property.h" + +NEXTPNR_NAMESPACE_BEGIN + +struct Context; + +struct CellParameters +{ + CellParameters(); + void init(const Context *ctx); + DynamicBitarray<> parse_int_like(const Context *ctx, IdString cell_type, IdString parameter, + const Property &property) const; + bool compare_property(const Context *ctx, IdString cell_type, IdString parameter, const Property &property, + IdString value_to_compare) const; + + HashTables::HashMap<std::pair<IdString, IdString>, const CellParameterPOD *> parameters; + + std::regex verilog_binary_re; + std::regex verilog_hex_re; + std::regex c_binary_re; + std::regex c_hex_re; +}; + +NEXTPNR_NAMESPACE_END + +#endif /* CELL_PARAMETERS_H */ |