查看: 540|回复: 0
收起左侧

一文区分FPGA和STM32,硬件工程师必看

[复制链接]
发表于 2018-10-18 09:53:18 | 显示全部楼层 |阅读模式 简体中文繁體中文
什么是FPGA?

一、FPGA原理
FPGA中的基本逻辑单元是CLB模块,一个CLB模块一般包含若干个基本的查找表、寄存器和多路选择器资源,因此FPGA中的逻辑表达式基于LUT的。
FPGA内部的编程信息一般存储在SRAM单元中,因此通常的FPGA都是基于SRAM的,所以掉电后信息会丢失,下次上电需要先配置才能使用。

二、FPGA产品的速度等级
速度等级一般反映一款芯片的性能,速度等级越高,说明芯片内的逻辑延时和布线延时越小,设计的性能要求也越容易达到,随之付出的成本也越大。
对Xilinx FPGA,速度等级一般有“-1”、“-2”、“-3”等,数字越大,速度等级越高,芯片价钱也越贵。
对Intel FPGA,速度等级一般有“-6”、“-7”、“-8”,数字越小表示速度等级越高、价钱越贵。

三、FPGA内部资源
逻辑资源块是FPGA内部最重要的资源,Xilinx称其为CLB(configurable logic block);7系列中,FPGA内部三大主要资源:可编程逻辑单元、可编程I/O单元、布线资源。

1534053602674049bb5ad73

1、可配置逻辑单元(configurable logic block)
CLB在FPGA中最为丰富,由两个SLICE构成,SLICE分为SLICEL(L:Logic)和SLICEM(M:Memory),因此CLB可分为CLBLL和CLBLM两类;

15340536023991c2dc0f4f3

SLICEL和SLICEM内部都包含4个6输入查找表(LUT6)、3个数据选择器(MUX)、1个进位链(carry chain)和8个触发器(Flip-Flop);

1534053602899593eb9cc07

2、存储单元(Block RAM)
Block RAM可以被配置为同步、异步、单端口、双端口的RAM或FIFO,或者ROM;

3、运算单元(DSP48E1)
当FPGA需要复杂的运算时,会使用DSP48E1,例如乘法;

什么是STM32?

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex®-M0,M0+,M3, M4和M7内核。
它具有以下三个特点:
•新的基于ARM内核的32位MCU系列
–标准的ARM架构 –内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Cortex-M内核
•超前的体系结构
–高性能 –低电压 –低功耗 –创新的内核以及外设
•简单易用/自由/低风险
Cortex-M3系列属于ARMv7架构

ARMv7架构定义了三大分工明确的系列:
“A”系列:面向尖端的基于虚拟内存的操作系统和用户应用
“R”系列:针对实时系统;
“M”系列:对微控制器。

STM32F1属于Cortex-M系列中的Cortex-M3内核,采用ARMv7-M架构。STM32F4属于Cortex-M4系列采用ARMv7-ME架构。Cortex-A5/A8采用ARMv7-A架构。传统的ARM7系列采用的是ARMv4T架构。

15340536031639b2d089c90

那么STM32与ARM有什么区别呢?

15340536034123979957806

STM32和ARM有什么区别

STM32的命名规则

1534053603649c1d174bfef

STM32的应用场景

1534053603851879c8f67df

STM32的应用场景还有很多,这里只是简单地列出一些。

总的来说STM32具有如下优势:
1)极高的性能:主流的Cortex内核。
2)丰富合理的外设,合理的功耗,合理的价格。
3)强大的软件支持:丰富的软件包。
4)全面丰富的技术文档。
5)芯片型号种类多,覆盖面广。
6)强大的用户基础:最先成功试水CM3芯片的公司,积累了大批的用户群体,为其领先做铺垫。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则