EDA期末试卷
一、填空题
1.一般把EDA技术的发展分为 MOS时代 、 CMOS代 和 ASIC 三个阶段。
2.EDA设计流程包括设计输入、设计实现 、实际设计检验 和 下载编程 四个步骤。
3.EDA设计输入主要包括 图形输入 、 HDL文本输入 和 状态机输入 。
4.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为 功能仿真 。
5.VHDL的数据对象包括 变量 、 常量和 信号,它们是用来存放各种类型数据的容器。
6.图形文件设计结束后一定要通过 仿真 ,检查设计文件是否正确。 7.以EDA方式设计实现的电路设计文件,最终可以编程下载到 FPGA 和 CPLD 芯片中,完成硬件设计和验证。 8.MAX+PLUS的文本文件类型是(后缀名) .VHD 。 9.在PC上利用VHDL进行项目设计,不允许在 根目录 下进行,必须在根目录为设计建立一个工程目录(即文件夹)。 10.VHDL源程序的文件名应与 实体名 相同,否则无法通过编译。
二、选择题:。
11. 在EDA工具中,能完成在目标系统器件上布局布线软件称为(C )
A.仿真器 B.综合器 C.适配器 D.下载器
12. 在执行MAX+PLUSⅡ的(D )命令,可以精确分析设计电路输入与输出波形间的延时量。
A .Create default symbol B. Simulator C. Compiler D.Timing Analyzer 13.VHDL常用的库是(A )
A. IEEE B.STD C. WORK D. PACKAGE 14.下面既是并行语句又是串行语句的是( C )
A.变量赋值 B.信号赋值 C.PROCESS语句 D.WHEN…ELSE语句
15.在VHDL中,用语句(D )表示clock的下降沿。 A. clock’EVENT B. clock’EVENT AND clock=’1’ C. clock=’0’ D. clock’EVENT AND clock=’0’
16. IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为__________。D
A .瘦IP B.固IP C.胖IP D.都不是
17. 综合是EDA设计流程的关键步骤,在下面对综合的描述中,
_________是错误的。D
A. 综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;
B. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件;
C. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;
D. 综合可理解为一种映射过程,并且这种映射关系是唯一的,即综合结果是唯一的。
18 大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是__C__。 A. FPGA全称为复杂可编程逻辑器件; B. FPGA是基于乘积项结构的可编程逻辑器件;
C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构。
19 进程中的信号赋值语句,其信号更新是___C____。 A. 按顺序完成; B. 比变量更快完成; C. 在进程的最后完成; D. 都不对。
20. VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___________。B A. 器件外部特性; B. 器件的内部功能; C. 器件的综合约束; D. 器件外部特性与内部功能。
21. 不完整的IF语句,其综合结果可实现________。A A. 时序逻辑电路 B. 组合逻辑电路 C. 双向电路 D. 三态控制电路
22. 子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化_________。B
①流水线设计 ②资源共享 ③逻辑优化 ④串行化 ⑤寄存器配平 ⑥关键路径法
A. ①③⑤ B. ②③④ C. ②⑤⑥ D. ①④⑥
23 下列标识符中,__________是不合法的标识符。B A. State0 B. 9moon C. Not_Ack_0 D. signall
24 关于VHDL中的数字,请找出以下数字中最大的一个:__________。A
A. 2#1111_1110# B. 8#276# C. 10#170# D. 16#E#E1
25.下列EDA软件中,哪一个不具有逻辑综合功能:________。B A. Max+Plus II B. ModelSim C. Quartus II D. Synplify
三、EDA名词解释,写出下列缩写的中文(或者英文)含义: 16. EDA: 电子设计自动化
17.VHDL和FPGA: 超高速硬件描述语言 现场可编程门阵列 18.元件例化 1. LPM 参数可定制宏模块库 2. RTL 寄存器传输级
3. UART 串口(通用异步收发器) 4. ISP 在系统编程
5. IEEE 电子电气工程师协会
6. ASIC 专用集成电路 7. LAB 逻辑阵列块
四、VHDL程序填空:(10分) LIBRARY IEEE; -- 8位分频器程序设计 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PULSE IS
PORT ( CLK : IN STD_LOGIC;
D : IN STD_LOGIC_VECTOR (7 DOWNTO 0); FOUT : OUT STD_LOGIC ); END;
ARCHITECTURE one OF PULSE IS SIGNAL FULL : STD_LOGIC; BEGIN
P_REG: PROCESS(CLK)
VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN
IF CLK’EVENT AND CLK = ‘1’ THEN IF CNT8 = \
CNT8 := D; --当CNT8计数计满时,输入数据D被同步预置给计数器CNT8
FULL <= '1'; --同时使溢出标志信号FULL输出为高电平
ELSE CNT8 := CNT8 + 1; --否则继续作加1计数 FULL <= '0'; --且输出溢出标志信号FULL为低电平 END IF; END IF;
END PROCESS P_REG; P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN
IF FULL'EVENT AND FULL = '1' THEN
CNT2 <= NOT CNT2; --如果溢出标志信号FULL为高电平,输出取反
IF CNT2 = '1' THEN FOUT <= '1'; ELSE FOUT <= '0'; END IF; END IF;
END PROCESS P_DIV; END;
五、VHDL程序改错: 01 LIBRARY IEEE ;
02 USE IEEE.STD_LOGIC_1164.ALL ; 03 USE IEEE.STD_LOGIC_UNSIGNED.ALL; 04 ENTITY LED7CNT IS
D触发器05 PORT ( CLR : IN STD_LOGIC; 06 CLK : IN STD_LOGIC;
07 LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; 08 END LED7CNT;
09 ARCHITECTURE one OF LED7CNT IS
10 SIGNAL TMP : STD_LOGIC_VECTOR(3 DOWNTO 0); 11 BEGIN
12 CNT:PROCESS(CLR,CLK) 13 BEGIN
14 IF CLR = '1' THEN 15 TMP <= 0;
16 ELSE IF CLK'EVENT AND CLK = '1' THEN 17 TMP <= TMP + 1; 18 END IF; 19 END PROCESS; 20 OUTLED:PROCESS(TMP) 21 BEGIN 22 CASE TMP IS
23 WHEN \24 WHEN \25 WHEN \26 WHEN \
27 WHEN \28 WHEN \29 WHEN \30 WHEN \31 WHEN \32 WHEN \33 WHEN OTHERS => LED7S <= (OTHERS => '0'); 34 END CASE; 35 END PROCESS; 36 END one;
在程序中存在两处错误,试指出,并说明理由:
提示:在MAX+PlusII 10.2上编译时报出的第一条错误为: Error:Line 15: File ***/led7cnt.vhd: Type error: type in waveform element must be “std_logic_vector” 第 15 行, 错误:整数0不能直接赋值给TMP矢量 改正:TMP <= (OTHERS => ‘0’);
第 16 行, 错误:ELSE IF 缺少一条对应的END IF语句 改正:将ELSE IF 改为关键字ELSIF
四、分析题:
分析下面的VHDL的源程序,说明设计电路的功能。
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity test1 is
port( clk: in std_logic; j,k:in std_logic; q,qn:out std_logic); end test1;
architecture one of test1 is signal q_temp:std_logic:='0';
signal jk:std_logic_vector(1 downto 0); begin jk<=j&k; process(j,k,clk) begin
if clk'event and clk='0' then case jk is
when\ when\ when\ when\ when others=>q_temp<='X';
end case; end if; q<=q_temp; qn<=not q_temp; end process; end one;
20分析下图,说明功能并用VHDL实现此电路的功能 21.试用VHDL编写4-2线优先编码器 五、设计题:
22.用74ls161设计一个十进制计数器
23用VHDL设计1位全减器sub_1,要求列出真值表,写出表达式,画出原理图。
24.编写8位左移移位寄存器的VHDL源程序。设电路的并行数据输入端为D[7..0],并行数据输出端为Q[7..0],串行数据输入端为DSL,时钟输入端为CLK。LDN是预置控制输入端,当LDN=0时,Q[7..0]=D[7..0]。CLRN是复位控制端,当CLRN=0时,移位寄存器被复位。
end case; end if; q<=q_temp; qn<=not q_temp; end process; end one;
20分析下图,说明功能并用VHDL实现此电路的功能 21.试用VHDL编写4-2线优先编码器 五、设计题:
22.用74ls161设计一个十进制计数器
23用VHDL设计1位全减器sub_1,要求列出真值表,写出表达式,画出原理图。
24.编写8位左移移位寄存器的VHDL源程序。设电路的并行数据输入端为D[7..0],并行数据输出端为Q[7..0],串行数据输入端为DSL,时钟输入端为CLK。LDN是预置控制输入端,当LDN=0时,Q[7..0]=D[7..0]。CLRN是复位控制端,当CLRN=0时,移位寄存器被复位。