FPGA笔试题及答案总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章FPGA基础知识1.1FPGA设计工程师努力的方向SOPC,高速串行I/O,低功耗,可靠性,可测试性和设计验证流程的优化等方面。随着芯片工艺的提高,芯片容量、集成度都在增加,FPGA设计也朝着高速、高度集成、低功耗、高可靠性、高可测、可验证性发展。芯片可测、可验证,正在成为复杂设计所必备的条件,尽量在上板之前查出bug,将发现bug的时间提前,这也是一些公司花大力气设计仿真平台的原因。另外随着单板功能的提高、成本的压力,低功耗也逐渐进入FPGA设计者的考虑范围,完成相同的功能下,考虑如何能够使芯片的功耗最低。高速串行IO的应用,也丰富了FPGA的应用范围,象xilinx的v2pro中的高速链路也逐渐被应用。总之,学无止境,当掌握一定概念、方法之后,就要开始考虑FPGA其它方面的问题了。1.2简述FPGA等可编程逻辑器件设计流程系统设计电路构思,设计说明与设计划分,电路设计与输入(HDL代码、原理图),功能仿真与测试,逻辑综合,门级综合,逻辑验证与测试(综合后仿真),布局布线,时序仿真,板级验证与仿真,加载配置,在线调试。常用开发工具(AlteraFPGA)HDL语言输入:TextEditor(HDL语言输入),还可以使用UltraEdit原理图输入:SchematicEditorIPCore输入:MegaWinzad综合工具:Synplify/SynplifyPro,QaustusII内嵌综合工具仿真工具:ModelSim实现与优化工具:QuartusII集成的实现工具有AssignmentEditor(约束编辑器)、LogicLock(逻辑锁定工具)、PowerFitFitter(布局布线器)、TimingAnalyzer(时序分析器,STA分析工具)、FloorplanEditor(布局规划器)、ChipEditor(底层编辑器)、DesignSpaceExplorer(设计空间管理器)、DesignAssistant(检查设计可靠性)等。后端辅助工具:Assembler(编程文件生成工具),Programmer(下载编程工具),PowerGauge(功耗仿真器)调试工具:SignalTapII(在线逻辑分析仪),SignalProbe(信号探针)。系统级设计环境:SOPCBuilder,DSPBuilder,SoftwareBuilder。1.3Quartus文件管理1.编译必需的文件:设计文件(.gdf、.bdf、EDIF输入文件、.tdf、verilog设计文件、.vqm、.vt、VHDL设计文件、.vht)、存储器初始化文件(.mif、.rif、.hex)、配置文件(.qsf、.tcl)、工程文件(.qpf)。2.编译过程中生成的中间文件(.eqn文件和db目录下的所有文件.tdf,.hdb,.xml等)3.编译结束后生成的报告文件(.rpt、.qsmg等)4.根据个人使用习惯生成的界面配置文件(.qws等)5.编程文件(.sof、.pof、.ttf等)1.4IC设计流程写出一份设计规范,设计规范评估,选择芯片和工具,设计,(仿真,设计评估,综合,布局和布线,仿真和整体检验)检验,最终评估,系统集成与测试,产品运输。设计规则:使用自上而下的设计方法(行为级,寄存器传输级,门电路级),按器件的结构来工作,做到同步设计,防止亚稳态的出现,避免悬浮的节点,避免总线的争抢(多个输出端同时驱动同一个信号)。设计测试(DFT)强调可测试性应该是设计目标的核心,目的是排除一个芯片的设计缺陷,捕获芯片在物理上的缺陷问题。ASIC设计要求提供测试结构和测试系向量。FPGA等默认生产厂商已经进行了适当的测试。测试的10/10原则:测试电路的规模不要超过整个FPGA的10%,花费在设计和仿真测试逻辑上的时间不应超过设计整个逻辑电路的10%。1.5FPGA基本结构可编程输入/输出单元,基本可编程逻辑单元,嵌入式块RAM,丰富的布线资源,底层嵌入式功能单元,内嵌专用硬核。常用的电气标准有LVTTL,LCCMOS,SSTL,HSTL,LVDS,LVPECL,PCI等。FPGA悬浮的总线会增加系统内的噪声,增加功率的损耗,并且具有潜在的产生不稳定性的问题,解决方案是加上拉电阻。对于SRAM型器件,路径是通过编程多路选择器实现;对于反熔丝型器件,路径通过传导线(高阻抗,有RC延时)来实现的。这两种结构都显著加大了路径延时。1.6FPGA选型时要考虑哪些方面?需要的逻辑资源、应用的速度要求,功耗,可靠性,价格,开发环境和开发人员的熟悉程度。1.7同步设计的规则单个时钟域:1、所有的数据都要通过组合逻辑和延时单元,典型的延时单元是触发器,这些触发器被一个时钟信号所同步;2、延时总是由延时单元来控制,而不是由组合逻辑来控制;3、组合逻辑所产生的信号不能在没有通过一个同步延时单元的情况下反馈回到同一个组合逻辑;4、时钟信号不能被门控,必须直接到达延时单元的时钟输入端,而不是经过任何组合逻辑;5、数据信号必须只通向组合逻辑或延时单元的数据输入端。多个时钟域:把通过两个不同时钟作用区域之间的信号作为异步信号处理1.8你所知道的可编程逻辑器件有哪些?PAL/GAL,CPLD,FPGAPLA:可编程逻辑阵列,一种用于大规模的与阵列和或阵列的逻辑器件,用于实现布尔逻辑的不同组合。PLA:可编程阵列逻辑,一种逻辑器件,由大规模的与阵列和规模小且数量固定的或门组成,可用于实现布尔逻辑和状态机。PAL:很短的交货时间、可编程的、没有NRE(非循环工程)费用门阵列:高密度性、能实现许多逻辑函数、速度相对较快1.9FPGA、ASIC、CPLD的概念及区别FPGA(FieldProgrammableGateArray)是可编程ASIC。ASIC专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。根据一个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。与门阵列等其它ASIC(ApplicationSpecificIC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点。FPGA采用同步时钟设计,使用全局时钟驱动,采用时钟驱动方式在各级专用布线资源上灵活布线,ASIC有时采用异步逻辑,一般采用门控时钟驱动,一旦设计完成,其布线是固定的。FPGA比ASIC开发周期短,成本低,设计灵活。CPLD(ComplexProgrammableLogicDevice)是复杂可编程逻辑器件。CPLD开关矩阵路径设计的一个优点是信号通过芯片的延时时间是确定的。设计者通过计算经由功能模块、I/O模块和开关矩阵的延迟就可以任何信号的延迟时间,并且信号沿金属线传递所引起的延迟是可忽略的。CPLDFPGA内部结构Product-termLook-upTable程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低高使用场合完成控制逻辑能完成比较复杂的算法速度慢快其他资源-PLL、RAM和乘法器等保密性可加密一般不能保密1.10锁存器(latch)和触发器(flip-flop)区别?电平敏感的存储器件称为锁存器,可分为高电平锁存器和低电平锁存器,用于不同时钟之间的信号同步。由交叉耦合的门构成的双稳态的存储原件称为触发器。分为上升沿触发和下降沿触发。可以认为是两个不同电平敏感的锁存器串连而成。前一个锁存器决定了触发器的建立时间,后一个锁存器则决定了保持时间。锁存器对脉冲电平敏感,在时钟脉冲的电平作用下改变状态。锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器也称为透明锁存器,指的是不锁存时输出对于输入是透明的。应用场合:数据有效迟后于时钟信号有效。这意味着时钟信号先到,数据信号后到。在某些运算器电路中有时采用锁存器作为数据暂存器。缺点:时序分析较困难。不要锁存器的原因:1、锁存器容易产生毛刺,2、锁存器在ASIC设计中应该说比ff要简单,但是在FPGA的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和ff来组成锁存器,这样就浪费了资源。优点:面积小。锁存器比FF快,所以用在地址锁存是很合适的,不过一定要保证所有的latch信号源的质量,锁存器在CPU设计中很常见,正是由于它的应用使得CPU的速度比外部IO部件逻辑快许多。latch完成同一个功能所需要的门较触发器要少,所以在asic中用的较多。寄存器用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果,它被广泛的用于各类数字系统和计算机中。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。工程中的寄存器一般按计算机中字节的位数设计,所以一般有8位寄存器、16位寄存器等。对寄存器中的触发器只要求它们具有置1、置0的功能即可,因而无论是用同步RS结构触发器,还是用主从结构或边沿触发结构的触发器,都可以组成寄存器。一般由D触发器组成,有公共输入/输出使能控制端和时钟,一般把使能控制端作为寄存器电路的选择信号,把时钟控制端作为数据输入控制信号。寄存器的应用1.可以完成数据的并串、串并转换;2.可以用做显示数据锁存器:许多设备需要显示计数器的记数值,以8421BCD码记数,以七段显示器显示,如果记数速度较高,人眼则无法辨认迅速变化的显示字符。在计数器和译码器之间加入一个锁存器,控制数据的显示时间是常用的方法。3.用作缓冲器;4.组成计数器:移位寄存器可以组成移位型计数器,如环形或扭环形计数器。1.11JTAG信号TCK:测试时钟输入,用于移位控制,上升沿将测试指令、测试数据和控制输入信号移入芯片;下降沿时将数据从芯片移出。TMS:测试模式选择,串行输入端,用于控制芯片内部的JTAG状态机。TDI:测试数据输入,串行输入端,用于指令和编程数据的输入,在时钟上升沿,数据被捕获。TDO:测试数据输出,串行输出端,时钟下降沿,数据被驱动输出。TRST:测试复位输入(仅用于扩展JTAG),异步、低电平有效,用于JTAG初始化时。1.12FPGA芯片内有哪两种存储器资源?FPGA芯片内有两种存储器资源:一种叫blockram,另一种是由LUT配置成的内部存储器(也就是分布式ram,distributeram)。Blockram由一定数量固定大小的存储块构成的,使用BLOCKRAM资源不占用额外的逻辑资源,并且速度快。但是使用的时候消耗的BLOCKRAM资源是其块大小的整数倍。1.13FPGA中可以综合实现为RAM/ROM/CAM的三种资源及其注意事项?三种资源:blockram、触发器(FF)、查找表(LUT);注意事项:1、在生成RAM等存储单元时,应该首选blockram资源;原因有二:使用blockram等资源,可以节约更多的FF和4-LUT等底层可编程单元,最大程度发挥器件效能,节约成本;blockram是一种可以配置的硬件结构,其可靠性和速度与用LUT和register构建的存储器更有优势。2、弄清FPGA的硬件结构,合理使用blockram资源;3、分析blockram容量,高效使用blockram资源和分布式ram资源(distributeram)。1.14FPGA设计中对时钟的使用?(例如分频等)FPGA芯片有固定的时钟路由,这些路由能有减少时钟抖动和偏差。需要对时钟进行相位移动或变频的时候,一般不允许对时钟进行逻辑操作,这样不仅会增加时钟的偏差和抖动,还会使时钟带上毛刺。一般的处理方法是采用FPGA芯片自带的时钟管理器如PLL,DLL或DCM,或者把逻辑转换到触发器的D输入。1.15

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功