FPGA经典面试题_第1页
FPGA经典面试题_第2页
FPGA经典面试题_第3页
FPGA经典面试题_第4页
FPGA经典面试题_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 FPGAFPGA 与与 CPLDCPLD 内部结构区别 内部结构区别 CPLD 以 altraMAX7000 这种 PLD 为例 可分为三块结构 宏单元 Marocell 可编程连线 PIA 和 I O 控制块 宏单元是 PLD 的基本结构 由它来实现基本 的逻辑功能 可编程连线负责信号传递 连接所有的宏单元 I O 控制块负责 输入输出的电气特性控制 比如可以设定集电极开路输出 摆率控制 三态输 出等 这种基于乘积项 实际就是与或阵列 的 PLD 基本都是由 EEPROM 和 Flash 工艺制造的 一上电就可以工作 无需其他芯片配合 布线方式是全局 的 所以延时可预测 CPLD 适合做逻辑设计 FPGA FPGA 基于 LUT LUT 本质上就是一个 RAM 每一个 LUT 可以看成一个有 4 位地址线的 16x1 的 RAM 这也是为什么 FPGA 需要外接一个 rom 来上电配置 以 xilinx 的 Spartan II 为例 主要包括 CLBs I O 块 RAM 块和可编 程连线 在 spartan II 中 一个 CLB 包括 2 个 Slices 每个 slices 包括两个 LUT 两个触发器和相关逻辑 Slices 可以看成是 SpartanII 实现逻辑的最基 本结构 FPGA 的制造工艺确定了 FPGA 芯片中包含的 LUT 和触发器的数量非常多 往往都是几千上万 PLD 一般只能做到 512 个逻辑单元 而且如果用芯片价格 除以逻辑单元数量 FPGA 的平均逻辑单元成本大大低于 PLD 所以如果设计中 使用到大量触发器 例如设计一个复杂的时序逻辑 那么使用 FPGA 就是一个很 好选择 2 Latch2 Latch 和和 RegisterRegister 区别 行为描述中区别 行为描述中 LatchLatch 如何产生 如何产生 本质的区别在于 latch 是电平触发 reg 是边沿触发 时序设计中尽量使用 reg 触发 行为描述中 如果对应所有可能输入条件 有的输入没有对应明确的输出 系统会综合出 latch 比如 always a or b 缺少 else 语句 begin if a 1 精品文档 2欢迎下载 q b end 3 3 对竞争冒险的理解 以及如何消除 对竞争冒险的理解 以及如何消除 在组合逻辑中 由于门的输入信号通路中经过了不同的延时 导致到达该门的时间不一致 叫竞争 产生毛刺叫冒险 如果布尔式中有相反的信号则可能产生竞争和冒险现象 解决方法 一是添加布尔式的消去项 二是在芯片外部加电容 4 4 用用 VerilogVerilog 设计一个设计一个 5 5 分频器 分频器 5 5 分频 奇数分频都可以类似这么做分频 奇数分频都可以类似这么做 只需要改只需要改 div1div1 和和 div2div2 的参数 的参数 div1div1 为奇数分频除为奇数分频除 2 2 的余数 采用上升延和下降延分别触发不同波形 最后叠的余数 采用上升延和下降延分别触发不同波形 最后叠 加的方式产生奇数分频 加的方式产生奇数分频 module divfreq clk clk1x rst clk1xpose clk1xnege coutpose coutnege input clk input rst output clk1x output clk1xpose output clk1xnege output 2 0 coutpose output 2 0 coutnege reg clk1xpose reg clk1xnege reg 2 0 coutpose reg 2 0 coutnege parameter div1 2 div2 4 div1 5 2 div2 5 1 assign clk1x clk1xpose clk1xnege always posedge clk or negedge rst begin if rst clk1xpose 0 else if coutpose div1 clk1xpose clk1xpose 精品文档 3欢迎下载 else if coutpose div2 clk1xpose clk1xpose else clk1xpose clk1xpose end always negedge clk or negedge rst begin if rst clk1xnege 0 else if coutnege div1 clk1xnege clk1xnege else if coutnege div2 clk1xnege clk1xnege else clk1xnege clk1xnege end always posedge clk or negedge rst begin if rst coutpose 0 else if coutpose div2 coutpose 0 else coutpose coutpose 1 end always negedge clk or negedge rst begin if rst coutnege 0 else if coutnege div2 coutnege 0 else coutnege coutnege 1 end 精品文档 4欢迎下载 endmodule 1 FPGA 结构一般分为三部分 可编程逻辑块 CLB 可编程 I O 模块和 可编程内部连线 2 CPLD 的内部连线为连续式布线互连结构 任意一对输入 输出端之间的 延时是固定 FPGA 的内部连线为分段式布线互连结构 各功能单元间的延时 不定 不可预测 3 大规模可编程器件主要有 CPLD 和 FPGA 两类 其中 CPLD 通过可编程乘积 项逻辑实现其逻辑功能 基于 SRAM 的 FPGA 器件 每次上电后必须进行一次配 置 FPGA 内部阵列的配置一般采用在电路可重构技术 编程数据保存在静态存 储器 SRAM 掉电易失 4 目前世界上有十几家生产 CPLD FPGA 的公司 最大的两家是 Altera X ilinx 5 硬件描述语言 HDL 是 EDA 技术的重要组成部分 是电子系统硬件行为描 述 结构描述 数据流描述的语言 它的种类很多 如 VHDL Verilog HDL AHDL 6 WHEN ELSE 条件信号赋值语句 和 IF ELSE 顺序语句的异同 WHEN ELSE 条件信号赋值语句中无标点 只有最后有分号 必须成对出现 是并行语句 必须放在结构体中 IF ELSE 顺序语句中有分号 是顺序语句 必须放在进程中 7 可编程逻辑器件设计输入有原理图输入 硬件描述语言输入和波形输入 三种方式 原理图输入方式是一种最直接的设计描述方式 硬件描述语言的突出优点是 语言与工艺的无关性 语言的公开可利用性 便于实现大规模系统的设 计 精品文档 5欢迎下载 具有很强的逻辑描述和仿真功能 而且输入效率高 在不同的设计输入 库之间的转换非常方便 用不着对底层的电路和 PLD 结构的熟悉 波形设计输入适用于时序逻辑和有重复性的逻辑函数 8 用 VHDL Veilog HDL 语言开发可编程逻辑电路的完整流程 文本编辑 功能仿真 逻辑综合 布局布线 时序仿真 所谓综合 就是根据设计功能和实现该设计的约束条件 如面积 速度 功耗和成本等 将设计输入转换成满足要求的电路设计方案 该方案必须同时 满足与其的功能和约束条件 综合的过程也是设计目标的优化过程 其目的是 将多个模块化设计文件合并为一个网表文件 供布局布线使用 网表中包含了 目标器件中的逻辑单元和互连的信息 布局布线就是根据设计者指定的约束条件 如面积 延时 时钟等 目标 器件的结构资源和工艺特性 以最优的方式对逻辑元件布局 并准确地实现元 件间的互连 完成实现方案 网表 到使实际目标器件 FPGA 或 CPLD 的变换 9 基于 EDA 软件的 FPGA CPLD 设计流程为 原理图 HDL 文本输入 功能仿真 综合 适配 时序仿真 编程下载 硬 件测试 综合是 EDA 设计的关键步骤 综合就是将电路的高级语言转换成低级的 可与 FPGA CPLD 相映射的功能网表文件 为实现系统的速度 面积 性能的 要求 需要对综合加以约束 称为综合约束 10 构成一个完整的 VHDL 语言程序的五个基本结构 实体 ENTITY 结构体 ARCHITECURE 配置 CONFIGURATION 库 LI BRARY 程序包 PACKAGE 实体的由实体说明和结构体两部分组成 实体说明部分用于描述所设计系 统的外部端口信号和参数的属性和设置 而结构体部分则定义了设计单元的具 体功能 行为 数据流程或内部结构 精品文档 6欢迎下载 结构体的三种描述方式 即行为级描述 数据流级描述和结构级描述 结构体通常由结构体名称 定义语句和并行处理语句构成 程序包用于存放各设计模块能共享的数据类型 常数 子程序等 库用于存放已编译的实体 结构体 程序包和配置 可以通过其目录进行 查询和调用 在 VHDL 语言中 可以存在多个不同的库 但是库与库之间是独立 的 不能互相嵌套 它可由用户生成或由 ASIC 芯片制造商提供 以便于在设计 中为大家所共享 常用库 1 IEEE 库 IEEE 库主要包括 std logic 1164 numeric bit numeric std 等程序包 还有一些程序包非 IEEE 标准 但并入 IEEE 库 如 std logic arich std l ogic unsigned std logic signed 使用 IEEE 程序包 必须声明 2 std 库 包含 standard textio 程序包 Std 库符合 IEEE 标准 应用中不必声明 3 work 库 用户的 VHDL 设计先行工作库 4 vital 库 包含时序程序包 vital timing 和 vital primitives 设计开发过程通常 不用 每个设计实体都必须有各自完整的库说明语句和 use 语句 Use 语句的使 用将使说明的程序包对本设计实体部分全部开放 即是可视的 11 VHDL 的数据对象包括常量 constant 变量 varuable 和 信号 sig nal 它们是用来存放各种类型数据的容器 精品文档 7欢迎下载 12 在 VHDL 的端口声明语句中 端口方向包括 in out buffer inou t linkage BUFFER 为缓冲端口 与 OUT 类似 只是缓冲端口允许实体内部使用该 端口信号 它可以用于输出 也可以用于端口信号的反馈 当一个结构体用 B UFFER 说明输出端口时 与其连接的另一个结构体的端口也要用 BUFFER 说明 以 LINKAGE 定义的端口不指定方向 无论哪个方向的信号都可以连接 13 VHDL 的 PROCESS 进程 语句是由顺序语句 组成的 但其本身却是并 行语句 14 VHDL 的子程序有 过程 PROCEDURE 和 函数 FUNCTION 两种类型 具 有可重载性特点 15 图形文件的扩展名是 bdf 矢量波形文件的扩展名是 vwf 使用 V HDL 语言 文本设计文件的扩展名是 vhd 自建元件图形符号文件的扩展名 bsf 资源分配说明文件扩展名 qsf 用文本打开它可以修改引脚编号 逻辑综 合会生成 edf 文件 双击 qpf 文件可启动 QuartusII 并打开已有工程 16 图形编辑中模块间的连线有三种形式 节点线 总线和管道线 17 Quartus 编译器编译 FPGA 工程最终生产两种不同用途的文件 它们分 别是 sof 和 pof sof 是 SRAM Object File 下载到 FPGA 中 断电丢失 pof 是 Programmer Object File 下载到配置芯片中 上电重新配置 FPGA 18 FPGA 过程中的仿真有三种 行为仿真 逻辑仿真 时序仿真 19 IP 核在 EDA 技术和开发中占有很重要的地位 提供 VHDL 硬件描述语言 功能块 但不涉及实现该功能模块的具体电路的 IP 核为软件 IP 二 名词解释 写出下列缩写的中文 或者英文 含义 1 FPGA Field Programmable Gate Array 现场可编程门阵列 精品文档 8欢迎下载 2 VHDL Very High Speed Integrated Circuit Hardware Description Language 甚高速集成电路硬件描述语言 3 HDL Hardware Description Language 硬件描述语言 4 EDA Electronic Design Automation 电子设计自动化 5 CPLD Complex Programmable Logic Device 复杂可编程逻辑器件 6 PLD Programmable Logic Device 可编程逻辑器件 7 GAL generic array logic 通用阵列逻辑 8 LAB Logic Array Block 逻辑阵列块 9 CLB Configurable Logic Block 可配置逻辑模块 10 EAB Embedded Array Block 嵌入式阵列块 11 SOPC System on a Programmable Chip 可编程片上系统 12 LUT Look Up Table 查找表 13 JTAG Joint Test Action Group 联合测试行为组织 14 IP Intellectual Property 知识产权 15 ASIC Application Specific Integrated Circuits 专用集成电路 16 ISP In System Programmable 在系统可编程 17 ICR In Circuit Re config 在电路可重构 18 RTL Register Transfer Level 寄存器传输级 选择 精品文档 9欢迎下载 1 基于 VHDL 设计的仿真包括有 门级时序仿真 行为仿真 功能仿 真和 前端功能仿真这四种 按照自顶向下的设计流程 其先后顺序应该是 D A B C D 2 执行 Quartus II 的 B 命令 可以检查设计电路错误 A Create Default Symbol B Compiler 编译 C Simulator 时序仿真 D Timing Analyzer 时序分析 3 在设计输入完成后 应立即对设计文件进行 C A 编辑 B 编译 C 功能仿真 D 时序仿真 4 在 VHDL 中用 C 来把特定的结构体关联一个确定的实体 为一个大 型系统的设计提供管理和进行工程组织 A 输入 B 输出 C 综合 D 配置 5 电子系统设计优化 主要考虑提高资源利用率减少功耗 即面积优化 以及提高运行速度 即速度优化 下列方法 A 不属于面积优化 A 流水线设计 B 资源共享 C 逻辑优化 D 串行化 6 不完整地 IF 语句 其综合结果可实现 A 时序逻辑电路 B 组合逻辑电路 C 双向电路 D 三态控制电路 7 下面对利用原理图输入设计方法进行数字电路系统设计 那一种说法 是不正确的 A 原理图输入设计方法直观便捷 但不适合完成较大规模的电路系统设计 B 原理图输入设计方法一般是一种自底向上的设计方法 精品文档 10欢迎下载 C 原理图输入设计方法无法对电路进行功能描述 D 原理图输入设计方法也可进行层次化设计 8 在 VHDL 语言中 下列对进程 PROCESS 语句的语句结构及语法规则 的描述中 不正确的是 C A PROCESS 为一无限循环语句 敏感信号发生更新时启动进程 执行完成 后 等待下一次进程启动 B 敏感信号参数表中 不一定要列出进程中使用的所有输入信号 C 进程由说明部分 结构体部分 和敏感信号三部分组成 D 当前进程中声明的变量不可用于其他进程 9 IP 核在 EDA 技术和开发中占有很重要的地位 提供 VHDL 硬件描述语言 功能块 但不涉及实现该功能模块的具体电路的 IP 核为 C A 硬件 IP B 固件 IP C 软件 IP D 都不是 10 综合是 EDA 设计的关键步骤 下面对综合的描述中错误的是 A 综合就 是把抽象设计中的一种表示转换成另一种表示的过程 B 综合就是将电路的高级语言转换成低级的 可与 FPGA CPLD 相映射的功 能网表文件 C 为实现系统的速度 面积 性能的要求 需要对综合加以约束 称为综 合约束 D 综合可理解为一种映射过程 并且这种映射关系是唯一的 即综合结果 是唯一的 11 大规模可编程器件主要有 CPLD 和 FPGA 两类 下面对 FPGA 结构与工作 原理描述中 正确的是 A FPGA 全称为复杂可编程逻辑器件 精品文档 11欢迎下载 B FPGA 是基于乘积项结构的可编程逻辑器件 C 基于 SRAM 的 FPGA 器件 每次上电后必须进行一次配置 D 在 Altera 公司生产的器件中 MAX7000 系列属于 FPGA 结构 12 大规模可编程器件主要有 CPLD 和 FPGA 两类 其中 CPLD 通过实现其逻 辑功能 A 可编程乘积项逻辑 B 查找表 LUT C 输入缓冲 D 输出缓冲 13 进程中的信号赋值语句 其信号更新是 A 按顺序完成 B 比变量更快完成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论