114 lines
3.5 KiB
C++
114 lines
3.5 KiB
C++
/******************************************************************************
|
|
* Memember functions for data structure FabricVerilogOption
|
|
******************************************************************************/
|
|
#include "fabric_verilog_options.h"
|
|
|
|
#include "vtr_assert.h"
|
|
#include "vtr_log.h"
|
|
|
|
/* begin namespace openfpga */
|
|
namespace openfpga {
|
|
|
|
/**************************************************
|
|
* Public Constructors
|
|
*************************************************/
|
|
FabricVerilogOption::FabricVerilogOption() {
|
|
output_directory_.clear();
|
|
include_timing_ = false;
|
|
explicit_port_mapping_ = false;
|
|
compress_routing_ = false;
|
|
print_user_defined_template_ = false;
|
|
default_net_type_ = VERILOG_DEFAULT_NET_TYPE_NONE;
|
|
time_stamp_ = true;
|
|
use_relative_path_ = false;
|
|
verbose_output_ = false;
|
|
}
|
|
|
|
/**************************************************
|
|
* Public Accessors
|
|
*************************************************/
|
|
std::string FabricVerilogOption::output_directory() const {
|
|
return output_directory_;
|
|
}
|
|
|
|
bool FabricVerilogOption::include_timing() const { return include_timing_; }
|
|
|
|
bool FabricVerilogOption::time_stamp() const { return time_stamp_; }
|
|
|
|
bool FabricVerilogOption::use_relative_path() const {
|
|
return use_relative_path_;
|
|
}
|
|
|
|
bool FabricVerilogOption::explicit_port_mapping() const {
|
|
return explicit_port_mapping_;
|
|
}
|
|
|
|
bool FabricVerilogOption::compress_routing() const { return compress_routing_; }
|
|
|
|
bool FabricVerilogOption::print_user_defined_template() const {
|
|
return print_user_defined_template_;
|
|
}
|
|
|
|
e_verilog_default_net_type FabricVerilogOption::default_net_type() const {
|
|
return default_net_type_;
|
|
}
|
|
|
|
bool FabricVerilogOption::verbose_output() const { return verbose_output_; }
|
|
|
|
/******************************************************************************
|
|
* Private Mutators
|
|
******************************************************************************/
|
|
void FabricVerilogOption::set_output_directory(const std::string& output_dir) {
|
|
output_directory_ = output_dir;
|
|
}
|
|
|
|
void FabricVerilogOption::set_include_timing(const bool& enabled) {
|
|
include_timing_ = enabled;
|
|
}
|
|
|
|
void FabricVerilogOption::set_use_relative_path(const bool& enabled) {
|
|
use_relative_path_ = enabled;
|
|
}
|
|
|
|
void FabricVerilogOption::set_time_stamp(const bool& enabled) {
|
|
time_stamp_ = enabled;
|
|
}
|
|
|
|
void FabricVerilogOption::set_explicit_port_mapping(const bool& enabled) {
|
|
explicit_port_mapping_ = enabled;
|
|
}
|
|
|
|
void FabricVerilogOption::set_compress_routing(const bool& enabled) {
|
|
compress_routing_ = enabled;
|
|
}
|
|
|
|
void FabricVerilogOption::set_print_user_defined_template(const bool& enabled) {
|
|
print_user_defined_template_ = enabled;
|
|
}
|
|
|
|
void FabricVerilogOption::set_default_net_type(
|
|
const std::string& default_net_type) {
|
|
/* Decode from net type string */;
|
|
if (default_net_type ==
|
|
std::string(
|
|
VERILOG_DEFAULT_NET_TYPE_STRING[VERILOG_DEFAULT_NET_TYPE_NONE])) {
|
|
default_net_type_ = VERILOG_DEFAULT_NET_TYPE_NONE;
|
|
} else if (default_net_type ==
|
|
std::string(VERILOG_DEFAULT_NET_TYPE_STRING
|
|
[VERILOG_DEFAULT_NET_TYPE_WIRE])) {
|
|
default_net_type_ = VERILOG_DEFAULT_NET_TYPE_WIRE;
|
|
} else {
|
|
VTR_LOG_WARN(
|
|
"Invalid default net type: '%s'! Expect ['%s'|'%s']\n",
|
|
default_net_type.c_str(),
|
|
VERILOG_DEFAULT_NET_TYPE_STRING[VERILOG_DEFAULT_NET_TYPE_NONE],
|
|
VERILOG_DEFAULT_NET_TYPE_STRING[VERILOG_DEFAULT_NET_TYPE_WIRE]);
|
|
}
|
|
}
|
|
|
|
void FabricVerilogOption::set_verbose_output(const bool& enabled) {
|
|
verbose_output_ = enabled;
|
|
}
|
|
|
|
} /* end namespace openfpga */
|