diff --git a/openfpga/test_vpr_arch/k6_frac_N10_tileable_adder_register_scan_chain_40nm.xml b/openfpga/test_vpr_arch/k6_frac_N10_tileable_adder_register_scan_chain_40nm.xml index 3b79b1df0..0bce05d74 100644 --- a/openfpga/test_vpr_arch/k6_frac_N10_tileable_adder_register_scan_chain_40nm.xml +++ b/openfpga/test_vpr_arch/k6_frac_N10_tileable_adder_register_scan_chain_40nm.xml @@ -720,13 +720,10 @@ - - - diff --git a/vpr/src/pack/prepack.cpp b/vpr/src/pack/prepack.cpp index cf9ccdd6d..dd9d1da3f 100644 --- a/vpr/src/pack/prepack.cpp +++ b/vpr/src/pack/prepack.cpp @@ -1557,6 +1557,13 @@ static t_pb_graph_pin* get_connected_primitive_pin(const t_pb_graph_pin* cluster * will be only one pin connected to the very first adder in the cluster. */ static void get_all_connected_primitive_pins(const t_pb_graph_pin* cluster_input_pin, std::vector& connected_primitive_pins) { + + /* Xifan Tang: Skip pins belong to unpackable modes */ + if ( (nullptr != cluster_input_pin->parent_node->pb_type->parent_mode) + && (false == cluster_input_pin->parent_node->pb_type->parent_mode->packable) ) { + return; + } + for (int iedge = 0; iedge < cluster_input_pin->num_output_edges; iedge++) { const auto& output_edge = cluster_input_pin->output_edges[iedge]; for (int ipin = 0; ipin < output_edge->num_output_pins; ipin++) {