def IFC0(params):
    return m.Product.from_fields('IFC0', {'port0': m.In(m.Bits[params['param0']]), 'port1': m.In(m.Bits[params['param0']]), 'port2': m.In(m.Array[(params['param0'], m.Bits[2])]), 'port3': m.In(m.Bits[params['param0']]), 'port4': m.In(m.Bit), 'port5': m.In(m.Bit), 'port7': m.In(m.Bit), 'port8': m.In(m.Bit), 'port9': m.In(m.Bit), 'port10': m.In(m.Bits[m.bitutils.clog2(params['param0'])])})
def IFC0(params):
    return m.Product.from_fields('IFC0', {'port0': m.In(m.Bits[params['param0']]), 'port1': m.In(m.Bits[params['param0']]), 'port2': m.In(m.Array[(params['param0'], m.Bits[2])]), 'port3': m.In(m.Bits[params['param0']]), 'port4': m.In(m.Bit), 'port5': m.In(m.Bit), 'port7': m.In(m.Bit), 'port8': m.In(m.Bit), 'port9': m.In(m.Bit), 'port10': m.In(m.Bits[m.bitutils.clog2(params['param0'])])})