blob: 65be7086496b983d940d8bbfc1bf45c122d5acde [file] [log] [blame]
#ifndef PARAMETERS_H
#define PARAMETERS_H
#include "netlist_writer.h"
namespace fasm {
// Utility class emit parameters from eblif
class Parameters {
public:
// Adds a parameter mapping between an eblif parameter (e.g. .param <param> <value>)
// to FASM feature.
void AddParameter(const std::string &eblif_parameter, const std::string &fasm_feature);
// Return a FASM feature directive for the given parameter and value.
std::string EmitFasmFeature(const std::string &eblif_parameter, const std::string &value);
private:
struct FeatureParameter {
size_t width;
std::string feature;
};
std::unordered_map<std::string, FeatureParameter> features_;
size_t FeatureWidth(const std::string &feature) const;
};
} // namespace fasm
#endif // PARAMETERS_H