diff --git a/fpga_flow/arch/fpga_spice/k6_N10_sram_tsmc40nm_TT.xml b/fpga_flow/arch/fpga_spice/k6_N10_sram_tsmc40nm_TT.xml index eee87e4e5..5b409067d 100755 --- a/fpga_flow/arch/fpga_spice/k6_N10_sram_tsmc40nm_TT.xml +++ b/fpga_flow/arch/fpga_spice/k6_N10_sram_tsmc40nm_TT.xml @@ -174,7 +174,7 @@ - + @@ -254,7 +254,7 @@ - + @@ -275,7 +275,7 @@ - + @@ -283,8 +283,7 @@ - - + @@ -296,7 +295,7 @@ - + @@ -307,7 +306,7 @@ - + @@ -347,7 +346,7 @@ - + diff --git a/vpr7_x2p/vpr/SRC/base/read_blif.c b/vpr7_x2p/vpr/SRC/base/read_blif.c index c369a5a93..cabea82e9 100644 --- a/vpr7_x2p/vpr/SRC/base/read_blif.c +++ b/vpr7_x2p/vpr/SRC/base/read_blif.c @@ -523,6 +523,8 @@ static void add_latch(int doall, INP t_model *latch_model) { logical_block[num_logical_blocks - 1].trigger_type = my_strdup(saved_names[2]); /* Store the initial value */ logical_block[num_logical_blocks - 1].init_val = my_atoi(saved_names[4]); + /* Identify clocks */ + logical_block[logical_block[num_logical_blocks - 1].clock_net].is_clock = TRUE; /*END*/ num_latches++; diff --git a/vpr7_x2p/vpr/SRC/base/vpr_types.h b/vpr7_x2p/vpr/SRC/base/vpr_types.h index cfa790ec2..f1f21dece 100755 --- a/vpr7_x2p/vpr/SRC/base/vpr_types.h +++ b/vpr7_x2p/vpr/SRC/base/vpr_types.h @@ -248,6 +248,8 @@ typedef struct s_logical_block { /* for Register/flip-flop */ char* trigger_type; int init_val; + /* To identify if this is a clock */ + int is_clock; } t_logical_block; diff --git a/vpr7_x2p/vpr/SRC/fpga_spice/base/fpga_spice_utils.c b/vpr7_x2p/vpr/SRC/fpga_spice/base/fpga_spice_utils.c index 374d86f5d..eb13ff2cb 100644 --- a/vpr7_x2p/vpr/SRC/fpga_spice/base/fpga_spice_utils.c +++ b/vpr7_x2p/vpr/SRC/fpga_spice/base/fpga_spice_utils.c @@ -6915,7 +6915,7 @@ void stats_spice_muxes_routing_arch(t_llist** muxes_head, case IPIN: /* Have to consider the fan_in only, it is a connection box(multiplexer)*/ assert((node->fan_in > 0)||(0 == node->fan_in)); - if (0 == node->fan_in) { + if ((0 == node->fan_in)||(1 == node->fan_in)) { break; } /* Find the spice_model for multiplexers in connection blocks */ @@ -6931,7 +6931,7 @@ void stats_spice_muxes_routing_arch(t_llist** muxes_head, * or it could be a connection box if previous rr_node is a IPIN or OPIN */ assert((node->fan_in > 0)||(0 == node->fan_in)); - if (0 == node->fan_in) { + if ((0 == node->fan_in)||(1 == node->fan_in)) { break; } /* Find the spice_model for multiplexers in switch blocks*/