@@ -1174,14 +1174,18 @@ static void load_atom_pin_mapping(const ClusteredNetlist& clb_nlist) {
11741174 VTR_ASSERT_MSG (gnode->pb_type ->model == atom_ctx.nlist .block_model (blk),
11751175 " Atom block PB must match BLIF model" );
11761176
1177+ // Always assign primary pins
1178+ t_pb_graph_pin* pins;
1179+
11771180 for (int iport = 0 ; iport < gnode->num_input_ports ; ++iport) {
11781181 if (gnode->num_input_pins [iport] <= 0 ) continue ;
1182+ pins = gnode->input_pins [iport];
11791183
1180- const AtomPortId port = atom_ctx.nlist .find_atom_port (blk, gnode-> input_pins [iport] [0 ].port ->model_port );
1184+ const AtomPortId port = atom_ctx.nlist .find_atom_port (blk, pins [0 ].port ->model_port );
11811185 if (!port) continue ;
11821186
11831187 for (int ipin = 0 ; ipin < gnode->num_input_pins [iport]; ++ipin) {
1184- const t_pb_graph_pin* gpin = &gnode-> input_pins [iport] [ipin];
1188+ const t_pb_graph_pin* gpin = &pins [ipin];
11851189 VTR_ASSERT (gpin);
11861190
11871191 set_atom_pin_mapping (clb_nlist, blk, port, gpin);
@@ -1190,12 +1194,13 @@ static void load_atom_pin_mapping(const ClusteredNetlist& clb_nlist) {
11901194
11911195 for (int iport = 0 ; iport < gnode->num_output_ports ; ++iport) {
11921196 if (gnode->num_output_pins [iport] <= 0 ) continue ;
1197+ pins = gnode->output_pins [iport];
11931198
1194- const AtomPortId port = atom_ctx.nlist .find_atom_port (blk, gnode-> output_pins [iport] [0 ].port ->model_port );
1199+ const AtomPortId port = atom_ctx.nlist .find_atom_port (blk, pins [0 ].port ->model_port );
11951200 if (!port) continue ;
11961201
11971202 for (int ipin = 0 ; ipin < gnode->num_output_pins [iport]; ++ipin) {
1198- const t_pb_graph_pin* gpin = &gnode-> output_pins [iport] [ipin];
1203+ const t_pb_graph_pin* gpin = &pins [ipin];
11991204 VTR_ASSERT (gpin);
12001205
12011206 set_atom_pin_mapping (clb_nlist, blk, port, gpin);
@@ -1204,12 +1209,13 @@ static void load_atom_pin_mapping(const ClusteredNetlist& clb_nlist) {
12041209
12051210 for (int iport = 0 ; iport < gnode->num_clock_ports ; ++iport) {
12061211 if (gnode->num_clock_pins [iport] <= 0 ) continue ;
1212+ pins = gnode->clock_pins [iport];
12071213
1208- const AtomPortId port = atom_ctx.nlist .find_atom_port (blk, gnode-> clock_pins [iport] [0 ].port ->model_port );
1214+ const AtomPortId port = atom_ctx.nlist .find_atom_port (blk, pins [0 ].port ->model_port );
12091215 if (!port) continue ;
12101216
12111217 for (int ipin = 0 ; ipin < gnode->num_clock_pins [iport]; ++ipin) {
1212- const t_pb_graph_pin* gpin = &gnode-> clock_pins [iport] [ipin];
1218+ const t_pb_graph_pin* gpin = &pins [ipin];
12131219 VTR_ASSERT (gpin);
12141220
12151221 set_atom_pin_mapping (clb_nlist, blk, port, gpin);
0 commit comments