SOC和MCU的区别在哪里？
MCU，即微控制器，是以前的一种做法，类似于单片机，只是集成了一些更多的功能模块，它本质上仍是一个完整的单片机，有处理器，有各种接口，所有的开发都是基于已经存在的系统架构，应用者要做的就是开发软件程序和加外部设备。
SOC，是个整体的设计方法概念，它指的是一种芯片设计方法，集成了各种功能模块，每一种功能都是由硬件描述语言设计程序，然后在SOC内由电路实现的；每一个模块不是一个已经设计成熟的ASIC“器件”，只是利用芯片的一部分资源去实现某种传统的功能。这种功能是没有限定的，可以是存储器，当然也可以是处理器，如果这片SOC的系统目标就是处理器，那么做成的SOC就是一个MCU；如果要做的是一个完整的带有处理器的系统，那么MCU就是整个SOC中的一个模块，一个IP。SOC可以做成批量生产的通用器件，如MCU；也可以针对某一对象专门设计，可以集成任何功能，不像MCU那样有自身架构的限定。它的体积可以很少，特殊设计的芯片可以根据需要减少体积、降低功耗，在比较大的范围内不受硬件架构的限制（当然，它也是会受芯片自身物理结构的限制，如晶圆类型、大小等）。
SOC的一大特点就是其在仿真时可以连同硬件环境一起仿真，仿真工具不只支持对软件程序的编译调试，同时也支持对硬件架构的编译调试，如果不满意硬件架构设计，想要加一个存储器，或是减少一个接口都可以通过程序直接更改，这一点，MCU的设计方法是无法实现的，MCU的方法中，硬件架构是固定的，是不可更改的，多了只能浪费，少了也只能在软件上想办法或是再加，存储空间不够可以再加，如果是接口不够则只能在软件上想办法复用。仿真之后可以通过将软、硬件程序下载到FPGA上进行实际硬件调试，以便更真实地进行器件测试。
如果硬件调试成功后直接投片生产成“固定结构的芯片”，则其为普通的SOC；如果其硬件就是基于FPGA的，也就是说它是“用FPGA做为最终实现”的，它在以后也可以随时进行硬件升级与调试的，我们就叫它为SOPC的设计方法，所以说SOPC是SOC的一种解决方案。
SOPC设计灵活、高效，且具有成品的硬件可重构特性（SOC在调试过程中也可硬件重构），它的适用性可以很广，针对不同的对象，它可以进行实时的结构调整，如减少程序存储空间、增加接口数目等，这一附加价值是任何固定结构IC所无法具备的，但它的价格可能会比批量生产的固定结构IC要贵得多！