identity[n_] := Table[i===j, {i, n}, {j, n}]

inner[a_, b_] := Inner[And, a, b, Or]

or[a_, b_] := MapThread[Or, {a,b}, 2]

Components[a_] :=
    With[{n = Length[a]},
        Nest[ Function[{ai}, or[ai, inner[ai, a]]], identity[n], n ]
    ]

circuit1 =
  {{False, True, True, False, False, False}, 
   {True, False, True, True, False, False}, 
   {True, True, False, True, False, False}, 
   {False, True, True, False, True, False}, 
   {False, False, False, True, False, True}, 
   {False, False, False, False, True, False}}

circuit2 =
  {{False, True, True, False, False, False}, 
   {True, False, True, True, False, False}, 
   {True, True, False, True, False, False}, 
   {False, True, True, False, False, False}, 
   {False, False, False, False, False, True}, 
   {False, False, False, False, True, False}}

Null
