FPGA笔试题及答案总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 1 章 FPGA基础知识
1.1 FPGA设计工程师努力的方向
SOPC,高速串行I/O,低功耗,可靠性,可测试性和设计验证流程的优化等方面。随着芯片工艺的提高,芯片容量、集成度都在增加,FPGA 设计也朝着高速、高度集成、低功耗、高可靠性、高可测、可验证性发展。芯片可测、可验证,正在成为复杂设计所必备的条件,尽量在上板之前查出bug,将发现bug的时间提前,这也是一些公司花大力气设计仿真平台的原因。另外随着单板功能的提高、成本的压力,低功耗也逐渐进入FPGA设计者的考虑范围,完成相同的功能下,考虑如何能够使芯片的功耗最低。高速串行IO的应用,也丰富了FPGA 的应用范围,象xilinx的v2pro中的高速链路也逐渐被应用。总之,学无止境,当掌握一定概念、方法之后,就要开始考虑FPGA其它方面的问题了。
1.2 简述FPGA等可编程逻辑器件设计流程
系统设计电路构思,设计说明与设计划分,电路设计与输入(HDL代码、原理图),功能仿真与测试,逻辑综合,门级综合,逻辑验证与测试(综合后仿真),布局布线,时序仿真,板级验证与仿真,加载配置,在线调试。常用开发工具(Altera FPGA)
HDL语言输入:Text Editor(HDL语言输入),还可以使用Ultra Edit 原理图输入:Schematic Editor IP Core输入:MegaWinzad
综合工具:Synplify/Synplify Pro,Qaustus II内嵌综合工具仿真工具:
ModelSim
实现与优化工具:Quartus II集成的实现工具有Assignment Editor(约束编辑器)、LogicLock(逻辑锁定工具)、PowerFit Fitter(布局布线器)、Timing Analyzer(时序分析器,STA分析工具)、Floorplan Editor(布局规划器)、Chip Editor(底层编辑器)、Design Space Explorer(设计空间管理器)、Design Assistant(检查设计可靠性)等。后端辅助工具:Assembler(编程文件生成工具),Programmer(下载编程工具),PowerGauge(功耗仿真器)
调试工具:SignalTap II(在线逻辑分析仪),SignalProbe(信号探针)。系统级设计环境:SOPC Builder,DSP Builder,Software Builder。
1.3 Quartus文件管理
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.4 IC设计流程
写出一份设计规范,设计规范评估,选择芯片和工具,设计,(仿真,设计评估,综合,布局和布线,仿真和整体检验)检验,最终评估,系统集成与测试,产品运输。设计规则:使用自上而下的设计方法(行为级,寄存器传输级,门电路级),按器件的结构来工作,做到同步设计,防止亚稳态的出现,避免悬浮的节点,避免总线的争抢(多个输出端同时驱动同一个信号)。
设计测试(DFT)强调可测试性应该是设计目标的核心,目的是排除一个芯片的设计缺陷,捕获芯片在物理上的缺陷问题。
ASIC设计要求提供测试结构和测试系向量。FPGA等默认生产厂商已经进行了适当的测试。测试的10/10原则:测试电路的规模不要超过整个FPGA的10%,花费在设计和仿真测试逻辑上的时间不应超过设计整个逻辑电路的10%。
1.5 FPGA基本结构
可编程输入/输出单元,基本可编程逻辑单元,嵌入式块RAM,丰富的布线资源,底层嵌入式功能单元,内嵌专用硬核。
常用的电气标准有LVTTL,LCCMOS,SSTL,HSTL,LVDS,LVPECL,PCI等。FPGA悬浮的总线会增加系统内的噪声,增加功率的损耗,并且具有潜在的产生不稳定性的问题,解决方案是加上拉电阻。
对于SRAM型器件,路径是通过编程多路选择器实现;对于反熔丝型器件,路径通过传导线(高阻抗,有RC延时)来实现的。这两种结构都显著加大了路径延时。
1.6 FPGA选型时要考虑哪些方面?
需要的逻辑资源、应用的速度要求,功耗,可靠性,价格,开发环境和开发人员的熟悉程度。
1.7 同步设计的规则
单个时钟域:
1、所有的数据都要通过组合逻辑和延时单元,典型的延时单元是触发器,这些触发器被一
个时钟信号所同步;
2、延时总是由延时单元来控制,而不是由组合逻辑来控制;
3、组合逻辑所产生的信号不能在没有通过一个同步延时单元的情况下反馈回到同一个组
合逻辑;
4、时钟信号不能被门控,必须直接到达延时单元的时钟输入端,而不是经过任何组合逻辑;
5、数据信号必须只通向组合逻辑或延时单元的数据输入端。多个时钟域:
把通过两个不同时钟作用区域之间的信号作为异步信号处理
1.8 你所知道的可编程逻辑器件有哪些?
PAL/GAL,CPLD,FPGA
PLA:可编程逻辑阵列,一种用于大规模的与阵列和或阵列的逻辑器
件,用于实现布尔逻辑的不同组合。
PLA:可编程阵列逻辑,一种逻辑器件,由大规模的与阵列和规模小且数量固定的或门组成,可用于实现布尔逻辑和状态机。
PAL:很短的交货时间、可编程的、没有NRE(非循环工程)费用门阵列:高密度性、能实现许多逻辑函数、速度相对较快
1.9 FPGA、ASIC、CPLD的概念及区别
FPGA(Field Programmable Gate Array)是可编程ASIC。
ASIC专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。根据一个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点。
FPGA采用同步时钟设计,使用全局时钟驱动,采用时钟驱动方式在各级专用布线资源上灵活布线,ASIC有时采用异步逻辑,一般采用门控时钟驱动,一旦设计完成,其布线是固定的。FPGA比ASIC开发周期短,成本低,设计灵活。
CPLD(Complex Programmable Logic Device)是复杂可编程逻辑器件。CPLD开关矩阵路径设计的一个优点是信号通过芯片的延时时间是确定的。设计者通过计算经由功能模块、I/O模块和开关矩阵的延迟就可以任何信号的延迟时间,并且信号沿金属线传递所引起的延迟是可忽略的。