【技术分享】MCU+FPGA原理和市场概况

日期:2022-02-23 作者:亿方嘉业 返回列表

MCUMicrocontroller的缩写,中文翻译是微控制器,可以简单理解为集成在单一芯片上的微型计算机,它有运算器、控制器、存储器、总线及其他外设,采用存储程序执行的方式,对MCU的编程就是对其中的ROM写入程序,系统上电后ROM中的程序会像计算机内存中的程序一样得到逐条地执行。MCU相当于一个微型的计算机芯片,因此,也有地方把MCU称为单片机。MCU用途比较广,几乎所有电子产品都可以找到MCU的身影。

FPGAField Programmable Gate Array的缩写,中文翻译为现场可编程门阵列,它是在硅片上预先设计实现的具有可编程特性的集成电路,它能够按照设计人员的需求配置为指定的电路结构,让客户不必依赖由芯片制造商设计和制造的 ASIC 芯片。广泛应用在ASIC原型验证、网络通信、汽车电子、工业控制、航空航天、视频监控、数据中心等领域。

从以上描述来看,MCUFPGA两者之间的差异还是很大的。

1、结构上的区别

MCU是一种微处理器,类似于电脑CPU,通常采用哈佛总线结构,或者冯诺依曼结构,对单片机的编程很大程度上要考虑到它的内核架构(比如ARM内核)和各个寄存器的作用。FPGA的结构是基于查找表(LUT)的结构,LUT本质上就是一个RAMFPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发EDA软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。FPGA可以看作是纯粹的数字电路,其程序不用考虑芯片的结构,自由度非常大。从 FPGA 内部结构来看,主要包括:可编程输入/输出单元(I/O)、可编程逻辑块(LC)、 完整的时钟管理(CMT)、嵌入块式 RAMBRAM)、布线资源、内嵌的底层功能单元和专用硬件模块等。

2、代码的执行方式上的区别

MCU无论是哈佛总线结构或者冯诺依曼结构均为取指到执行,指令是顺序执行的(即使是中断/异常,其发生后的中断服务程序也是顺序执行的);而FPGA是基于逻辑门和触发器的,它是并行执行方式,没有取指到执行这种操作。简单来说,就是通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能,数字电路中所有逻辑门和触发器均可以实现,它适合真正意义上的并行任务处理。FPGA程序在编译后实际上是转换为内部的连线表,相当于FPGA内部提供了大量的与非门、或非门、触发器等基本数字逻辑器件,编程决定了有多少器件被使用以及它们之间的连接方式。通过编程,用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重新配置的特性,使得硬件的功能可以像软件一样通过编程来修改。只要FPGA规模够大,这些数字器件理论上能形成一切数字系统,包括MCU,甚至CPU。因FPGA是纯数字电路,在抗干扰和速度性能上有很大优势。

既然MCUFPGA有如此大的差异,那么有没有一些应用需要同时使用到MCUFPGA?答案是肯定的。比如,有的应用同时需要有灵活的控制和外设接口(比如USB接口等),同时需要支持高速并行运算,如FFT等,那么就要考虑使用MCU+FPGA的系统架构,FPGA适合并行处理,性能可以比同样主频的MCU高出上百倍,一般MCU+FPGA异构架构都是把密集运算交FPGA,而MCU处理逻辑复杂的业务。这种MCU+FPGA系统往往要求开发人员不仅要熟悉MCU软硬件开发,也需要熟悉FPGA的程序设计,更为关键的是能够设计MCUFPGA之间的数据交互模式,常见方式有并行总线方式,实现MCUFPGA之间的通信,或者通过MCUFPGA在线进行配置。典型的MCU+FPGA系统的产品案例,如下图1

 

1 MCU+FPGA架构的产品案例

针对上述这样的产品应用中同时需要使用MCUFPGA的情形,今天就来详细介绍我们的主角,它就是来自国产半导体厂商安路科技小而美MCU+FPGA Soc – ELF2系列。ELF2内部包含了FPGA资源,并且内嵌了一个ARM Cortex-M3硬核IP及丰富的外设资源。

FPGA资源包含LUT4/5混合逻辑架构,分布式RAM支持,16路全局时钟,最大达670Kbits BRAM1518*18 DSPLUT规模高达4480。如下图2

 

2 ELF2 Soc FPGA基本特性

Cortex-M3 MCU内核最高主频125MHz4Mbit SPI Flash48KB片上SRAMQSPI接口支持内置/外置SPI Flash操作,集成TimerWDTDMAUARTSPII2CADCRTC等外设。MCU特性如下:

 

ELF2M45 Soc资源及其封装:

安路科技ELF2 Soc系统框图,如下图3

 

3 ELF2 Soc系统框图

根据LUT规模大小和RAM资源大小不同,ELF2系列有不同的型号,ELF2 Soc选型表如下表1所示:

 

1 ELF2 Soc选型表

ELF2的封装形式也很丰富,一颗芯片可以实现由MCUFPGA两颗芯片实现的功能,大大简化了系统设计,还节省了PCB面积。EFL2封装形式如下表2所示:

 

2 ELF2的封装形式

ELF2 Soc内部的MCUFPGA4种数据交互方式,用户可以灵活选择其中任何一种,如下图4所示:

1  AHB Slave

2  共享SRAM(SRAM32KByte)

3  16GPIO

4  16位用户寄存器(MCU->FPGA)


 

4 ELF2 Soc MCUFPGA交互方式

ELF2 Soc软件开发需要同时使用到安路科技自主开发的TD EDA软件和ARM公司的Keil MDK软件,安路科技提供大量的Demo演示示例程序供客户参考和学习。ELF2 Soc软件开发流程如下图5所示:

5 ELF2 Soc软件开发流程

TD EDA软件和ARMKeil MDK软件界面如下图6所示:

 

6 TD EDA软件和ARMKeil MDK软件界面

为了方便用户评估和学习,针对ELF2 Soc系列,安路科技特别推出了专用的开发板,如下图7所示:

 

7 ELF2 Soc开发板

最后,我想谈谈关于国产FPGA替代的观点。

全球 FPGA 市场在 5G AI 两大驱动因子下未来预计享有稳健增长,而目前国内 100 亿人民币市场中,国产厂商占比仅 4%,国产率极低,市场空间和潜力巨大;叠加中美贸易战的因素,终端制造业特别是各个行业的头部客户正在寻求国产替代,避免全盘使用美国公司生产的芯片,国产替代进程有明显加速的趋势。FPGA行业技术门槛较高,产业比较集中,国产厂商替代增速有望显著高于行业平均。国外三大FPGA厂家分别是XilinxIntel(收购原Altera)及Lattice,国内 FPGA 厂商主要有 8 家:京微齐力安路科技、紫光同创、国微电子、成都华微电子、智多晶、广州高云半导体、上海复旦微电子。


返回列表