初级问题,烦请高手详细耐心指导。感激不尽
共4条
1/1 1 跳转至页
在嵌入式系统中,有很多方式来使用FPGA。典型应用包括:
I/O和外设扩展——增加当前处理器所不具有的外设,例如LCD或者存储器控制器等,也可以通过增加以太网、GPIO或者UART端口来增加系统中I/O通道的数量。
协处理——把在处理器中运行,需要大量计算的软件算法移植到FPGA硬件中,从而提高系统性能。在硬件而不是在软件中运行信号处理、图像处理和数据包处理应用程序,性能可以提高几个数量级。
定制嵌入式控制器——由您来决定您的定制嵌入式控制器包括哪些(以及多少)处理器、外设、接口、直接存储器访问(DMA)通道和存储器。
多处理器——把任务分配到多个CPU上,加速软件开发,提高软件可靠性,增强可维护性。您可以在一片FPGA中设计多处理器系统,作为定制系统,增加外部CPU或者数字信号处理器。
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,我个人也是从菜鸟走过来的人,懂得专研精神和保持兴趣的重要性)。 最后,预祝大家学习愉快~!
而今的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,我个人也是从菜鸟走过来的人,懂得专研精神和保持兴趣的重要性)。 最后,预祝大家学习愉快~!
共4条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |