一文区分FPGA和STM32,硬件工程师一定用得上!
什么是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单元、布线资源。
1、可配置逻辑单元(configurable logic block)
CLB在FPGA中最为丰富,由两个SLICE构成,SLICE分为SLICEL(L:Logic)和SLICEM(M:Memory),因此CLB可分为CLBLL和CLBLM两类;
SLICEL和SLICEM内部都包含4个6输入查找表(LUT6)、3个数据选择器(MUX)、1个进位链(carry chain)和8个触发器(Flip-Flop);
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架构。
那么STM32与ARM有什么区别呢?
STM32和ARM有什么区别
STM32的命名规则
STM32的应用场景
STM32的应用场景还有很多,这里只是简单地列出一些。
总的来说STM32具有如下优势:
1)极高的性能:主流的Cortex内核。
2)丰富合理的外设,合理的功耗,合理的价格。
3)强大的软件支持:丰富的软件包。
4)全面丰富的技术文档。
5)芯片型号种类多,覆盖面广。
6)强大的用户基础:最先成功试水CM3芯片的公司,积累了大批的用户群体,为其领先做铺垫。
以上来源于:电子发烧友网