深入浅出玩转FPGA基础知识学习1

目录

1 初始FPGA

1.1 FPGA与ASIC

1.2 FPGA与CPLD

1.3 Altera与Xilinx

1.4 Verilog与VHDL

1.5 FPGA的基本结构

2 应用领域

3 开发流程







1 初始FPGA

20世纪60年代中期,TI公司大量生产了通用IC,如分别面向商用和军用的74系列和54系列。20世纪80年代,出现了可编程逻辑器件(PLD),如SPLD和CPLD,它们与ASIC相比,具有可重配置性和较短的开发调试时间,但实现的功能和电路都相对简单。为了弥补这一需要,Xilinx公司推出了第一块现场可编程逻辑器件(FPGA),并且在其后的几十年间,FPGA得到了巨大的发展。

1.1 FPGA与ASIC

FPGA和ASIC的不同主要在于:

  • 1.ASIC是定制IC,内部功能已经固化,只能开启或者关闭不同的功能模块;而FPGA是一个地地道道的可编程器件,用户可以根据自己的功能需求进行开发设计
  • 2.FPGA可重配置的灵活性是ASIC不具有的。因此,ASIC通常适用于大型项目,而对于需要快速投入市场且升级换代较快的小型项目使用FPGA则更有优势。

FPGA之所以具有如此大的吸引力,不仅在于其开发周期短、开发软件投入少、成本也在不断下降,更在于它符合电子产品高密度、低压、低功耗的趋势。

1.2 FPGA与CPLD

FPGA和CPLD的差别:

  • 1.CPLD是基于ROM结构的,下电后代码不丢失;而FPGA是基于RAM结构的,下电后代码丢失,所以FPGA一般必须有一个配置ROM在每次上电时加载代码到RAM里
  • 2.CPLD的硬件设计比较简单,FPGA的硬件设计相对复杂些。
  • 3.二者制造工艺上的差别也导致了它们内部结构的不同,CPLD的逻辑资源不可能做得太大,而FPGA却能够做到数万乃至数百万逻辑门。
  • 4.CPLD更适合于一些简单得应用,而FPGA可以做更多更复杂的工作。

基于FPGA和CPLD的设计开发流程是基本一致的,因此,一般情况下设计者也没必要刻意的区分二者。

1.3 Altera与Xilinx

目前FPGA主流厂商Altera公司和Xilinx公司(已被AMD收购)。通常来说,在欧洲使用Xilinx的人多一些,在亚太地区使用Altera的人多一些,在美国一般是平分秋色。这两家公司的可编程逻辑器件占到了全球市场的60%以上。

1.4 Verilog与VHDL

Verilog相对于VHDL有着快速上手、易于使用的特点,博得了更多工程师的青睐。正确掌握Verilog必须要花很多时间和精力,最好是有一些项目的实践,才会慢慢对可编程逻辑器件的设计有更深入的理解和认识。

1.5 FPGA的基本结构

一个典型的FPGA基本就由图示的各个部分构成:

  • 逻辑块(Logic Block),Altera公司称之为逻辑阵列块(LAB),而Xilinx称之为可配置逻辑块(CLB)。Altera的LAB是由称之为LE(Logic element)的基本单元构成,Xilinx的CLB则是由称之为LC(Logic cell)的基本单元构成。LE和LC的机构虽有差异,但是大体还是很类似的。
  • FPGA内部的各个相关逻辑进行互联,它们的起点和终点都是IOB(I/O Block)IOB是FPGA和外部器件的物理接口
  • FPGA内部往往会扩展一些诸如PLL(DLL)、RAM块、乘法器等。
    • PLL(DLL)内部时钟倍频和分频的专用电路,可以方便用户对多个时钟的需求
    • RAM块一般可以配置成单口RAM、双口RAM、FIFO、ROM甚至以为寄存器等,
    • 乘法器一般是针对数字信号处理方面的运算需要。

2 应用领域

FPGA主要用在逻辑粘合与实时控制、信号处理与协议实现、片上系统等。
数字信号处理器(DSP)数据运算方面有着相当不错的性能。但是,今天的FPGA已经具有了内嵌乘法器、专用运算电路并集成了大量可灵活配置的片内RAM等,再加上FPGA的并行性以及可灵活配置的位宽,这些特性使其足以与任何DSP相抗衡。

在软件无线电领域,ASIC、FPGA和DSP三足鼎立,各有优势。ASIC往往针对某一个特定的产品,可升级性和灵活性较低。DSP和FPGA都是可编程的,DSP的软件编译和调试相对FPGA要容易一些,但只适合一些基于顺序处理的算法实现,对于并行要求极高的应用场合则无能为力了。因此,在这样的应用场合,DSP加FPGA的解决方案是一个折中的选择。

FPGA 拥有着丰富的电平接口,易于实现各种各样不同的协议。现成的协议芯片确实不少,但是对于一些标准协议的非标准应用还是应该选择FPGA。有时只要选择要一个合适的IP核,简单的配置后即可灵活使用。

片山系统(soc是指在单个芯片上集成一个完整的系统,一般包括系统级芯片控制逻辑模块、微处理器/微控制器内核模块、数字信号处理器模块、存储器或存储器控制模块、与外部通信的各种接口协议模块、含有ADC/DAC的模拟前端模块、电源及功耗管理模块。

传统的复杂系统,如图1.2所示一个相对复杂的系统采用传统的设计方案可能需要

  • 一个CPU做整体控制
  • 一个FPGA做接口的逻辑粘合和一些信号的预处理
  • 还需要一个DSP做复杂的算法实现
  • Flash和SDRAM分别作为程序存储和数据缓存,
  • 这些器件放在一块或者数块PCB板上。这样一个系统显得相当繁杂,不仅调试难度大,而且系统维护也不方便。

基于FPGA的片上系统,提出了如图1.3所示FPGA内部集成了CPU、DSP以及各种接口控制模块,对于有些存储量要求不大的系统,甚至可将外部的Flash和SDRAM都集成在FPGA中。


3 开发流程

任何项目的前期准备工作肯定都是从需求分析谈起的。需求明确了,把功能定义弄清楚了,设计者才好进一步地进行可行性分析。然后进行模块划分,模块划分的最基本原则是以功能为主,有时是按照数据流来做划分。分模块的好处不仅有利于分工的需要,更有利于日后的代码升级、维护以及设计的综合优化。在模块划分完成后,就要进行底层的设计输入工作。设计输入可以是原理图输入、代码输入或者搭建SOPC平台。代码设计不是FPGA设计的唯一手段,设计者也可以考虑使用基于原理图的设计或者基于SOPC的设计。原理图的设计有着太多的局限性,对于复杂应用基本不予考虑。SOPC的应用也越来越广泛,不过使用代码进行设计依然是主流。

综合是指将较高层次的电路描述转化为较低层次的电路描述。具体的说,就是将设计代码转化为底层的与门、非门、RAM、触发器等基本逻辑单元相互连接而成的网表。综合工具使用Synplicity公司的Synplify是个不错的选择。代码设计完成后,最好先使用开发工具进行语法检查。语法没有问题了,进行综合后,需要进行功能仿真。这个仿真不涉及任何时序上的延时,只是单纯地验证代码所实现地功能是否符合要求。仿真工具首推地是ModelTech公司地ModelSim,功能强大,而ISE或者Quartus II自带的仿真工具做做简单的测试还是可以的。

在功能仿真过后一般进行一次全编译,然后使用开发软件提供的时序编辑器进行时序约束,也可以使用第三方工具PrimeTime。时序约束首先需要对工程进行全局约束,然后对I/O接口时序进行约束,再对需要做的地方做时序例外约束。添加完时序约束后,设计者需要进行实现(Xilinx的ISE是分三步走,即翻译、映射和布局布线),然后查看时序报告。在添加时序约束前后,变化最大的应该是布局布线。一般设计者可能会先查看映射后的时序报告,这个报告的逻辑延时是完全准确的,布线延时确实通过一定的比例进行推导得出的估计值,所以由此得到的时序报告并不完全准确。但是对于一个较大的工程,编译往往耗费很多时间,所以设计者会悬着先查看映射后的时序报告进行前期的分析。如果得到的估计延时偏大,时序明显达不到要求,那么设计者应该先回头查找问题;如果映射报告的结果看上去不错,有足够的时序余量,那么就可以继续往后进行布局布线,查看布局布线后的时序报告,这个报告是最接近板级的时序分析结果。

仿真和板级调试时FPGA设计主要的验证手段。尽管板级调试能够很直观很真实地反映信号状态,也便于问题的寻找和定位,但是板级调试一个最大的问题在于同步观察接口信号数量受理,而且很难观测到FPGA内部信号节点的状态。

FPGA的仿真时通过给待测试设计添加一个激励,通过仿真工具模拟实际的FPGA运行状态输出响应,谁记者通过回放波形等方式观察已经运行的某一段时间 内的测试结果。
整个设计的验证过程如图1.5所示,这些步骤是要给迭代的过程。

设计输入阶段对应的是行为级的仿真,该阶段仿真验证的代码可以是不可综合的代码。综合优化后的共功能仿真时针对可以实实在在成为硬件的门级网表进行的验证,它不包含任何布局布线延时信息。实现完成后的时序仿真实在功能仿真的基础上包含了电路的延时信息,因此最接近板级电路。下载配置后则是板级的调试,验证最终功能是否实现。

FPGA的调试方法有很多,借助于示波器和逻辑分析仪的调试方法时最常用的。在FPGA剩余逻辑资源足够的情况下,也可以使用开发软件提供的在线逻辑分析仪进行调试,如ISE的Chipsole、Quartus II的SignalTape II功能都很强大。

Altera公司的Quartus II的SignalTap II功能支持的5中较实用的调试方法:

1.Signal Probe,信号探针方式不影响原有的设计功能和布线布局,只是通过增加额外布线将需要观察调试的信号里拦截到预先保留或者暂时不使用的I/O接口。该方式得到的信号电平会随布线有一定的延时,不适合于高速、大容量信号观察调试,也不适合做板级时序分析。它的优势在于不影响原有设计,额外资源消耗几乎为零,调试中也不需要保持连接JTAG等其他线缆,额能够最小化编译或重编译的时间。

2.SignalTap II Embedded Logic Analyzer, SignalTap II在线逻辑分析仪很大程度上可以代替昂贵的逻辑分析仪,为开发节约资本,同时也为调试者省去了原本繁琐的连线工作。在线逻辑分析仪的采样存储深度和宽度都在一定程度上受限于FPGA器件资源的大小。使用该方式必须通过JTAG接口,他的采用频率可以达到200MHz(若器件支持)以上,不用像外部调试设备一样担心信号完整性问题。

3.Logic Analyzer Interface,这里的逻辑分析仪接口时针对外部逻辑分析仪的。调试者可以设置FPGA器件内部多个信号映射到一个预先保留或者暂时不使用的I/O接口上,从而通过较少的I/O接口就能够观察FPGA内部的多组信号。

4.In-System Memory Content Editor, 在线存储内容编辑时针对设计中例化的内嵌存储器内容或常量的调试。可以通过这种方式在线重写或者读出工程中的内线存储器内容或常量。对于某些应用可以通过在线更改存储器内容后观察响应来验证设计,也可以在不同激励下在线读取当前存储内容来验证设计。

5.In-System Sources and Probes,这种方式是通过例化一个定制的寄存器链到FPGA器件内部。这些寄存器链通过JTAG接口与Quartus II通信,又能够驱动FPGA期间内部的某些输入节点信号、采样某些输出节点信号,这就使得调试者不用借助外部设备就能够给FPGA添加激励并观察响应。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《深入浅出玩转FPGA随书光盘》是一本关于FPGA(现场可编程门阵列)的应用指南和教程。FPGA是一种灵活的可编程硬件设备,具有广泛的应用领域,在电子设计和嵌入式系统开发中起着重要的作用。 这本书将FPGA的基本原理和使用方法进行了深入浅出的介绍。它采用了实例驱动的方法,通过一系列具体的项目案例来引导读者逐步了解FPGA的设计流程和工具chain. 光盘是这本书的补充材料,其中包含了与书中案例相关的源代码和设计示例。通过光盘上的项目文件,读者可以简单地运行和验证FPGA的设计。 此外,这本书还提供了一些实用的技巧和经验,帮助读者更好地理解和使用FPGA。它详细介绍了FPGA的各个组成部分和相关工具的使用,包括VHDL和Verilog等硬件描述语言的基础知识。 总体而言,《深入浅出玩转FPGA随书光盘》是一本适合初学者和有一定基础的读者的实用指南。它通过简单易懂的语言和具体的案例,帮助读者快速上手FPGA的设计和开发,为进一步深入学习和应用提供了良好的基础。无论是对于从事电子设计的工程师,还是对于对FPGA感兴趣的爱好者,这本书都是一本不可多得的参考书。 ### 回答2: 《深入浅出玩转FPGA》是一本专门介绍FPGA(现场可编程门阵列)的书籍,它以深入浅出的方式帮助初学者快速上手FPGA的相关知识和应用。 该书的随书光盘是一份很有价值的附赠物。光盘上面收录了与书籍内容相对应的实践项目、案例、实验代码等资源。通过光盘中的这些实践资源,读者可以动手实践,并深入理解书中所讲述的理论知识,以及应用FPGA的方法和技巧。 FPGA是一种灵活可编程的集成电路技术,能够实现各种数字电路功能。而光盘中的实践项目则提供了一系列的实验,通过这些实验,读者能够亲自动手设计和实现数字电路,并通过FPGA进行验证和调试。这样一来,读者不仅可以更深入地了解FPGA的原理和工作方式,还能够掌握常用的开发工具和编程语言。 除了实验项目,光盘还提供了一些案例,这些案例展示了FPGA在各个领域的应用,比如音视频处理、图像识别、通信系统等。通过了解这些实际应用案例,读者可以更好地理解FPGA的潜力和广泛应用的可能性。 光盘中的实验代码也是读者学习的重要资源。这些代码可以直接在FPGA开发平台上运行,帮助读者理解和实践书中所讲述的概念和原理。这样一来,读者可以通过实验代码的修改和调试,自己设计和优化数字电路,提高自己的实践能力和创新能力。 总的来说,随书光盘从实践的角度帮助读者更好地理解和应用FPGA技术。通过实验项目、案例和实验代码的使用,读者可以真正做到“深入浅出”,轻松玩转FPGA。 ### 回答3: 《深入浅出玩转FPGA》随书光盘是一本与FPGA相关的学习资料,为读者提供了深入学习和实践FPGA的机会。 首先,该光盘提供了一系列的实例和项目,让读者能够直接在FPGA上进行实践。通过这些实践,读者能够加深对FPGA的理解,并且能够将所学知识应用到实际项目中。这种实践式的学习方法使得读者可以更快地掌握FPGA的原理和应用。 其次,光盘中还包含了丰富的学习资源,如视频教程、电子书等。这些资源能够帮助读者从多个角度了解FPGA的各个方面。通过观看视频教程,读者可以直观地观察到FPGA的工作原理和实验现象,加深对FPGA的认识。电子书则提供了更为详细和全面的知识,对于理论知识的学习非常有帮助。 最后,该光盘还提供了交流和互动的平台。读者可以通过光盘中的论坛、在线问答等方式与其他学习者交流心得和问题。这种交流平台能够让读者在学习过程中得到更多的支持和帮助,解决遇到的困惑和难题。 综上所述,《深入浅出玩转FPGA》随书光盘是一本值得推荐的学习资料。通过实践、多媒体资源和交流平台的支持,读者可以很好地掌握FPGA的知识和技能,提升自己在FPGA领域的能力。希望读者能够充分利用该光盘提供的资源,全面深入地学习玩转FPGA

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值