SoCs can be implemented as an application-specific integrated circuit ( ASIC ) or by using a field-programmable gate array ( FPGA ) . SoCs can be implemented as an application-specific integrated circuit ( ASIC ) or using a field-programmable gate array ( FPGA ) .