1、第二章 2-1 叙述 EDA 的 FPGA/CPLD 设计流程 。 P1316 答: 1.设计输入 (原理图 /HDL 文本编辑 ); 2.综合 ; 3.适配 ; 4.时序仿真与功能仿真 ; 5.编程下 载 ; 6.硬件测试 。 2-2 IP 是什么 ?IP 与 EDA 技术的关系是什么 ? P2426 IP 是什么 ? 答: IP 是知识产权核或知识产权模块, 用于 ASIC 或 FPGA/CPLD 中的预先设计好的电路功能模块 。 IP 与 EDA 技术的关系是什么 ? 答: IP 在 EDA 技术开发中具有十分重要的地 位;与 EDA 技术的关系 分有 软 IP、固 IP、 硬 IP:
2、软 IP 是用 VHDL 等硬件描述语言描述的功能块 ,并不涉及用什么具体电路元 件实现这些功能; 软 IP通常是以硬件描述语言 HDL 源文件的形式出现 。 固 IP 是完成了综合的功能块 ,具 有较大的设计深度,以 网表文件的形式提交客户 使用 。 硬 IP 提供设计的最终阶段产品 :掩模。 2-3 叙述 ASIC 的设计方法。 P1819 答: ASIC 设计方法 ,按版图结构及制造方法分有 半定制 (Semi-custom)和 全定制 (Full-custom)两种实现方法 。 全定制方法是一种 基于晶体管 级的, 手工 设计版图的制造方法。 半定制法是一种 约束性 设计方 式,约束的
3、目的是简化设计,缩短设计周期,降低设 计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为 门阵列法 、 标准单元法 和 可编程逻辑器件法 。 2-4 FPGA/CPLD 在 ASIC 设计中有什么用途 ? P16,18 答: FPGA/CPLD 在 ASIC 设计中 , 属于 可编程 ASIC 的 逻辑器件 ;使 设计效率大为提高,上市的 时间大为缩短。 2-5 简述在基于 FPGA/CPLD 的 EDA 设计流程中所涉及的 EDA 工 具 ,及其在整个流程中的作用。 P1923 答: 基于 FPGA/CPLD 的 EDA 设计流程中所涉及的 EDA 工 具 有: 设计输入编辑器
4、(作用: 接受 不同的设计输入表达方式,如 原理图输入方式 、 状态图输入方式 、 波形输入方式 以及 HDL 的文本输入方 式 。 ); HDL 综合器 (作用:HDL 综合器 根据工艺库 和 约束条件信息 ,将 设计输入编辑器 提供的信息转 化为 目标器件硬件结构细节 的信息 ,并在数字电路设计技术、化简优化算法以 及计算机软件等复杂结体进行优化处理 ); 仿真器 (作用: 行为模型的表达 、电子系统的建模 、 逻 辑电路 的 验证 及 门级系统的测试 ); 适配器 (作用: 完成目标系统在器件上的 布局 和 布线 ); 下载器 (作用: 把设计 结 果信息下 载到对应的实际器件 ,实 现
5、硬件设计 )。 第三章 3-1 OLMC(输出逻辑宏单元) 有何功能 ?说明 GAL 是怎样实现可编程组合电路与时序电路的。 P3436 OLMC 有何功能 ? 答: OLMC 单元设有多种组态 ,可配置 成 专用组合输出 、 专用输入 、 组合输出双向口 、 寄存器输出 、 寄存器输出双向口 等。 说明 GAL 是怎样实现可编程组合电路与时序电路的 ? 答: GAL( 通用阵列逻辑器件 ) 是 通过对其中的 OLMC( 输出 逻辑宏单元)的编程和 三种模式配置 ( 寄存器模式 、 复合模式 、 简单模式 ),实现 组合电路 与 时序电路 设计的。 3-2 什么是基于乘积项的可编 程逻辑结构
6、? P3334, 40 答: GAL、 CPLD 之类都是 基于乘积项 的 可编程 结构 ;即包含有 可编程与阵列 和 固定的或阵列 的 PAL(可编程阵列逻辑) 器件构成。 3-3 什么是基于查找表的可编程逻辑结构 ? P4041 答: FPGA(现场可编程门阵列) 是 基于查找表 的 可编程逻辑结构 。 3-4 FPGA 系列器件中的 LAB 有何作用 ? P4345 答: FPGA( Cyclone/Cyclone II) 系列器件 主要由 逻辑阵列块 LAB、 嵌入式存储器块 ( EAB) 、 I/O 单元 、 嵌入式硬件乘法器 和 PLL 等模块构成 ; 其 中 LAB( 逻辑阵列块
7、 ) 由一系列相邻的 LE(逻辑单元) 构成的 ; FPGA 可编程资源主要来自逻辑阵列块 LAB。 3-5 与传统的测试技术相比,边界扫描技术有何优点 ? P4750 答: 使用 BST( 边界扫描 测试 ) 规范测试 , 不必使 用物理探针 ,可在器件正常工作时在系统 捕获测量的功能数据 。克服传统的外探针测试法和“针床”夹具测试法来无法对 IC 内部节点无法测试的难题。 3-6 解释编程与配置这两个概念。 P58 答:编程: 基于 电可擦除存储单元的 EEPROM 或 Flash 技术 。 CPLD 一股使用此技术进行 编程。 CPLD 被编程后改变了电可擦除存储单元中的信息, 掉电后可
8、保存 。电可擦除编程工艺的优点是编程后 信息不会因掉电而丢失 ,但 编程次数 有限 , 编程的速度不快 。 配置: 基于 SRAM 查找表的编程单元 。编程 信息是保存在 SRAM 中 的, SRAM 在 掉电后编程信息立即丢失 ,在下次上电后,还需要重新载入编程信息 。 大部分 FPGA 采用该种 编程 工艺。 该 类器件的编程一般称为配置 。对于 SRAM型 FPGA 来说, 配置次数无限 ,且 速度快 ; 在 加电时可随 时更改逻辑 ;下载信息的保密性也不如 电可擦除 的编程。 3-7 请参阅相关资料,并回答问题:按本章给出的归 类方式,将基于乘积项的可编程逻辑结构的 PLD 器件归类为
9、CPLD;将基 于查 找 表 的 可 编程逻辑结构的 PLD 器什归类为 FPGA,那么, APEX 系列属于什么类型 PLD 器件 ? MAX II 系列又属于什么类型的 PLD 器 件 ?为什么 ? P5456 答: APEX(Advanced Logic Element Matrix)系列 属于 FPGA 类型 PLD 器件 ; 编程信息存于 SRAM 中 。 MAX II系列属于 CPLD 类型的 PLD 器 件 ; 编程信息存于 EEPROM 中 。 第四章 4-1:画出与下例实体描述对应的原理图符号元件: ENTITY buf3s IS - 实体 1:三态缓冲器 PORT (inp
10、ut : IN STD_LOGIC ; - 输入端 enable : IN STD_LOGIC ; - 使能端 output : OUT STD_LOGIC ) ; - 输出端 END buf3x ; ENTITY mux21 IS -实体 2: 2 选 1 多路选择器 PORT (in0, in1, sel : IN STD_LOGIC; output : OUT STD_LOGIC); 4-1.答案 4-2. 图 3-30所示的是 4 选 1多路选择器,试分别用 IF_THEN语句和 CASE语句的表达方式写出此电路的 VHDL程序。选择控制的信号 s1 和 s0 的数据类型为 STD_L
11、OGIC_VECTOR;当 s1=0, s0=0; s1=0, s0=1; s1=1, s0=0和 s1=1, s0=1分别执行 y y y y yNULL; END CASE; END PROCESS; END ART; 4-3. 图 3-31 所示的是双 2 选 1 多路选择器构成的电路 MUXK,对于其中 MUX21A,当 s=0和 1时,分别有 y diff diff diff diff NULL; END CASE; END PROCESS; END ARCHITECTURE ONE; 顶层文件: f_subber.VHD 实现一位全减器 LIBRARY IEEE; USE IEEE
12、.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY f_subber IS PORT(x,y,sub_in:IN STD_LOGIC; diffr,sub_out:OUT STD_LOGIC); END ENTITY f_subber; ARCHITECTURE ONE OF f_subber IS COMPONENT h_subber PORT(x,y:IN STD_LOGIC; diff,S_out:OUT STD_LOGIC); END COMPONENT; COMPONENT or2a PORT(a,b:IN STD
13、_LOGIC; c:OUT STD_LOGIC); END COMPONENT; SIGNAL d,e,f: STD_LOGIC; BEGIN u1: h_subber PORT MAP(x=x,y=y,diff=d,s_out=e); u2: h_subber PORT MAP(x=d,y=sub_in,diff=diffr,s_out=f); u3: or2a PORT MAP(a=f,b=e,c=sub_out); END ARCHITECTURE ONE; END ARCHITECTURE ART; 4-6.根据下图,写出顶层文件 MX3256.VHD 的 VHDL 设计文件。 4-6
14、.答案 MAX3256 顶层文件 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY MAX3256 IS PORT (INA,INB,INCK: IN STD_LOGIC; INC: IN STD_LOGIC; E,OUT:OUT STD_LOGIC); END ENTITY MAX3256; ARCHITECTURE ONE OF MAX3256 IS COMPONENT LK35 -调用 LK35 声明语句 PORT(A1,A2:IN STD_LOGIC; CLK:IN ST
15、D_LOGIC; Q1,Q2:OUT STD_LOGIC); END COMPONENT; COMPONENT D -调用 D 触发器声明语句 PORT(D,C:IN STD_LOGIC; CLK:IN STD_LOGIC; Q:OUT STD_LOGIC); END COMPONENT; COMPONENT MUX21-调用二选一选择器声明语句 PORT(B,A:IN STD_LOGIC; S:IN STD_LOGIC; C:OUT STD_LOGIC); END COMPONENT; SIGNAL AA,BB,CC,DD: STD_LOGIC; BEGIN u1: LK35 PORT MA
16、P(A1=INA,A2=INB,CLK=INCK, Q1=AA,Q2=BB); u2: D PORT MAP(D=BB;CLK=INCK,C=INC,Q=CC); u3: LK35 PORT MAP (A1=BB,A2=CC,CLK=INCK, Q1=DD,Q2=OUT1); u4: MUX21 PORT MAP (B=AA,A=DD,S=BB,C=E); END ARCHITECTURE ONE; 设计含有异步清零和计数使能的 16 位二进制加减可控计数器。 4-7.答案: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOG
17、IC_UNSIGNED.ALL; ENTITY CNT16 IS PORT(CLK,RST,EN:IN STD_LOGIC; CHOOSE:IN BIT; SETDATA:BUFFER INTEGER RANCE 65535 DOWNTO 0; COUT: BUFFER INTEGER RANCE 65535 DOWNTO 0); END CNT16; ARCHITECTURE ONE OF CNT16 IS BEGIN PROCESS(CLK,RST,SDATA) VARIABLE QI:STD_LOGIC_VECTOR(65535 DOWNTO 0); BEGIN IF RST=1 THE
18、N -计数器异步复位 QI:=(OTHERS=0); ELSIF SET=1 THEN -计数器一步置位 QI:=SETDATA; ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF EN=1 THEN 检测是否允许计数 IF CHOOSE=1 THEN -选择加法计数 QI:=QI+1; -计数器加一 ELSE QI=QI-1; -计数器加一 END IF; END IF; END IF; COUT=QI;-将计数值向端口输出 END PROCESS; END ONE; 第五章 5-1 归纳利用 Quartus II 进行 VHDL 文本输入设计的 流程 :
19、从文件输入一直到 SignalTap II 测试。 P95P115 答: 1 建立工作库文件夹和编辑设计文件 ; 2 创建工程 ; 3 编译前设置 ; 4 全程编译 ; 5 时序仿真 ; 6 引脚锁定 ; 7 配置文件下载 ; 8 打开 SignalTap II 编辑窗口 ; 9 调入 SignalTap II 的 待测信号 ; 10 SignalTap II参数设置 ; 11 SignalTap II 参数设置文件存盘 ; 12 带有 SignalTap II 测试 信息的 编译下载 ; 13 启动 SignalTap II 进行采样与分析 ; 14 SignalTap II 的其他设置和控制方法 。 5.6 5.7 5.8 5.9 5.10 5.12 5.13 5.14