单片机和soc有什么区别?

2019-04-15 18:48发布

单片机和soc的区别::
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要贵得多。 SoC为System on Chip的缩写,称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容,用VHDL或Verilog语言编程多吧。 原来用过实验箱上些的Soc实验箱里面就是xilinx的FPGA(Field-Programmable Gate Array即现场可编程门阵列)。它的硬件(FPGA)是可编程的,是一个通过硬件描述语言FPGA芯片上自定义集成电路的过程;但单片机的硬件是不可以用软件改变的;

单片机是比较低端的控制器。大多用汇编或C可以编程。单片机设计属软件范畴;它的硬件(单片机芯片)是固定的,通过软件编程语言描述软件指令在硬件芯片上的执行;