FPGA试题
第一篇 FPGA基础题
1.1. ⑴ 结合Xilinx、Altera等公司的FPGA芯片,简要罗列一下FPGA内部的资源或专用模块,并简要说明这些资源的一些作用或用途。(至少列出5项,越多越好)
⑵如果,对内部特定资源,曾有应用经历,结合个人理解和体验,简要说明初步的设计技巧或设计经验。
1.可编程输入输出单元(IOB)
可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,其示意结构如图1-2所示。FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。
外部输入信号可以通过IOB模块的存储单元输入到FPGA的内部,也可以直接输入FPGA 内部。当外部输入信号经过IOB模块的存储单元输入到FPGA内部时,其保持时间(Hold Time)的要求可以降低,通常默认为0。
淮扬菜8大代表菜为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。
2.可配置逻辑块(CLB)
CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成,每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。
3.数字时钟管理模块(DCM)
业内大多数FPGA均提供数字时钟管理(Xilinx的全部FPGA均具有这种特性)。Xilinx推出最先进的FPGA提供数字时钟管理和相位环路锁定。相位环锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。
4.嵌入式块RAM(BRAM)
大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽深度)不能大于18k比特;其次,位宽最大不能超过36比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。
5.丰富的布线资源
布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置
阳光万丈的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。
6.底层内嵌功能单元
印度猴神内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Pha Locked Loop)、DSP和CPU等软处理核(Soft Core)。现在越来越丰富的内嵌功能单元,使得单片FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。 DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。Xilinx公司生产的芯片上集成了DLL,Altera公司的芯片集成了PLL。
7. 内嵌专用硬核
内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内
牛仔裤掉色怎么办
不得不的英语部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。孟瑶三级
Xilinx公司的高端产品不仅集成了PowerPC、Miroblaze、Picoblaze系列CPU,还内嵌了DSP Core模块,Altera的高端产品集成了Nios,能够开发标准的DSP 处理器及其相关应用,达到SOC的开发目的。
表格怎么缩小1.2 ⑴ FPGA一般设计流程如何,画出对应的流程图?
⑵针对个人理解和实践,列出个人理解中的关键设计流程,并指出核心设计流程中的关键技术或注意事项。
(1) PGA一般设计流程:
(2)
设计时应注意:
1. 设计必须文档化。要将设计思路,详细实现等写入文档,然后经过严格评审通过,后才能进行下一步的工作。
2.端口信号排列要统一,一个信号只占一行,最好按从哪个模块来到哪个模块
去的关系排列。
3.信号的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可
以理解的缩写,避免使人产生误解。
4.一个模块尽量只用一个时钟,这里的一个模块是指一个module。在多时钟域
的设计中涉及到跨时钟的设计最好有专门一个模块做时钟的隔离。这样做可以让综合器综合出更优的结果。
5.尽量在底层模块上做逻辑,在高层尽量做例化,顶层模块只到做例化,禁止
桂圆干的功效与禁忌出现任何胶连逻辑(glue logic),哪怕仅仅对某个信号取反
6.在FPGA的设计上禁止用纯组合逻辑产生latch。
7.一般来说,进入FPGA的信号必须先同步,所有模块的输出都要寄存器化,
以提高工作频率,这对设计做到时序收敛也是极有好处的。
8.除非是低功耗设计,不然不要用门控时钟:这会增加设计的不稳定性,在要