一文区分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芯片的公司,积累了大批的用户群体,为其领先做铺垫。

本文转载自:电子发烧友网
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编邮箱:cathy@eetrend.com 进行处理。

最新文章