CELL halfadder_8 { CELLTYPE = block ; ATTRIBUTE { adder } PIN [7:0] a_in { DIRECTION = input ; } PIN [7:0] out { DIRECTION = output ; } FUNCTION { BEHAVIOR { out = a_in + c_in ; } } TEMPLATE carry_propagate { GROUP low_bits { 0 : } VECTOR ( ?! a_in[low_bits] -> ?! out[] ) { ENERGY = 1 ; } } carry_propagate = dynamic { high_bit = 7 ; } carry_propagate = dynamic { high_bit = 6 ; } carry_propagate = dynamic { high_bit = 5 ; } carry_propagate = dynamic { high_bit = 4 ; } carry_propagate = dynamic { high_bit = 3 ; } carry_propagate = dynamic { high_bit = 2 ; } carry_propagate = dynamic { high_bit = 1 ; } carry_propagate = dynamic { high_bit = 0 ; } } // end CELL halfadder_8