(完整)FPGA笔试题及答案总结,推荐文档 下载本文

第 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:可编程逻辑阵列,一种用于大规模的与阵列和或阵列的逻辑器