What's the difference between Programmable SoC and SoC FPGA ?
I may be mistaken, but I would say the main difference to me is the name you use. A programmable SoC is effectively a uProcessor with an integrated FPGA (or the other way around...) and a SoC FPGA would follow the same definition (Zync would be an example). I think Xilinx uses the first name and Altera the second. But please wait for further answers just in case some people have more to comment...
In standard SoC (or programmable SoC) you have fixed IOs, fixed hardware accelerators that you can access from within a processor.
Xilinx and Intel PSG (formerly Altera) offer SoC with an FPGA side.
Xilinx call it "Zynq All Programmable SoC" (APSoC) created 5-6 years ago (28nm technology), and the new one "Zynq Ultrascale+ MultiProcessing SoC" (MPSoC) (16nm technology).
Intel PSG call it SoC FPGA (28nm, 20nm and 14nm)
On the FPGA based SoC you can define yourself the hardware accelerators and the type of IOs you want to implement. It can be image processing algorithms, PWM, motor control, mathematical function, ... really whatever you want. The same device can be used in many different applications.
That's why within Xilinx we call it APSoC: you program the hardware, the IOs and the Software. The next generation (Zynq U+ MPSoC) is even more programmable as there exists some fixed hardware accelerators like a GPU, HEVC/H.264 codec, as well as a quad core A53 combined with a dual core R5 for the software part.
If you want to try this have a look to Digilent boards (Arty Z7, Pynq) or the fantastic (I hope, I did not get it yet!) Snickerdoodle from krktl (http://krtkl.com/).
Perhaps for the benefit of, can you then confirm that both terms are the same from your understanding? Programmable SoC and SoC FPGA?
I had a look to Internet:
PSoC or Programmable SoC is the term used by Cypress for their processor on which they appended configurable analog and digital blocks, and programmable routing and interconnect.
There is no FPGA part here, just some analog and digital hardware block that can be used and configured from within the processor.
So as a summary:
Programmable SoC is a processor with some analog and hardware blocks (OpAmp, DAC/ADC, Gain, ...) and programmable routing in between thes blocks.
SoC FPGA (Altera/Intel PSG) and All Programmable SoC (Xilinx) are similar technologies where you have a processor with a programmable logic area which is tightly connected to it.
Thanks a lot oliviert :)