传统的控制系统都是在微处理器的控制下进行的来执行各种控制和数据的处理应用,这些微处理器包括单片机、ARM、PowerPC等等。随着FPGA的使用普遍性,越来越多的系统用FPGA作为高速数据接口粘合以及做一些协同处理。在第一章有讲过,出现了微处理器+FPGA的片上系统的架构。
通常这样的架构是在单板上设计,如图XX所示的一个系统,从图上看到,除了微处理器外还有DSP器件、FLASH与SDRAM存储器。系统安排CPU做整体的控制,FPGA做一些接口逻辑粘合和一些信号的预处理,DSPs做一个复杂的算法,FLASH和SDRAM分别作为程序存储和数据缓存。这样的系统安排在一块或者数块PCB板上,不仅调试难度大,而且系统维护也不是方便。关键的问题是电路板上如果有这么些器件的话,成本是一个问题,而且占用了相当的面积,增加了很多焊点,每一个焊点都是对电路的稳定性构成威胁。
于是,提出了一种基于FPGA的片上系统的替代的方案,如图XXX所示,FPGA 内部集成了CPU、DSP 以及各种接口控制模块,对有些存储量要求不大的系统甚至外部的FLASH 和SDRAM 都集成了。这样做的思想会给带来带来哪些挑战和机遇呢?这是我们接下来需要探讨的问题。
人类在习惯于旧事物而面临任何一项新事物的时候都会从内心里感到一种抗拒和惊恐,当发现新事物确实是很美好的时候,又是发自内心的去面临各种挑战直到对美好事物的占有或是满足。在这里面对从传统嵌入式开发转到这种全新的开发模式领域里,又会有哪些迷宫和多少奶酪呢?
传统的嵌入式开发完全是纯软件形式,而在FPGA平台上,首先要面对的是怎么去规划FPGA,哪些是作为CPU,如何实现?其实是系统中有硬件开发部分和软件开发部分,如何在设计的时候支持这种硬件开发语言和软件开发语言混合验证,以保证系统正常工作?当然这些问题在现在来讲已经解决了,但是我们能够带着这些问题来学习在后面的知识,这些问题在后面支持资源里都能够得到解答。
那么机遇在哪?刚才有提到,首先如果一个系统有如图XX类似的需求的时候,采用FPGA内嵌的方式占用的板级面积小,焊点少系统稳定,同时成本相比低,当然这里并不包括一些只需控制器做一些控制的系统和产品,如果将FPGA纯当一个控制器用的话,成本相对单片机、ARM来说还是有些高,这也是FPGA开发的一个问题,但是低端的FPGA芯片也能支持嵌入式处理器,资源有限。当哪天FPGA价格能够等同于这些微处理器的时候,这些微处理器也将面临退役了。其实是它可以很灵活的配置硬件外设,用来做控制系统验证,对系统构架设计者来说,非常有用。最后是对一个工程师来讲,不但要会做硬件程序开发还得会软件开发,于公司来讲,更愿意招这样的全才。
基于FPGA的嵌入式的优点只有用的时候才能真正感受,同时,你也能感受其缺点。虽说在建好硬件平台的之后是软件开发,但是如果你是一个习惯于软件开发的工程师,相信这里的软件开发会让你的意志力得到很大的提高,这种方式软件开发编译过程比传统嵌入式开发要满很多,这是各厂家有待需要提高的。
(1)硬核与软核
硬核指的是一种专用的预定好的硬线逻辑块实现的内核,各好的理解就是直接将那位微处理器给放到FPGA芯片里。目前主流的FPGA厂商都会选择一个特定的处理器来实现硬核。如表XX,开发者可以直接在相关开发平台上使用这些硬核。
Xilinx |
Altera |
Quicklogic |
PowerPC |
ARM |
MIPS |
软核与硬核不同,是将一组逻辑资源块配置成一个微处理器。同时,还提供了很多外围设备,比如定时器、中断控制器、各种内存控制器、各种通信接口驱动等软核,注意这里指代的软核包括以RTL级网表形式,也包括布局布线后的LUT级形式。
需要说明的是,相比于硬核软核的速度要慢一些,这很好理解,但是软核更简单。在资源允许的情况下,我们可以配置多核,这个是硬核不行的,有多少个硬核你只能用几个。同样,主流的FPGA厂商也会做一个软核,如表XX所示,其中NIOS是有16位和32位两种架构,分别支持16位和32位数据宽度,而MicroBlaze只有32位的架构,Q90C1XX确是一个9位的微控制器。
Xilinx |
Altera |
Quicklogic |
MicroBlaze |
NIOS |
Q90C1XX |
(2)开发工具
基于FPGA的嵌入式开发工具,除了本身硬件开发平台外,还必须要硬件平台搭建工具和软件开发工具。Xilinx和altera的相关开发工具列表如下:
|
硬件平台搭建工具 |
软件开发平台 |
Xilinx |
EDK |
EDK/SDK |
Altera |
QSYS |
IDE |
对表中列出的工具做个说明,XILINX的硬件平台搭建工具EDK既可以支持软核,还可以支持它的硬核,两者的操作几乎一样,而ALTERA的QSYS是新一代的工具,也是下一代SOPC Builder工具,在FPGA优化芯片网络新技术支持下,与SOPC Builer相比,提高了性能,增强了设计重用功能,并且提供更迅速的系统级验证。软件开发平台方面,Xilinx方面提供两种开发平台,EDK是用来适应硬件工程师的编程习惯的,但同时也提供软件工程师看起来很亲切的SDK环境。而ALTERA只提供了IDE软甲开发工具,它是以软件开发者的习惯来架构了,和SDK软件非常相似,都是源于同一个软件设计平台架构。
领域 |
厂商 |
链接 |
广播 |
Altera |
http://www.altera.com.cn/end-markets/broadcast/bro-index.html |
xilinx |
||
消费类 |
Altera |
http://www.altera.com.cn/end-markets/consumer/csm-index.html |
xilinx |
http://china.xilinx.com/applications/consumer-electronics/index.htm |
|
有线通信 |
Altera |
http://www.altera.com.cn/end-markets/wireline/wil-index.html |
|
xilinx |
http://china.xilinx.com/applications/wired-communications/index.htm |
无线通信 |
Altera |
http://www.altera.com.cn/end-markets/wireless/wir-index.html |
工业 |
Altera |
http://www.altera.com.cn/end-markets/industrial/ind-index.html |
xilinx |
||
医疗 |
Altera |
http://www.altera.com.cn/end-markets/medical/med-index.html |
xilinx |
||
军事和航空航天 |
Altera |
http://www.altera.com.cn/end-markets/military-aerospace/mil-index.html |
xilinx |
http://china.xilinx.com/applications/aerospace-and-defense/index.htm |
|
汽车 |
|
|
|
||
高性能计算 |
Altera |
http://www.altera.com.cn/end-markets/computer-storage/cmp-index.html |
xilinx |
http://china.xilinx.com/applications/high-performance-computing/index.htm |
用户961355 2013-4-26 17:18
用户427466 2013-1-14 12:04
357028335_973093314 2013-1-8 21:13
用户498620 2012-11-1 08:19
用户1650991 2012-9-20 10:42
用户613343 2012-9-19 22:20
用户403664 2012-9-12 10:23