我眼中的FPGA

1、FPGA与MCU学习曲线和应用灵活性

MCU的学习曲线并不陡峭,所用的开发工具都可以轻易获得,开发和调试的过程简单,设计很容易上手。不过,MCU在处理复杂事务、运行速度和接口的多样性上是很有限的。对于一般的项目,由于功能既不复杂,也没有重要的处理需求,MCU是很理想的选择。

FPGA是包含可编程逻辑元件(LE)的集成电路,其可编程单元已经内置在芯片中,功能十分灵活。例如, 这些LE 可以通过编程作为加速器或者ARM来提高系统性能,可以通过编程实现新的标准或算法,也可以根据需求添加各种通信接口,所有这些都有助于降低系统成本并延长产品生命周期。但是这种设计的缺点是学习去下陡峭,对于MCU开发人员来说,在刚刚学习FPGA的时候,因IO端口和编码方式的变换,学起来会比较困难。

另外, FPGA的另一个设计特点: 它可以在单个芯片上实现多个PCB板上芯片的功能,从而,使得后续的设计更加灵活。

2、FPGA的IO口是并行处理的

对于MCU来说,在同一时刻,只能实现一个或一组IO的翻转,并且所有的IO只有一个电压标准。

而FPGA的IO是并行处理的,并且不同bank的IO可以遵循不同电压标准。实现FPGA开发的语言verilog是并行语言

3、怎样规划FPGA开发

规划MCU开发 :在规划MCU开发的时候,我们首先确定需要哪些接口,如SPI,I2C,Wi-Fi等,然后根据MCU的电压,引脚数量,提供的通信接口,支持的库和价格作出MCU的选型。

规划FPGA开发 :在使用FPGA的时候,所有的通信接口都是依靠编程来实现的,因此无需考虑通信接口的限制。其限制因素是逻辑单元的数量,因为所需要的端口,软核或存储器单元都是基于这些逻辑单元创建的。因此,需要做权衡的是,逻辑单元数目越大,FPGA的能力越强,其成本也越高。虽然FPGA通常具有较高的初始成本,但由于它们可以实现多个芯片组件的功能,并且还能够节省大量板上空间,所以综合来看其成本并不高。

4、如何确定我的设计需要多少逻辑单元

答案是,这取决与对IP核的需求。IP核由协议、功能、代码及外部模块执行的特定任务完成。几乎所有的FPGA都是由逻辑单元LE,寄存器和I/O口bank组成·。具体来说:

逻辑单元LE是可编程的,是FPGA内部的门阵列,每一个逻辑单元都具有一定数量的查找表,触发器和多路复用器。

寄存器是一组触发器,能够保存数据并实现诸如定时器等功能。

I / O bank是一组连接外部电路的输入/输出引脚。每个bank都有一个独立的电压标准,并且有电流大小的限制。

5、 IP核的重要性

IP核实现了一种能够代替物理设备的能力,这些设备包括MCU、通信控制器或者其他一些我会使用另一个芯片实现的东西。

6、 Intel Cyclone V SoC DE10 Nano开发套件

为什么提及这个?对于一些同时使用FPGA和ARM的项目,这个套件会比较方便。英特尔Cyclone V SoC将FPGA与双核ARM Cortex A9结合,允许使用多种方式配置FPGA,开发套件包含显示和通信端口、按钮和开关、引脚映射和快速配置工具、JTAG调试器以及来自Terasic和Intel的文档说明和指南。

猜你喜欢

转载自blog.csdn.net/baidu_37973494/article/details/82930256