add option reduce error to warning
This commit is contained in:
parent
f4b087a3a7
commit
539e37118a
|
@ -460,6 +460,10 @@ pcf2place
|
||||||
.. option:: --no_time_stamp
|
.. option:: --no_time_stamp
|
||||||
|
|
||||||
Do not print time stamp in output files
|
Do not print time stamp in output files
|
||||||
|
|
||||||
|
.. option:: --reduce_error_to_warning
|
||||||
|
|
||||||
|
Reduce error to warning while reading commands in pcf file
|
||||||
|
|
||||||
.. option:: --verbose
|
.. option:: --verbose
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,8 @@ constexpr const char COMMENT = '#';
|
||||||
* Return 1 if there are serious errors when parsing data
|
* Return 1 if there are serious errors when parsing data
|
||||||
* Return 2 if fail when opening files
|
* Return 2 if fail when opening files
|
||||||
*******************************************************************/
|
*******************************************************************/
|
||||||
int read_pcf(const char* fname, PcfData& pcf_data) {
|
int read_pcf(const char* fname, PcfData& pcf_data,
|
||||||
|
bool reduce_error_to_warning = false) {
|
||||||
vtr::ScopedStartFinishTimer timer("Read " + std::string(fname));
|
vtr::ScopedStartFinishTimer timer("Read " + std::string(fname));
|
||||||
|
|
||||||
/* Create a file handler */
|
/* Create a file handler */
|
||||||
|
@ -57,17 +58,16 @@ int read_pcf(const char* fname, PcfData& pcf_data) {
|
||||||
pcf_data.set_io_pin(io_id, pin_name);
|
pcf_data.set_io_pin(io_id, pin_name);
|
||||||
} else if (word[0] == COMMENT) { // if it's a comment
|
} else if (word[0] == COMMENT) { // if it's a comment
|
||||||
break; // or ignore the full line comment and move on
|
break; // or ignore the full line comment and move on
|
||||||
} else if (word.find("set_clk") == 0 || word.find("set_reset") == 0) {
|
|
||||||
/* set_clk and set_rest are known commands for Arkangel, disable the
|
|
||||||
* error message for these two commands when call read_pcf function
|
|
||||||
*/
|
|
||||||
break;
|
|
||||||
} else {
|
} else {
|
||||||
/* Reach unknown command for OpenFpga, error out */
|
if (reduce_error_to_warning) {
|
||||||
VTR_LOG_ERROR("Unknown command '%s'!\n", word.c_str());
|
break;
|
||||||
num_err++;
|
} else {
|
||||||
break; // and move onto next line. without this, it will accept
|
/* Reach unknown command for OpenFpga, error out */
|
||||||
// more following values on this line
|
VTR_LOG_ERROR("Unknown command '%s'!\n", word.c_str());
|
||||||
|
num_err++;
|
||||||
|
break; // and move onto next line. without this, it will accept
|
||||||
|
// more following values on this line
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace openfpga {
|
||||||
|
|
||||||
/* Parse a .pcf file through a stream, return an object which contains all the
|
/* Parse a .pcf file through a stream, return an object which contains all the
|
||||||
* data */
|
* data */
|
||||||
int read_pcf(const char* fname, PcfData& pcf_data);
|
int read_pcf(const char* fname, PcfData& pcf_data, bool reduce_error_to_warning = false);
|
||||||
|
|
||||||
} /* End namespace openfpga*/
|
} /* End namespace openfpga*/
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ int pcf2place_wrapper_template(const Command& cmd,
|
||||||
CommandOptionId opt_no_time_stamp = cmd.option("no_time_stamp");
|
CommandOptionId opt_no_time_stamp = cmd.option("no_time_stamp");
|
||||||
CommandOptionId opt_pin_table_dir_convention =
|
CommandOptionId opt_pin_table_dir_convention =
|
||||||
cmd.option("pin_table_direction_convention");
|
cmd.option("pin_table_direction_convention");
|
||||||
|
CommandOptionId opt_reduce_error_to_warning =
|
||||||
|
cmd.option("reduce_error_to_warning");
|
||||||
CommandOptionId opt_verbose = cmd.option("verbose");
|
CommandOptionId opt_verbose = cmd.option("verbose");
|
||||||
|
|
||||||
std::string pcf_fname = cmd_context.option_value(cmd, opt_pcf);
|
std::string pcf_fname = cmd_context.option_value(cmd, opt_pcf);
|
||||||
|
@ -71,7 +73,7 @@ int pcf2place_wrapper_template(const Command& cmd,
|
||||||
|
|
||||||
/* Parse the input files */
|
/* Parse the input files */
|
||||||
openfpga::PcfData pcf_data;
|
openfpga::PcfData pcf_data;
|
||||||
openfpga::read_pcf(pcf_fname.c_str(), pcf_data);
|
openfpga::read_pcf(pcf_fname.c_str(), pcf_data,cmd_context.option_enable(cmd, opt_reduce_error_to_warning));
|
||||||
VTR_LOG("Read the design constraints from a pcf file: %s.\n",
|
VTR_LOG("Read the design constraints from a pcf file: %s.\n",
|
||||||
pcf_fname.c_str());
|
pcf_fname.c_str());
|
||||||
|
|
||||||
|
|
|
@ -599,6 +599,10 @@ ShellCommandId add_pcf2place_command_template(
|
||||||
shell_cmd.add_option("no_time_stamp", false,
|
shell_cmd.add_option("no_time_stamp", false,
|
||||||
"Do not print time stamp in output files");
|
"Do not print time stamp in output files");
|
||||||
|
|
||||||
|
/* Add an option '--reduce_error_to_warning' */
|
||||||
|
shell_cmd.add_option("reduce_error_to_warning", false,
|
||||||
|
"reduce error to warning while reading commands in pcf file");
|
||||||
|
|
||||||
/* Add an option '--verbose' */
|
/* Add an option '--verbose' */
|
||||||
shell_cmd.add_option("verbose", false, "Enable verbose output");
|
shell_cmd.add_option("verbose", false, "Enable verbose output");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue