这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 在我的嵌入式设计中,怎样使用FPGA?

共4条 1/1 1 跳转至

在我的嵌入式设计中,怎样使用FPGA?

助工
2011-09-14 09:58:36     打赏

初级问题,烦请高手详细耐心指导。感激不尽




关键词: 我的     嵌入式     设计     怎样     使用    

助工
2011-09-14 10:19:04     打赏
2楼

 

在嵌入式系统中,有很多方式来使用FPGA。典型应用包括:

I/O和外设扩展——增加当前处理器所不具有的外设,例如LCD或者存储器控制器等,也可以通过增加以太网、GPIO或者UART端口来增加系统中I/O通道的数量。

协处理——把在处理器中运行,需要大量计算的软件算法移植到FPGA硬件中,从而提高系统性能。在硬件而不是在软件中运行信号处理、图像处理和数据包处理应用程序,性能可以提高几个数量级。

定制嵌入式控制器——由您来决定您的定制嵌入式控制器包括哪些(以及多少)处理器、外设、接口、直接存储器访问(DMA)通道和存储器。

多处理器——把任务分配到多个CPU上,加速软件开发,提高软件可靠性,增强可维护性。您可以在一片FPGA中设计多处理器系统,作为定制系统,增加外部CPU或者数字信号处理器。

 


高工
2011-09-14 23:24:01     打赏
3楼
曾经的FPGA由于逻辑资源有限,仅用于IO胶合以及一些简单的逻辑功能实现,代替以往的74系列和4000系列IC,以节省PCB面积和布线麻烦,缩小产品面积,提高系统的抗干扰性和可靠性,其最大的优势在于灵活,可编程。
     而今的FPGA,随着半导体工艺的不断进步和发展,已进入了亚微米时代,FPGA片上集成了上千万逻辑门的可编程逻辑资源。主要包括查找表(LUT)、寄存器(DF,FF),可编程互连IO块、块RAM(单端口/双端口RAM)、嵌入式IP软核或硬核、硬件乘法器、硬件DSP单元等。现在最先进的FPGA技术为Xilinx28纳米工艺的Zynq-7000 系列FPGA,其内嵌ARM Cortex-A9 MPCore双核处理器和AMBA片上总线,功能十分强劲。 现在最大的两家FPGA生产厂商是Xilinx(赛灵思)和Altera,它们都针对嵌入式市场推出了自己相应的嵌入式IP软核或硬核,前者的软核包括PicoBlaze(8位,44MIPS,比较古老了)和MicroBlaze(32位,性能高达300MIPS,视具体的软核版本和器件系列而定,所有Xilinx的FPGA都可以嵌入实现),硬核包括PowerPC(仅Virtex系列支持)和Cortex-A9 MPCore(仅最新Zynq-7000系列)处理器,其相应的开发软件为EDK,包含Xilinx Platform Studio(XPS,硬件搭建和简易代码编写编译环境)和Xilinx Platform Studio SDK(高级软件开发环境,支持操作系统调试);后者(Altera)的软核为NIOS-II(32位RSIC处理器,有硬件加速功能,能够实现用户自定义指令,处理能力同样视具体的FPGA器件系列而定,最高达近300MIPS。2000年刚推出时为16位RSIC,也是业界首款FPGA嵌入式处理器),相应的软件开发环境为SOPC Builder(硬件定制搭建软件)和Nios II IDE集成软件开发环境(自带可选的uCOS-II操作系统,省去了大量的操作系统移植工作),而其硬核则包括ARM Cortex M1和MIPS处理器。 前面,大概介绍了一下FPGA的发展现状和FPGA嵌入式处理器的发展情况。接着说一下,FPGA中嵌入式系统的实现和学习方法。 一般的FPGA嵌入式系统都会包括一个处理器(无论硬核还是软核),由相应的硬件搭建软件实现系统的MCU和外设(IP)定制,然后由相应的逻辑设计工具综合生产系统硬件(这里用户可以加入自己用FPGA逻辑资源实现的任何功能单元或个性化外设),接着,根据综合的结果,即可在相应的软件编译环境中进行C语言的嵌入式系统代码设计,最终编译得到C语言可执行代码(elf或HEX或bin文件),最后由专门的软件工具将硬件逻辑设计比特流文件和C语言编译得到的可执行文件综合在一起,下载到FPGA硬件,实现调试,总体说来,设计流程还算简单,只是EDA工具编译的时间有点长(因为一旦涉及硬件部分的更改,需要重新编译综合逻辑设计部分)。 关于FPGA中的嵌入式系统设计的学习,个人觉得需要有几个基础:首先要有FPGA逻辑设计的基础,了解FPGA原理,熟悉FPGA开发的逻辑设计EDA工具(比如说Quartus II和ISE)的使用,懂得硬件描述语言(VHDL或Verilog HDL);其次,要有C语言基础,学过单片机(比如51单片机),对MCU的工作原理及编程,编译器工作原理有所了解(当然,了解脚本语言,链接文件,makefile以及GNU工具链的使用更佳),再者,想要深入这一领域,需要具备操作系统相关的基础,比如说学过简单操作系统uCOS-II、VXWorks等,更高级的包括uCLinux和Linux嵌入式操作系统。 不具备以上条件者,贸然开始FPGA中的嵌入式系统设计,会被遇到的巨大困难所吓退,甚至失去最初的兴趣,因为,这个FPGA中的嵌入式系统还是很复杂的,牵涉的知识面比较广,软硬件都要懂,很容易遇到各种各样的麻烦问题。 从现在的发展来看,在FPGA中实现嵌入式系统尤其相对于其他DSP和MCU实现的嵌入式系统有着明显的优势,其发展前途不可估量,因为随着技术的不断发展,一方面可以在海量的逻辑资源上灵活的实现并行的DSP处理和人性化外设以及特殊指令,硬件加速等;另一方面,很多EDA软件厂商看中这样巨大潜力市场,纷纷投入到FPGA中嵌入式系统软件的研发上来,可以预见,今后的FPGA嵌入式系统开发软件环境将变得越来越高效,实用。 在这里,我给即将开始这一学习历程的同学们提个醒:路漫漫其修远兮,欲将其精通,需韧心耐性,甘于寂寞,不懂的多上google百度,勤思考,多动手,千万不要怕麻烦(PS,我个人也是从菜鸟走过来的人,懂得专研精神和保持兴趣的重要性)。 最后,预祝大家学习愉快~!

院士
2011-09-15 08:02:40     打赏
4楼
这个,看着有点论文状态了~

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]