1、1、选择填空1 下列是 EDA 技术应用时涉及的步骤:A. 原理图/HDL 文本输入; B. 适配; C. 时序仿真; D. 编程下载; E. 硬件测试; F. 综合请选择合适的项构成基于 EDA 软件的 FPGA / CPLD 设计流程:A _ _ _ D _2 PLD 的可编程主要基于 A. LUT 结构 或者 B. 乘积项结构:请指出下列两种可编程逻辑基于的可编程结构:FPGA 基于 _CPLD 基于 _3 在状态机的具体实现时,往往需要针对具体的器件类型来选择合适的状态机编码。对于 A. FPGA B. CPLD 两类器件:一位热码 状态机编码方式 适合于 _ 器件;顺序编码 状态机编
2、码方式 适合于 _ 器件;4 下列优化方法中那两种是速度优化方法:_、_A. 资源共享 B. 流水线 C. 串行化 D. 关键路径优化单项选择题:5 综合是 EDA 设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,_是错误的。A. 综合就是将电路的高级语言转化成低级的,可与 FPGA / CPLD 的基本结构相映射的网表文件;B. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;C. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的。 D. 综合是纯软件的转换过程,与器件硬
3、件结构无关;6 嵌套的 IF 语句,其综合结果可实现_。A. 条件相与的逻辑B. 条件相或的逻辑C. 条件相异或的逻辑D. 三态控制电路7 在一个 VHDL 设计中 Idata 是一个信号,数据类型为 std_logic_vector,试指出下面那个赋值语句是错误的。A. idata LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S null;(二)在程序中存在两处错误,试指出,并说明理由:在编译时,提示的第一条错误为:Error: Line 12: File e:myworktestcnt4.vhd: VHDL synta
4、x error: If statement must have THEN, but found BEGIN instead12 行,IF 语句对应的关键字是 then 而非 begin14 行,Q1 是矢量,不能直接和整数 1 相加,需要使用重载函数1. 修改相应行的程序(如果是缺少语句请指出大致的行数):错误 1 行号: 12 程序改为:BEGIN 改为 THEN错误 2 行号: 3 程序改为:USE IEEE.STD_LOGIC_UNSIGNED.ALL;1 LIBRARY IEEE;2 USE IEEE.STD_LOGIC_1164.ALL;34 ENTITY CNT4 IS 5 POR
5、T ( CLK : IN STD_LOGIC ;6 Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; 7 END CNT4; 8 ARCHITECTURE bhv OF CNT4 IS9 SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); 10 BEGIN 11 PROCESS (CLK) BEGIN12 IF RISING_EDGE(CLK) begin 13 IF Q1 0); 17 END IF;18 END IF; 19 END PROCESS ;20 Q muxout muxout muxout muxout=d; end
6、case; END ARCHITECTURE rtl;5、VHDL 程序填空:(一) - 8 位分频器程序设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE._.ALL; ENTITY PULSE IS PORT ( CLK : IN STD_LOGIC; D : IN _ (7 DOWNTO 0); FOUT : OUT STD_LOGIC ); END; ARCHITECTURE one OF _ IS SIGNAL FULL : STD_LOGIC; BEGIN P_REG: PROCESS(CLK) _ CNT8 : STD_L
7、OGIC_VECTOR(_ DOWNTO 0); BEGIN IF _ THEN IF CNT8 = “11111111“ THEN CNT8 _; -当 CNT8 计数计满时,输入数据 D 被同步预置给计数器 CNT8 FULL = 1; -同时使溢出标志信号 FULL 输出为高电平 ELSE CNT8 _; -否则继续作加 1 计数 FULL = 0; -且输出溢出标志信号 FULL 为低电平 END IF; END IF; END PROCESS P_REG; P_DIV: PROCESS(_) VARIABLE CNT2 : STD_LOGIC; BEGINIF FULLEVENT A
8、ND FULL = 1 THEN CNT2 _; -如果溢出标志信号 FULL 为高电平,D 触发器输出取反 IF CNT2 = 1 THEN FOUT = 1; ELSE FOUT = 0; END IF; END IF; END PROCESS P_DIV;END; (二)下面程序是一个 10 线4 线优先编码器的 VHDL 描述,试补充完整。LIBRARY _ ;USE IEEE._ STD_LOGIC_1164_.ALL;ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR(_9 DOWNTO 0_);output : _ OUT _ STD
9、_LOGIC_VECTOR(3 DOWNTO 0) );END coder;ARCHITECTURE behav OF _ CODER _ ISSIGNAL SIN : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (_DIN _)BEGINIF (din(9)=0) THEN SIN = “1001“ ; _ ELSIF (din(8)=0)_ THEN SIN = “1000“ ; ELSIF (din(7)=0) THEN SIN = “0111“ ; ELSIF (din(6)=0) THEN SIN = “0110“ ; ELSIF (din(5)=0) THEN SIN = “0101“ ;ELSIF (din(4)=0) THEN SIN = “0100“ ;ELSIF (din(3)=0) THEN SIN = “0011“ ;