您好,欢迎访问三七文档
王者之风的博客原文地址:ARM,FPGA,DSP的特点和区别是什么?作者:红枫叶DSP(digitalsingnalprocessor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;M开发论坛(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。ARM(AdvancedRISCMachines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。字串4FPGA是英文FieldProgrammableGateArray(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。他们的区别是什么呢?DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,而FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。原文地址:如何学习FPGA作者:走向电子之路1。掌握FPGA编程语言在学习一门技术之前我们往往从它的编程语言开始,就如学习单片机一样,我们从C语言开始,掌握了C语言,开发单片机就不是什么难事了。学习FPGA也是如此,FPGA的编程语言有两种:VHDL和Verilog,这两种都适合用于FPGA的编程,VHDL比Veirlog早出现,由美国的军方组织开发,在1987年成为了IEEE的标准;Verilog则是由民间一家普通的公司私有财产转化而来,基于其优越性,在1995成为了IEEE标准。VHDL在欧地区应用的较为广泛,而Verilog在中国、美国、日本、台湾等地应用较为广泛,笔者比较推崇的是Verilog,因为它非常易于学习,很类似于C语言,如果具有C语言基础的人,只需要花很少的时间便能掌握Verilog,而VHDL较为抽象,学习需要一段较长的时间。如果是学生,学习Verilog最好的时期是在大学二年级,与数字电路同步学习,不仅能够理解数字电路实现的方式,更能通过FPGA将数字电路得以实现,笔者发现华中科技大学康华光教授主编的《电子技术基础(数字部分)》非常好,可以说是一本与时俱进的教材,在其中介绍了Verilog语言,并且在每一章的最后一节都介绍了如何使用Verilog建模实现相关数字电路的内容,非常适合大二学习FPGA的学生,大三、大四的学生还可以进一步将Verilog进行强化,学习北京航天航空大学的夏宇闻教授编写的《Verilog数字系统设计教程(第二版)》可以比较全面地、详细地掌握Verilog的基本语法,对大二学习的内容进一步的巩固和强化。如果是其他初学者,可以直接借助《Verilog数字系统设计教程(第二版)》即能对Verilog的语法进行全面的掌握。这是学习FPGA的第一步,也是必不可少的一步。2。选择合适的硬件开发平台除了学习编程语言以外,更重要的是实践,将自己设计的程序能够在真正的FPGA里运行起来,这时我们需要一个硬件平台的支持。目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没有详尽的文档和教程提供给初学者。经验表明,很多学生在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少配套的说明文档和手把手系列的入门教程。原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。所以初学者在选择开发板的时候要选择配套资料全的和售后服务好的开发板,个人推荐艾米电子工作室的开发套件就特别适合初学者。3。选择软件开发平台目前主要的FPGA厂商有Altera、xilinx、lattice都提供的了各自的FPGA开发环境,分别是:Altera的QuartusII,Xilinx的ISE,Lattice的ispLever。我们可以选择先熟悉一家公司的环境(或者根据开发板的具体芯片选择厂商环境),以后根据器件选择需要,再去熟悉其他的环境,学习周期就可以短了。作者选择的Altera公司的QuartusII开发软件,感觉其界面友好而且目前资料稍多一些比较适合初学者。4。技术进行巩固和升华对于初学者来说,有了一定语法基础和合适的硬件开发平台并熟悉了软件开发环境后,应该将其继续的巩固和升华,可以按照开发板厂商提供的实验教程进行学习,先看别人的代码,特别是原厂提供的代码,这些代码应该代表了比较高的FPGA设计水平,从中我们可以学习两个方面的知识:一是相对比较大规模的逻辑设计如何组织模块结构,二是局部应用处理,可以照搬,作为我们开发时的模板。熟读唐诗三百首,不会作诗也会吟,看多了,就会习惯的学会他们的开发模式,我有这样的体会,看多了,很多东西思想上已经把它当作是自己的理所当然的东西了,实际一做,手生的很,遇到很多问题,解决这些问题,这个过程就通过了,学习就需要这么个过程。把别人的代码理解消化后,就可以自己试着写点代码,然后在开发板上验证。FPGA技术是不断发展变化的,罗马不是一天建成的,要掌握FPGA技术的精髓,需要设计者在实践中不懈地摸索与积累,逐步提高自己的设计水平。FPGA设计有点象围棋:易学难精。需要我们不断拓宽知识面,不厌其繁的去尝试,仔细去看编译综合报告,时序分析报告,并去尝试提升性能,从底层更深入的去理解硬件电路的设计,改进、尝试性能的提高。原文地址:学习CPLD/FPGA的几点建议作者:走向电子之路1.关于语言Verilog和VHDL两种语言差不多,个人感觉争论学习,使用何种语言没有太大的意义,一般情况项目组、公司使用2种语言的人都有,这就要求FPGA设计人员对于2两种语言都要熟悉,但精通1种就行了。比如你用Verilog写代码,别人用VHDL写的代码你能看懂就行了。2.关于器件当初在的时候不知道为什么对XILINX鬼迷心窍,对ALTERA有点反感,有关ALTERA的资料一般都不看,实际上,一般公司XILINX、ALTERA、LATTICE的产品都会用,主要取决项目要实现的功能,成本等等。所以,对于入门者来说,一般精通1家公司的产品,对其他几家公司的产品了解熟悉一下就可以了,等到工作中用得到的时候不至于从头开始学,其实几家公司的产品都差不多的,没什么本质的区别,区别只是公司提供的技术支持、参考设计是否完善,个人感觉XILINX的参考设计还是比较完善的。3.关于参考书其实参考书不在多,在于精,由于我个人主要使用Verilog,在此推荐几本:1.Verilog数字系统设计教程,夏宇闻,北京航空航天大学出版社2.设计与验证-VerilogHDL,EDA先锋工作室,人民邮电出版社3.FPGA/CPLD设计工具XILINXISE使用祥解,EDA先锋工作室,人民邮电出版社4.ALTERAFPGA-CPLD设计(基础篇),EDA先锋工作室,人民邮电出版社4.关于开发板对于刚入门的人来说,拥有1块开发板可以起到事半功倍的效果。当初在学校学习的时候,考虑买开发板的时候,追求FPGA的逻辑门比较多,其实这是没有必要的,我在学校的时候买了一块Spartan-3的40万门开发板,对于入门者来说根本就用不了这么大的芯片,20万门甚至5万门的已经足够了。当然开发板上的其他资源要尽量丰富。比如按键、七段数码管、EEPROM、
本文标题:FPGA的学习流程
链接地址:https://www.777doc.com/doc-636423 .html