[core] adding new command 'append_clock_rr_graph'

This commit is contained in:
tangxifan 2023-02-23 13:30:18 -08:00
parent b78ca69fe5
commit 786b458a27
2 changed files with 58 additions and 0 deletions

View File

@ -182,6 +182,26 @@ int link_arch_template(T& openfpga_ctx, const Command& cmd,
return CMD_EXEC_SUCCESS;
}
/********************************************************************
* Top-level function to append a clock network to VPR's routing resource graph, including:
* - Routing tracks dedicated to clock network
* - Programmable switches to enable reconfigurability of clock network
* -
*******************************************************************/
template <class T>
int append_clock_rr_graph_template(T& openfpga_ctx, const Command& cmd,
const CommandContext& cmd_context) {
vtr::ScopedStartFinishTimer timer(
"Append clock network to routing resource graph");
CommandOptionId opt_verbose = cmd.option("verbose");
/* TODO */
return CMD_EXEC_SUCCESS;
}
} /* end namespace openfpga */
#endif

View File

@ -628,6 +628,34 @@ ShellCommandId add_write_openfpga_clock_arch_command_template(
return shell_cmd_id;
}
/********************************************************************
* - Add a command to Shell environment: append_clock_rr_graph
* - Add associated options
* - Add command dependency
*******************************************************************/
template <class T>
ShellCommandId add_append_clock_rr_graph_command_template(
openfpga::Shell<T>& shell, const ShellCommandClassId& cmd_class_id,
const std::vector<ShellCommandId>& dependent_cmds, const bool& hidden) {
Command shell_cmd("append_clock_rr_graph");
/* Add an option '--verbose' */
shell_cmd.add_option("verbose", false, "Show verbose outputs");
/* Add command 'pb_pin_fixup' to the Shell */
ShellCommandId shell_cmd_id = shell.add_command(
shell_cmd,
"Append clock network to the routing resource graph built by VPR.",
hidden);
shell.set_command_class(shell_cmd_id, cmd_class_id);
shell.set_command_execute_function(shell_cmd_id, append_clock_rr_graph_template<T>);
/* Add command dependency to the Shell */
shell.set_command_dependency(shell_cmd_id, dependent_cmds);
return shell_cmd_id;
}
template <class T>
void add_setup_command_templates(openfpga::Shell<T>& shell,
const bool& hidden = false) {
@ -729,6 +757,16 @@ void add_setup_command_templates(openfpga::Shell<T>& shell,
ShellCommandId link_arch_cmd_id = add_link_arch_command_template<T>(
shell, openfpga_setup_cmd_class, link_arch_dependent_cmds, hidden);
/********************************
* Command 'append_clock_rr_graph'
*/
/* The 'append_clock_rr_graph' command should NOT be executed before
* 'read_openfpga_clock_arch' */
std::vector<ShellCommandId> append_clock_rr_graph_dependent_cmds;
append_clock_rr_graph_dependent_cmds.push_back(read_openfpga_clock_arch_cmd_id);
add_append_clock_rr_graph_command_template<T>(shell, openfpga_setup_cmd_class,
append_clock_rr_graph_dependent_cmds, hidden);
/********************************
* Command 'write_gsb'
*/