1、1、 FPGA 结构一般分为三部分:可编程逻辑块( CLB)、可编程 I/O 模块和可编程内部连线。 2 CPLD 的内部连线为连续式布线互连结构,任意一对输入、输出端之间的延时是固定 ; FPGA 的内部连线为分段式布线互连结构,各功能单元间的延时不定(不可预测 )。 3 大规模可编程器件主要有 CPLD 和 FPGA 两类,其中 CPLD 通过可编程乘积项逻辑实现其逻辑功能。 基于 SRAM 的 FPGA 器件,每次上电后必须进行一次配置。 FPGA 内部阵列的配置一般采用在电路可重构技术,编程数据保存在静态存储器 (SRAM) ,掉电易失。 4 目前世界上有十几家生产 CPLD/FPGA
2、 的公司,最大的 两 家是: Altera, Xilinx。 5 硬件描述语言 (HDL)是 EDA 技术的重要组成部分,是电子系统硬件行为描述、结构描述、数据流描述的语言,它的种类很多,如 VHDL、 Verilog HDL、 AHDL 6 WHEN_ELSE 条件信号赋值语句 和 IF_ELSE 顺序语句的异同 WHEN_ELSE 条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。 IF_ELSE 顺序 语句中有分号;是顺序语句,必须放在进程中 7 可编程逻辑器件设计输入有原理图输入、硬件描述语言输入和波形输入三种方式 。 原理图输入方式是一种最直接的设
3、计描述方式, 硬件描述语言的突出优点是: * 语言与工艺的无关性;语言的公开可利用性,便于实现大规模系统的设计; * 具有很强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间的转换非常方便,用不着对底层的电路和 PLD 结构的熟悉。 波形设计输入适用于时序逻辑和有重复性的逻辑函数。 8 用 VHDL/Veilog HDL 语言开发可编程逻辑电路的完整流程: 文本编辑功能仿真逻辑综合 布局布线时序仿真。 * 所谓综合,就是根据设计功能和实现该设计的约束条件 (如面积、速度、功耗和成本等 ),将设计输入转换成满足要求的电路设计方案,该方案必须同时满足与其的功能和约束条件。综合的过程也是
4、设计目标的优化过程,其目的是将多个模块化设计文件合并为一个网表文件,供布局布线使用,网表中包含了目标器件中的逻辑单元和互连的信息。 *布局布线就是根据设计者指定的约束条件 (如面积、延时、时钟等 )、目标器件的结构资源和工艺特性,以最优的方式对逻辑元件布局,并准确地实现元件间的互连,完成实现方案 (网表 )到使实际目标 器件 (FPGA 或 CPLD)的变换。 9 基于 EDA 软件的 FPGA / CPLD 设计流程为: 原理图 /HDL 文本输入 功能仿真 综合 适配 时序仿真 编程下载 硬件测试。 * 综合是 EDA 设计的关键步骤,综合就是将电路的高级语言转换成低级的,可与 FPGA/
5、CPLD 相映射的功能网表文件。为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。 10 构成一个完整的 VHDL 语言程序的五个基本结构 : 实体 (ENTITY)、 结构体 (ARCHITECURE)、 配置 (CONFIGURATION) 、 库(LIBRARY) 、 程序包 (PACKAGE) 。 *实体的由实体说明和结构体两部分组成。实体说明部分用于描述所设计系统的外部端口信号和参数的属性和设置,而结构体部分则定义了设计单元的具体功能、行为、数据流程或内部结构。 *结构体的三种描述方式,即行为级描述、数据流级描述和结构级描述。 结构体通常由结构体名称、定义语句和并
6、行处理语句构成, *程序包用于存放各设计模块能共享的数据类型、常数、子程序等。 *库用于存放已编译的实体、结构体、程序包和配置, 可以通过其目录进行查询和调用。在 VHDL 语 言中,可以存在多个不同的库,但是库与库之间是独立的,不能互相嵌套。 它可由用户生成或由 ASIC 芯片制造商提供,以便于在设计中为大家所共享。 常用库 : (1)IEEE 库 IEEE 库主要包括 std_logic_1164、 numeric_bit、 numeric_std 等程序包,还有一些程序包非 IEEE 标准,但并入 IEEE 库,如 std_logic_arich、 std_logic_unsigned、
7、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) 和
8、 信号 (signal) ,它们是用来存放各种类型数据的容器 。 12 在 VHDL 的端口声明语句中,端口方向包括 in 、 out 、 buffer 、 inout、 linkage “BUFFER” 为缓冲端口,与 OUT 类似,只是缓冲端口允许实体内部使用该端口信号,它可以用于输出,也可以用于端口信号的反馈。当一个结构体用“BUFFER” 说明输出端口时,与其连接的另一个结构体的端口也要用 BUFFER 说明。 以 “LINKAGE” 定义的端口不指定方向,无论哪个方向的信号都可以连接。 13 VHDL 的 PROCESS(进程)语句是由 顺序语句 组成的,但其本身却是 并行语句 。
9、14 VHDL 的子程序有 过程 (PROCEDURE) 和 函数 (FUNCTION) 两种类型 ,具有可重载性特点 。 15 图形文件的扩展名是 .bdf ; 矢量 波形文件的扩展名是 .vwf ; 使用 VHDL语言,文本设计文件的扩展名是 .vhd ; 自建元件图形符号文件的扩展名 .bsf;资源分配说明文件扩展名 .qsf, 用文本打开它可以修改引脚编号 ; 逻辑综合会生成 edf 文件; 双击 .qpf 文件可启动 QuartusII 并打开已有工程。 16 图形编辑中模块间的连线有三种形式: 节点线 、总线和管道线 17 Quartus 编译器编译 FPGA 工程最终生产两种不同
10、用途的文件,它们分别是 .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 现场可编程门阵列
11、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
12、. 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 Circui
13、ts 专用集成电路 16 ISP In System Programmable 在系统可编程 17 ICR In Circuit Re-config 在电路可重构 18 RTL Register Transfer Level 寄存器传输级 选择: 1 基于 VHDL 设计的仿真包括有 门级时序仿真、 行为仿真、 功能仿真和 前端功能仿真这四种,按照自顶向下的设计流程,其先后顺序应该是:_D_ A B. C D 2 执行 Quartus II 的 B 命令,可以检查设计电路错误。 A Create Default Symbol B Compiler-编译 C Simulator -时序仿真 D
14、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 三态
15、控制电路 7 下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的 _。 A. 原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计; B. 原理图输入设计方法一般是一种自底向上的设计方法; C. 原理图输入设计方法无法对电路进行功能描述; D. 原理图输入设计方法也可进行层次化设计。 8 在 VHDL 语言中,下列对进程( PROCESS)语句的语句结构及语法规则的描述中,不正确的是 _C_。 A. PROCESS 为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。 B. 敏感信号参数表中,不一定要列出进程中使用的所有输入信号; C.
16、进程由说明部分、结构体部分、和敏感信号三部分组成; D. 当前进程中声明的变量不可用于其他进程 9 IP 核在 EDA 技术和开发中占有很重要的地位,提供 VHDL 硬件描述 语言功能块,但不涉及实现该功能模块的具体电路的 IP 核为 C A 硬件 IP B 固件 IP C 软件 IP D 都不是 10 综合是 EDA 设计的关键步骤,下面对综合的描述中错误的是 A 综合就是把抽象设计中的一种表示转换成另一种表示的过程。 B 综合就是将电路的高级语言转换成低级的,可与 FPGA/CPLD 相映射的功能网表文件。 C 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。 D 综
17、合可理解为一种映射过程,并且这种映射关系 是唯一的,即综合结果是唯一的。 11 大规模可编程器件主要有 CPLD 和 FPGA 两类,下面对 FPGA 结构与工作原理描述中,正确的是 C A FPGA 全称为复杂可编程逻辑器件 B FPGA 是基于乘积项结构的可编程逻辑器件。 C 基于 SRAM 的 FPGA 器件,每次上电后必须进行一次配置。 D 在 Altera 公司生产的器件中, MAX7000 系列属于 FPGA 结构 12 大规模可编程器件主要有 CPLD 和 FPGA 两类,其中 CPLD 通过 A 实现其逻辑功能。 A 可编程乘积项逻辑; B 查找表 (LUT) C 输入缓冲 D
18、 输出缓冲 13 进程中的信号赋值语句,其信号更新是 C A 按顺序完成 B 比变量更快完成 C 在进程最后完成 D 都不对 14 VHDL 语言是一种结构化的语言,一个设计实体 (电路模块 )包括实体说明与结构体两部分,结构体描述 B A 器件的外部特性 B 器件的内部功能 C 器件的综合约束 D 器件外部特性与内部功能 15 关于 VHDL 的数字,请找出以下数字中最大的一个 A 2#1111_1110# B 8#276# C 10#170# D 16#E#E1 判断下列标识符书写是否合法 Architecture architecture add2-1 add2_1 2_009 2,00
19、9 2.009e3 2.009 E3 VHDL 语言的短标识符遵循以下命名规则: * 短标识符必须以英文字母开头; * 短标识符由 26 个字母 (A Z, a z)、数字 (0 9)和下划线 “_”字符组成; * 下划线 “_”的前后都必须有英文字母或者数字; * 短标识符不区分大小写; 如: EDA、 Eda、 eda 均为相同的命名。 VHDL 语言的扩展标识符遵循以下命名规则 : * 扩展标识符用反斜杠来分隔;如: adde, begin-add等。 * 扩展标识符允许包含图形符号及空格等;如: counter B=A SLL 1; 逻辑左移 B=0010 C=A SRL 1; 逻辑右
20、移 C=0100 D=A SLA 1; 算术左移 D=0011 E=A SRA 1; 算术右移 E=1100 F=A ROL 1; 循环左移 F=0011 G=A ROR 1; 循环右移 G=1100 VHDL的 数据对象 有三种类型: 常量 (constant)、 变量 (varuable) 和 信号 (signal)它们是用来存放各种类型数据的容器。 * 常量。全局量 CONSTANT 常量名 : 数据类型 : = 表达式 ; CONSTANT DELAY : TIME : = 50 ns; Constant fbt: std_logic_vector:= “010110” ; * 变量。
21、局部量,在进程说明、过程说明和函数调用说明中使用。 变量说明语句的一般格式为: VARIABLE 变量名 : 数据类型 约束条件 : = 表达式 ; VARIABLE num : INTEGER RANGE 0 TO 127 : = 20; 变量赋值语句的格式: 变量名 : = 表达式 ; 对变量的赋值是立即生效的 * 信号。全局量 信号说明语句的格式: SIGNAL 信号名 : 数据类型 约束条件 : = 表达式 ; SINGNAL gnd : BIT : = 0; 信号赋值语句的格式: 信号名 = 表达式 AFTER时间表达式 ; D1=D2 AFTER 15 ns; 信号与变量的区别: 信号赋值语句在进程外作为并行语句,并发执行,与语句所处的位置无关。 变 赋值语句在进程内或子程序内作为顺序语句,按顺序执行,与语句所处的位置有关。 信号赋值符号为 =,变量赋值符号位 := 。信号赋值符号用于信号赋值动作,不立即生效,变量赋值符号用于变量赋值动作,立即生效。 例如:已知 start 为 STD_LOGIC 类型信号, sum 是 INTEGER 类型信号,判断下列程序段 PROCESS (start) BEGIN FOR I in 1 to 9 LOOP Sum:=sum+i END LOOP; END PROCESS; sum 是信号,赋值应该用 =