FPGA笔试题汇总

FPGA笔试题汇总
FPGA笔试题汇总

=====================第1章FPGA基础知识=================== FPGA设计工程师努力的方向

SOPC,高速串行I/O,低功耗,可靠性,可测试性和设计验证流程的优化等方面。随着芯片工艺的提高,芯片容量、集成度都在增加,FPGA 设计也朝着高速、高度集成、低功耗、高可靠性、高可测、可验证性发展。芯片可测、可验证,正在成为复杂设计所必备的条件,尽量在上板之前查出bug,将发现bug的时间提前,这也是一些公司花大力气设计仿真平台的原因。另外随着单板功能的提高、成本的压力,低功耗也逐渐进入FPGA设计者的考虑范围,完成相同的功能下,考虑如何能够使芯片的功耗最低。高速串行IO的应用,也丰富了FPGA 的应用范围,象xilinx的v2pro中的高速链路也逐渐被应用。总之,学无止境,当掌握一定概念、方法之后,就要开始考虑FPGA其它方面的问题了。

简述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。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等)

IC设计流程

写出一份设计规范,设计规范评估,选择芯片和工具,设计,(仿真,设计评估,综合,布局和布线,仿真和整体检验)检验,最终评估,系统集成与测试,产品运输。设计规则:使用自上而下的设计方法(行

为级,寄存器传输级,门电路级),按器件的结构来工作,做到同步设计,防止亚稳态的出现,避免悬浮的节点,避免总线的争抢(多个输出端同时驱动同一个信号)。

设计测试(DFT)强调可测试性应该是设计目标的核心,目的是排除一个芯片的设计缺陷,捕获芯片在物理上的缺陷问题。

ASIC设计要求提供测试结构和测试系向量。FPGA等默认生产厂商已经进行了适当的测试。测试的10/10原则:测试电路的规模不要超过整个FPGA的10%,花费在设计和仿真测试逻辑上的时间不应超过设计整个逻辑电路的10%。

FPGA基本结构

可编程输入/输出单元,基本可编程逻辑单元,嵌入式块RAM,丰富的布线资源,底层嵌入式功能单元,内嵌专用硬核。

常用的电气标准有LVTTL,LCCMOS,SSTL,HSTL,LVDS,LVPECL,PCI等。FPGA悬浮的总线会增加系统内的噪声,增加功率的损耗,并且具有潜在的产生不稳定性的问题,解决方案是加上拉电阻。

对于SRAM型器件,路径是通过编程多路选择器实现;对于反熔丝型器件,路径通过传导线(高阻抗,有RC延时)来实现的。这两种结构都显着加大了路径延时。

FPGA选型时要考虑哪些方面

需要的逻辑资源、应用的速度要求,功耗,可靠性,价格,开发环境和开发人员的熟悉程度。

同步设计的规则

单个时钟域:

1、所有的数据都要通过组合逻辑和延时单元,典型的延时单元是触发器,这些触发器被一

个时钟信号所同步;

2、延时总是由延时单元来控制,而不是由组合逻辑来控制;

3、组合逻辑所产生的信号不能在没有通过一个同步延时单元的情况下反馈回到同一个组

合逻辑;

4、时钟信号不能被门控,必须直接到达延时单元的时钟输入端,而不是经过任何组合逻辑;

5、数据信号必须只通向组合逻辑或延时单元的数据输入端。多个时钟域:

把通过两个不同时钟作用区域之间的信号作为异步信号处理

你所知道的可编程逻辑器件有哪些

PAL/GAL,CPLD,FPGA

PLA:可编程逻辑阵列,一种用于大规模的与阵列和或阵列的逻辑器件,用于实现布尔逻辑的不同组合。

PLA:可编程阵列逻辑,一种逻辑器件,由大规模的与阵列和规模小且数量固定的或门组成,可用于实现布尔逻辑和状态机。

PAL:很短的交货时间、可编程的、没有NRE(非循环工程)费用门阵列:高密度性、能实现许多逻辑函数、速度相对较快

FPGA、ASIC、CPLD的概念及区别

FPGA(FieldProgrammableGateArray)是可编程ASIC。

ASIC专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。根据一个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。与门阵列等其它ASIC(ApplicationSpecificIC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点。

FPGA采用同步时钟设计,使用全局时钟驱动,采用时钟驱动方式在各级专用布线资源上灵活布线,ASIC有时采用异步逻辑,一般采用门控时钟驱动,一旦设计完成,其布线是固定的。FPGA比ASIC开发周期短,成本低,设计灵活。

CPLD(ComplexProgrammableLogicDevice)是复杂可编程逻辑器件。CPLD开关矩阵路径设计的一个优点是信号通过芯片的延时时间是确定的。设计者通过计算经由功能模块、I/O模块和开关矩阵的延迟就可以任何信号的延迟时间,并且信号沿金属线传递所引起的延迟是可忽略的。

锁存器(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.组成计数器:移位寄存器可以组成移位型计数器,如环形或扭环形计数器。

JTAG信号

TCK:测试时钟输入,用于移位控制,上升沿将测试指令、测试数据

和控制输入信号移入芯片;下降沿时将数据从芯片移出。

TMS:测试模式选择,串行输入端,用于控制芯片内部的JTAG状态机。

TDI:测试数据输入,串行输入端,用于指令和编程数据的输入,在时钟上升沿,数据被捕获。

TDO:测试数据输出,串行输出端,时钟下降沿,数据被驱动输出。TRST:测试复位输入(仅用于扩展JTAG),异步、低电平有效,用于JTAG初始化时。

FPGA芯片内有哪两种存储器资源

FPGA芯片内有两种存储器资源:一种叫blockram,另一种是由LUT配置成的内部存储器(也就是分布式ram,distributeram)。Blockram由一定数量固定大小的存储块构成的,使用BLOCKRAM资源不占用额外的逻辑资源,并且速度快。但是使用的时候消耗的BLOCKRAM资源是其块大小的整数倍。

FPGA中可以综合实现为RAM/ROM/CAM的三种资源及其注意事项

三种资源:blockram、触发器(FF)、查找表(LUT);注意事项:1、在生成RAM等存储单元时,应该首选blockram资源;原因有二:使用blockram等资源,可以节约更多的FF和4-LUT等底层可编程单元,最大程度发挥器件效能,节约成本;blockram是一种可以配置的硬件结构,其可靠性和速度与用LUT和register构建的存储器更有优势。

2、弄清FPGA的硬件结构,合理使用blockram资源;

3、分析blockram容量,高效使用blockram资源和分布式ram资源(distributeram)。

FPGA设计中对时钟的使用(例如分频等)

FPGA芯片有固定的时钟路由,这些路由能有减少时钟抖动和偏差。需要对时钟进行相位移动或变频的时候,一般不允许对时钟进行逻辑操作,这样不仅会增加时钟的偏差和抖动,还会使时钟带上毛刺。一般的处理方法是采用FPGA芯片自带的时钟管理器如PLL,DLL或DCM,或者把逻辑转换到触发器的D输入。

Xilinx中与全局时钟资源和DLL相关的硬件原语

常用的与全局时钟资源相关的Xilinx器件原语包括:BUFG,IBUFGDS,BUFG,BUFGP,BUFGCE,BUFGMUX,BUFGDLL,DCM等。HDL语言的层次概念

HDL语言是分层次的、类型的,最常用的层次概念有系统与标准级、功能模块级,行为级,寄存器传输级和门级。

查找表的原理与结构

查找表(look-up-table)简称为LUT,本质上是一个RAM。目前FPGA 中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出。

IC设计前端到后端的流程和EDA工具

设计前端也称逻辑设计,后端设计也称物理设计,两者并没有严格的界限,一般涉及到与工艺有关的设计就是后端设计。

1:规格制定:客户向芯片设计公司提出设计要求。

2:详细设计:芯片设计公司(Fabless)根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。目前架构的验证一般基于systemC,仿真可以使用systemC的仿真工具,CoCentric和VisualElite等。

3:HDL编码:设计输入工具:ultra,visualVHDL等4:仿真验证:modelsim5:逻辑综合:synplify

6:静态时序分析:synopsys的PrimeTime7:形式验证:Synopsys的Formality.

什么是“线与”逻辑,要实现它,在硬件特性上有什么具体要求

线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用OC门(集电极开路与非门)来实现,由于不用OC门可能使灌电流过大,而烧坏逻辑门,因此在输出端口应加一个上拉电阻。

IC设计中同步复位与异步复位的区别

同步复位在时钟沿采复位信号,完成复位动作。

异步复位不管时钟,只要复位信号满足条件,就完成复位动作。异步复位对复位信号要求比较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。

MOORE与MEELEY状态机的特征

Moore状态机的输出仅与当前状态值有关,且只在时钟边沿到来时才

会有状态变化。Mealy状态机的输出不仅与当前状态值有关,而且与当前输入值有关。

Latch和Register区别行为描述中Latch如何产生

本质的区别在于:latch是电平触发,register是边沿触发。

register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。时序设计中尽量使用register触发。行为描述中,如果对应所有可能输入条件,有的输入没有对应明确的输出,系统会综合出latch。

比如:出fsm(有限状态机)2.用verilog编程,语法要符合fpga设计的要求3.设计工程中可使用的工具及设计大致过程

(1)点路变量分析:投入5分硬币为一个变量,定义为A,为输入;投入10分硬币为一个变量,定义为B,为输入;售货机给出饮料为一变量,定义为Y,为输出;售货机找零为一变量,定义为Z,为输出。

(2)状态确定:电路共有两个状态:状态S0,表示未投入任何硬币;状态S1,表示投入了5分硬币。

(3)设计过程:设当前为S0状态,当接收到5分硬币时,转换到S1状态,等待继续投入硬币;当接收到10分硬币时,保持S0状态,弹出饮料,不找零。当前状态为S1时,表示已经有5分硬币,若再接收5分硬币,转换到S0状态,弹出饮料,不找零;若接收到10分硬币,转换到S0状态,弹出饮料,找零。

所用设计工具:QuartusII,modelsim

第4章名词解释

sram,falshmemory及dram的区别

sram:静态随机存储器,存取速度快,但容量小,掉电后数据会丢失,不像DRAM需要不停的REFRESH,制造成本较高,通常用来作为快取(CACHE)记忆体使用

flash:闪存,存取速度慢,容量大,掉电后数据不会丢失

dram:动态随机存储器,必须不断的重新的加强(REFRESHED)电位差量,否则电位差将降低至无法有足够的能量表现每一个记忆单位处于何种状态。价格比sram便宜,但访问速度较慢,耗电量较大,常用作计算机的内存使用。

SSRAM:SynchronousStaticRandomAccessMemory同步静态随机访问存储器。它的一种类型的SRAM。SSRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。这一点与异步SRAM不同,异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。

SDRAM:SynchronousDRAM同步动态随机存储器。

FPGA设计中既可以用于静态验证又可以用于动态仿真的是(断言,类似于C语言里的assert,静态验证类似于程序在编译阶段就能发现错误,动态仿真是仿真阶段发现错误)的码片速率是:

PROM分类:

可擦除可编程的只读存储器(EPROM):施加高压电信号编程,置于

紫外线中可擦除其内容。

电可擦除可编程只读存储器(E2PROM):高压编程和擦除。

Flash存储器:电信号对其编程和擦除。

PROM分类:

名词IRQ,BIOS,USB,VHDL,SDR

给你一堆名词,举例他们的作用。有PCI、ECC、DDR、interrupt、pipeline 中断的类型,作用。

IRQ,BIOS,USB,VHDL,VLSIVCO(压控振荡器)RAM(动态随机存储器),FIRIIRDFT(离散傅立叶变换)或者是中文的,比如:a.量化误差b.直方图 c.白平衡PCI:PeripheralComponentInterconnect(PCI),DDR:DoubleDataRate

ECC:ErrorCheckingandCorrecting

ATPG:AutomaticTestPatternGenerator自动测试相量生成CMOS:ComplementMetelOxideSemi-conduct

ECO:EngineeringChangeOrder工程修改订单。

PCI:PCI是PeripheralComponentInterconnect(外设部件互连标准)的缩写PCI是由Intel公司1991年推出的一种局部总线。最早提出的PCI 总线工作在33MHz频率之下,传输带宽达到了133MB/s(33MHzX32bit/8),它为显卡,声卡,网卡,MODEM等设备提供了连接接口。

ECC:errocheckingandcorrecting数据校验纠错,应用在内存上ECC内存DDR:内存doubledaterate

Interrupt:中断分为硬件中断和软件中断。硬件中断分为可屏蔽中断和不可屏蔽中断。Pipeline:流水线采用流水线技术的CPU使用指令重叠的办法,即在一条指令还没有处理完时,就开始处理下一条指令。典型的流水线将每一条机器指令分成5步,即取指、译码、取操作数(或译码2)、执行、回写。在理想条件下,平均每个时钟周期可以完成一条指令而所谓“超级流水线处理”是将机器指令划分为更多级的操作,以减轻每一级的复杂程度。在流水线的每一步中,如果需要执行的逻辑操作少一些,则每一步就可以在较短的时间内完成。TLB:TranslateLooksideBuffers,转换旁视缓冲器

apic:AdvancedProgrammableInterruptController高级程序中断控制器.DP

ualProcessing双处理器

相关主题
相关文档
最新文档