第一章 FPGA简介
1 什么是FPGA
2 FPGA的工作原理
3 更为复杂的FPGA架构
4 带嵌入式处理器的FPGA
我们可以用FPGA中的普通可编程构造做的事情之一是,使用其中的一部分实现一个或多个软处理器内核。当然,你可以实现不同规模的处理器。举例来说,你可以创建一个或多个8位的处理器,加上一个或多个16位或32位的软处理器—所有处理器都在同一器件中。如果FPGA供应商希望提供一个占用较少硅片面积、消耗较低功率但性能更高的处理器,解决方案是将它实现为硬内核。现在流行的ZYNQ,就是由赛灵思公司推出的,内部集成了ARM硬核的FPGA芯片。考虑下面所示这个例子:图 3这个芯片完全以硬内核方式实现的双路ARM Cortex-A9微控制器子系统(运行时钟高达1GHz,包含浮点引擎,片上缓存,计数器,定时器等),以及种类广泛的硬内核接口功能(SPI,I2C,CAN等),还有一个硬内核的动态内存控制器,所有这些组件都利用大量传统的可编程构造和大量的通用输入输出(GPIO)引脚进行了性能增强。如果需要高速、高性能的处理器,并且需要实现逻辑编程时,传统的方法是在电路板上放置处理器(如ARM、DSP等)和FPGA,ARM或者DSP工程师实现软件部分,FPGA工程师实现可编程逻辑部分,两者协同合作。现在最新的方案,就可以使用ZYNQ一个芯片,以更低的功耗、更高的速度实现上面的功能。如果是ZYNQ单芯片方案,是不是意味着只需要软件工程师或者FPGA工程师独立工作就可以了呢?笔者现时所了解的情况是:FPGA工程师负责搭建周边电路,如ARM的接口、时钟配置等,还负责可编程逻辑部分的开发。而软件部分仍然还是软件工程师负责。这主要原因是,FPGA逻辑开发和软件开发都是专业性比较强的技能,非常少的工程师能同时掌握这两个技能。当然,这里说的掌握性能,是专业性的、能应用到企业项目的技能,只是接触一下的不算。5 编程方式
FPGA是由存放在片内的RAM来设置其工作状态的,因此工作室需要对片内RAM进行编程。用户可根据不同的配置模式,采用不同的编程方式。FPGA有如下几种配置模式:1、并行模式:并行PROM、Flash配置FPGA;2、主从模式:一片PROM配置多片FPGA;3、串行模式:串行PROM配置FPGA;4、外设模式:将FPGA作为微处理器的外设,由微处理器对其编程。目前,FPGA市场占有率最高的两大公司Xlinx和Altera生产的FPGA都是基于SRAM工艺的,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA将外部存储其中的数据读入片内RAM,完成配置后,进入工作状态;掉电后FPGA恢复为白片,内部逻辑消失。这样FPGA不仅能反复使用,还无需专门的FPGA编程器,只需通用的EPROM、PROM编程器即可。