1、典型FPGA的开发流程
(1)电路设计
(2)设计输出
(3)功能仿真
(4)综合优化
(5)综合后仿真
(6)布局布线
(7)时序仿真
(8)板级调试
(9)芯片编程与调试
2、FPGA内部资源包括哪些及作用?
1)、输入输出单元(IOB)
可编程输入/输出单元简称 I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。
2)、可编程逻辑块(CLB)
FPGA的基本可编程逻辑单元是由查找表和寄存器组成的,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置成触发器或锁存器。Altera基本可编程单元LE配置为寄存器加一个查找表。
3)、底层内嵌功能单元(DLL)
内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、 DSP 和CPU等软处理核(Soft Core)。
4)、丰富的布线资源(可编程布线矩阵)
布线资源连通FPGA内部的所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。可划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。
5)、嵌入式块 RAM(BRAM)
RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。Block RAM由一定数量固定大小的存储块构成,使用BRAM不占用额外逻辑资源,并且速度快。
6)、内嵌专用硬核
内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(***),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。
3、查找表LUT的原理
查找表(look-up-table)简称为LUT,本质上是一个RAM。目前FPGA 中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM,多于4输入逻辑可以使用多个LUT实现。
原理:当用户通过原理图或HDL语言描述了一个逻辑电路以后,CPLD/FPGA 开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM中,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。LUT可以配置成内部存储器,即分布式RAM。
4、FPGA芯片内的存储器资源是哪些?
FPGA芯片内有两种存储器资源:一种叫block ram,另一种是由LUT配置成的内部存储器(也就是分布式ram)。block ram由一定数量固定大小的存储块构成的,使用block ram,不占用额外的逻辑资源,并且速度快。但是使用的时钟消耗block ram的资源是其大小的整数倍。
FPGA中可以综合实现为RAM/ROM/CAM的三种资源:BLOCK RAM,查找表,FF触发器。
(1)在生成ram等存储单元的时候,应该首选block ram资源;其原因有二:第一:使用block ram等资源,可以节约更多的FF和4_LUT等底层可编写单元。使用block_ram可以说是不用白不用,最大程度发挥器件效能,节约成本的一种体现;第二:block ram是一种可以配置的硬件结构,其可靠性和速度与用LUT和register构建的存储器更有优势。
(2)弄清FPGA的硬件结构,合理使用block ram资源;
(3)分析block ram的容量,高效使用block ram资源
(4)分布式RAM资源(distribute RAM)
5、选择FPGA时考虑的因素有哪些?
6、FPGA和CPLD的区别?
CPLD | FPGA | |
内部结构 | 基于乘积项 | 基于查找表 |
程序存储 | 内部EEPROM/FLASH | SRAM,外挂EEPROM |
资源类型 | 组合资源丰富 | 时序资源丰富 |
集成度 | 低 | 高 |
使用场合 | 完成控制逻辑 | 完成比较复杂的算法 |
速度 | 慢 | 快 |
其他资源 | - | PLL,RAM和乘法器 |
保密性 | 可加密 | 一般不能保密 |
7、FPGA和ASIC的区别?
FPGA,即现场可编程门阵列,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本。
ASIC(Application Specific Integrated Circuit),即专用集成电路,是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求, ASIC分为全定制和半定制。亮点在于专用,量身定制所以执行速度较快。一句话总结就是,市场上买不到的芯片。水果的A系列处理器就是典型的ASIC。
FPGA | ASIC | |
速度 | 慢 | 快 |
个头 | 实现相同的功能规模需要大 | 实现相同的功能规模需要小 |
功耗 | 功耗大 | 功耗小 |
花费 | 便宜 | 贵 |
定位 | 规模小的 | 规模大的 |
8、FPGA、CPLD、ASIC的区别?
9、以下关于FPGA和ASIC描述正确的是:(ABD)
A、FPGA开发周期相对短 B、相同工艺下,ASIC能跑更快的时钟
C、FPGA更注重面积的要求。 D、ASIC批量生产时成本相对低
10、根据FPGA和CPLD的特点,分别适用于什么情况?(C)
A、CPLD适用于时序逻辑电路,FPGA适用于组合逻辑电路
B、CPLD适用于逻辑较大的设计,FPGA适用于逻辑规模较小的设计
C、CPLD适用于组合逻辑的设计,FPGA适用于时序逻辑的设计
D、CPLD适用于逻辑规模较小的设计,FPGA适用于逻辑规模较大的设计
11、FPGA通过( 查找表 )实现组合逻辑,CPLD通过( 乘积项 )实现组合逻辑。
12、FPGA中,可以综合实现为RAM的资源包括(ABD)
A、BLOCK RAM B、查找表 C可编程输入输出单元(IOB) D、FF触发器
13、什么是IP核?有哪些分类?
IP核(Intellectual Property core),即知识产权核。
IP核是一段具有特定电路功能的硬件描述语言程序,该程序通常与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。由于IP核将一些在数字电路中常用,但比较复杂的功能块设计成可修改参数的模块,因此FPGA的设计人员可以通过调用相关IP核来完成所需逻辑功能,从而节省了大量的开发时间。调用IP核能避免重复劳动,大大减轻设计人员的负担,因此使用IP核必然成为将来FPGA设计的一个发展趋势。
按IP核的硬件描述级实现程序,可将它分为三类:软核、硬核和固核。
软核(Soft IP Core) : 软核在EDA 设计领域指的是综合之前的寄存器传输级(RTL) 模型;具体在FPGA 设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是IP 核应用最广泛的形式。
固核(Firm IP Core) :固核在EDA 设计领域指的是带有平面规划信息的网表;具体在FPGA 设计中可以看做带有布局规划的软核,通常以RTL 代码和对应具体工艺网表的混合形式提供。将RTL 描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。 目前,固核也是IP 核的主流形式之一。
硬核 (Hard IP Core) :硬核在EDA 设计领域指经过验证的设计版图;具体在FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP 硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。
14、IP核和硬件原语有什么区别
硬件原语比较底层,可以针对一个逻辑单元操作,是软件中集成好的,不需要向调用IP核那样复杂的过程,可以直接在代码中调用,当然功能相对比较简单。而IP核功能比较多,调用时需要设置很多的参数。
15、IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP、下列所描述的IP核中,对于硬IP的正确的描述为(A)
A、其他选项都不是
B、提供用VHDL语言等硬件语言描述功能块,但不涉及实现该功能块的具体电路
C、提供设计的最终产品——掩膜
D、以网表的文件的形式提交用户,完成了综合的功能块
16、IP核中用HDL硬件描述语言描述的功能块,不涉及实现该功能块的具体电路的IP核为(A)
A 软IP B 固IP C 硬IP D 全对
17、为什么在FPGA构成的数字系统中要配备PROM或E2PROM?
掉电后数据丢失,每次上电,都要从PROM或 E2PROM中调取程序运行。
18、FPGA的下载方式有哪些?
1)主动串行方式(AS)
2)主动并行方式(AP)
3)被动串行方式(PS)
4)JTAG方式
19、FPGA固件烧写方案有哪些?
第一种:是使用专用的AS接口直接烧写该配置芯片,该种方式需要在电路板上设置一个独立的AS接口,占用PCB面积较大,使用起来不方便。
第二种方式,即通过JTAG接口,经过FPGA芯片间接烧写配置芯片。
20、JTAG链路加载信号信号线不包含(C)
A、tck B、tms C、tdelay D、tdi
21、FPGA在烧写FLASH时可以使用三种不同的文件类型,以下哪一种不是?(B)存疑
A. mcs B.prm C.bin D.hex
22、在EDA工具中,能将硬件描述语言转化为硬件电路的重要工具为(B)
A、仿真器 B、综合器 C、适配器 D、下载器
23、你所知道的可编程逻辑器件有哪些?
PAL,PLA,GAL,CPLD,FPGA
24、FPGA常用的电平标准包括(ABCD)
A、LVTTL B、LVCOMS C、LVDS D、ECL
25、以下是XILINX常用FPGA系列支持的电平标准的有哪些?(ABD)
A、TTL B、CMOS C、SSTL D、LVDS
26、TTL电平的输入高电平即Vh是(A)
A、2.4 B、3.5 C、2 D、1.5 解析:VH=2.4v,VL=0.4V
27、你知道哪些常用的逻辑电平?
常用逻辑电平:TTL、CMOS、LVTTL、LVCMOS、ECL(Emitter Coupled Logic)、
PECL(Pseudo/Positive Emitter Coupled Logic)、LVDS(Low Voltage Differential Signaling)、
GTL(Gunning Transceiver Logic)、BTL(Backplane Transceiver Logic)、ETL(enhanced
transceiver logic)、GTLP(Gunning Transceiver Logic Plus);RS232、RS422、RS485(12V,
5V,3.3V);
也有一种答案是:常用逻辑电平:12V,5V,3.3V。
28、下列属于FPGA编译的步骤有(BCE)
A、功能仿真 B、综合 C、布线 D、烧录 E、布局
29、以下属于verilog语法规定的I/O端口类型的是(ACD)
A、输入端口 B、差分信号端口 C、双向端口 D、输出端口
30、什么是逻辑综合
实现在满足设计电路的功能,速度及面积等限制条件下将行为级描述转化为指定的技术序中单元的连接。
31、请解释xilinx的FPGA专用术语DCM
DCM:提供一个完整的供片内和片外使用的时钟发生器。DCM使用完全数字延迟技术,允许高精度的控制时钟的相位和频率;使用完全的数字反馈系统;可以动态的补偿由于温度和电压偏移引起的时钟相位和频率的偏差。
32、xilinx 推荐高电平复位?
因为 xilinx 器件中,触发器的复位端都是高电平有效的, 且不可改变,如果你的复位信号低电平有效,那么就要额外增加一个反向器。
33、Xilinx的RAM可例化多种类型,如什么?(ABD)
A、简单双口RAM B、单口RAM C、三口RAM D、真双口RAM
34、用同样的仿真平台在同样的编译环境下,仿真同样的RTL代码,下面哪一个仿真耗时最长(A)
A、时序仿真 B、功能仿真 C、逻辑仿真 D、前仿真
35、下面是芯片中有关GPIO的叙述,不正确的是:(A)
A. GPIO一般只具有0态和1态,不具有高阻状态
B. GPIO的引脚一般是多功能复用的
C. GPIO作为输出接口时具有锁存功能
D. GPIO作为输入接口时具有缓冲功能
36、为什么需要IO电路?
三个作用:电平转换、加强驱动、ESD保护。
37、ESD电路的概念和作用?
概念:ESD,Elecro Static Discharge,即静电放电。
作用:保护CMOS电路中的栅氧化层(SiO2),以免被击穿。
38、FPGA系列的含义?