An ASIC, an application specific IC or chip is targeted towards a use case (or use cases). It means it is specifically designed functionality which can be sold in high volume. An ASIC consists of analog and/or digital functionality connected to the pads of the chip. These pads are connected via bond wires to the pins visible outside a chip . Examples are stepper motor drivers in the automotive industry, xDSL modems in consumer electronics, VPU’s for vision processing and deep learning. An ASIC is a fixed design (hence the first time right goal for cost reasons). Routing of the logic is final, but most of the time, small bugs can be fixed with spare gates (good tactic to foresee those) and a partial new mask set (reconnecting).
An FPGA is an ASIC. An FPGA can be reconfigured. Many different digital designs can be put on the same chip by downloading a new FPGA bitstream. An FPGA has cells and interconnection which is determined by that bitstream. The bitstream makes the necessary connections inside to implement your design. Since the FPGA is configurability built on top of an ASIC, they are less optimal in gates per mm2, power and speed than having the same design in ASIC. But for development, prototyping (for ASIC) and for low volume products, FPGA is a cheaper solution than an ASIC. An ASIC is only cost effective in high volume, especially in the latest technology.
An ASIC and FPGA are fully custom design solutions, you can make a system on chip, but you can also make just a digital or analog chip (analog will be ASIC only, not FPGA). it doesn’t need to be a system on chip, it doesn’t need to have an embedded processor per se. While a PSoc( terminology from Cypress), is a programmable system on chip with programmable controller, analog and digital, it has a certain degree of configurability but less than a full custom design And a PSoC is always a system around one of their MCU’s and digital/analog stuff. But it is off-the-shelf, like an FPGA, you can order it right now if you want. Granted, an FPGA also has analog built-in (DDR PHY, LVDS, PLL, …) but you can put any processor on the FPGA (NIOS, ARM, LEON, …) while with PSoC, it comes with an MCU that is part of the solution.
Conclusion: there are many details that are common or different, but you get an idea of where they are used for.