start cleaning up SDC generator with new RRGSB data structure

This commit is contained in:
tangxifan 2019-06-10 10:57:26 -06:00
parent 17bc7fc296
commit e31407f693
3 changed files with 21 additions and 26 deletions

View File

@ -286,7 +286,8 @@ void vpr_fpga_verilog(t_vpr_setup vpr_setup,
verilog_generate_sdc_pnr(sram_verilog_orgz_info, sdc_dir_path,
Arch, &vpr_setup.RoutingArch,
num_rr_nodes, rr_node, rr_node_indices, rr_indexed_data,
nx, ny);
nx, ny,
vpr_setup.FPGA_SPICE_Opts.compact_routing_hierarchy);
}
/* dump_verilog_sdc_file(); */

View File

@ -1052,6 +1052,7 @@ void verilog_generate_sdc_disable_unused_sbs_muxs(FILE* fp) {
return;
}
static
void verilog_generate_sdc_disable_unused_sbs_muxs(FILE* fp, int LL_nx, int LL_ny) {
int ix, iy, side, itrack, imux;
@ -1156,8 +1157,7 @@ void verilog_generate_sdc_disable_unused_cbs_muxs(FILE* fp, int LL_nx, int LL_ny
return;
}
static
void verilog_generate_sdc_disable_unused_cbs_muxs(FILE* fp,
int LL_nx, int LL_ny) {
@ -1844,6 +1844,7 @@ void verilog_generate_sdc_disable_unused_grids(FILE* fp,
return;
}
static
void verilog_generate_sdc_disable_unused_grids_muxs(FILE* fp,
int LL_nx, int LL_ny,
t_grid_tile** LL_grid,
@ -1915,9 +1916,9 @@ void dump_sdc_one_clb_muxes(FILE* fp,
* of the rr_graph to comment the active path and the fan_in and name
* inside of the pb_graph to dump the name of the port we need to disable*/
void dump_sdc_rec_one_pb_muxes(FILE* fp,
char* grid_instance_name,
t_rr_graph* rr_graph,
t_pb_graph_node* cur_pb_graph_node) {
char* grid_instance_name,
t_rr_graph* rr_graph,
t_pb_graph_node* cur_pb_graph_node) {
int mode_index;
int ipb, jpb;
@ -1941,10 +1942,10 @@ void dump_sdc_rec_one_pb_muxes(FILE* fp,
return;
}
void dump_sdc_pb_graph_node_muxes (FILE* fp,
char* grid_instance_name,
t_rr_graph* rr_graph,
t_pb_graph_node* pb_graph_node) {
void dump_sdc_pb_graph_node_muxes(FILE* fp,
char* grid_instance_name,
t_rr_graph* rr_graph,
t_pb_graph_node* pb_graph_node) {
int i_pin, i_port;
// Input pins
for (i_port = 0; i_port< pb_graph_node->num_input_ports; i_port++) {
@ -1967,10 +1968,10 @@ void dump_sdc_pb_graph_node_muxes (FILE* fp,
return;
}
void dump_sdc_pb_graph_pin_muxes (FILE* fp,
char* grid_instance_name,
t_rr_graph* rr_graph,
t_pb_graph_pin pb_graph_pin) {
void dump_sdc_pb_graph_pin_muxes(FILE* fp,
char* grid_instance_name,
t_rr_graph* rr_graph,
t_pb_graph_pin pb_graph_pin) {
int i_fan_in, datapath_id, fan_in;
int level_changing = 0;
t_spice_model* mux_spice_model;
@ -1983,7 +1984,7 @@ void dump_sdc_pb_graph_pin_muxes (FILE* fp,
/* There are three types of interconnection: same level, going down a level, going up a level
* Since we check the fan_in, we need to get the right input edge mode */
if (0 == pb_graph_pin.num_input_edges || 0 == pb_graph_pin.num_output_edges) {
return;
return;
}
if (pb_graph_pin.input_edges[cur_mode_index]->interconnect->parent_mode != pb_graph_pin.output_edges[cur_mode_index]->interconnect->parent_mode) {
if (pb_graph_pin.input_edges[cur_mode_index]->interconnect->parent_mode != cur_mode) {
@ -2174,7 +2175,8 @@ void verilog_generate_sdc_pnr(t_sram_orgz_info* cur_sram_orgz_info,
int LL_num_rr_nodes, t_rr_node* LL_rr_node,
t_ivec*** LL_rr_node_indices,
t_rr_indexed_data* LL_rr_indexed_data,
int LL_nx, int LL_ny) {
int LL_nx, int LL_ny,
boolean compact_routing_hierarchy) {
t_sdc_opts sdc_opts;
/* Initialize */

View File

@ -8,7 +8,8 @@ void verilog_generate_sdc_pnr(t_sram_orgz_info* cur_sram_orgz_info,
int LL_num_rr_nodes, t_rr_node* LL_rr_node,
t_ivec*** LL_rr_node_indices,
t_rr_indexed_data* LL_rr_indexed_data,
int LL_nx, int LL_ny);
int LL_nx, int LL_ny,
boolean compact_routing_hierarchy);
void verilog_generate_sdc_analysis(t_sram_orgz_info* cur_sram_orgz_info,
char* sdc_dir,
@ -19,15 +20,6 @@ void verilog_generate_sdc_analysis(t_sram_orgz_info* cur_sram_orgz_info,
t_block* LL_block,
boolean compact_routing_hierarchy);
void verilog_generate_sdc_disable_unused_sbs_muxs(FILE* fp, int LL_nx, int LL_ny);
void verilog_generate_sdc_disable_unused_cbs_muxs(FILE* fp, int LL_nx, int LL_ny);
void verilog_generate_sdc_disable_unused_grids_muxs(FILE* fp,
int LL_nx, int LL_ny,
t_grid_tile** LL_grid,
t_block* LL_block);
void dump_sdc_one_clb_muxes(FILE* fp,
char* grid_instance_name,
t_rr_graph* rr_graph,