EDA技术试卷一 答案
- 格式:doc
- 大小:405.00 KB
- 文档页数:5
☆ ☆ 密
封 线 内 不 要 答 题 ☆ ☆
姓 名 学 号 班 级
本套试卷共 5 页 一、选择题:(20分) 1. 大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是:___D__ A. CPLD是基于查找表结构的可编程逻辑器件 B. CPLD即是现场可编程逻辑器件的英文简称 C. 早期的CPLD是从FPGA的结构扩展而来 D. 在Xilinx公司生产的器件中,XC9500系列属CPLD结构 2. 基于VHDL设计的仿真包括有①门级时序仿真、②行为仿真、③功能仿真和④前端功能仿真这四种,按照自顶向下的设计流程,其先后顺序应该是:_________D A.①②③④ B.②①④③ C.④③②① D.②④③① 3. 下面对利用原理图输入设计方法进行数字电路系统设计,哪一种说法是正确的:__________B A.原理图输入设计方法直观便捷,很适合完成较大规模的电路系统设计 B.原理图输入设计方法多用于较规范、规模不大的电路设计,和HDL代码描述方法均可以被综合,相得益彰 C.原理图输入设计方法无法对电路进行功能描述 D.原理图输入设计方法不适合进行层次化设计 4. 在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是:_______D
A.PROCESS为一无限循环语句 B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动 C.当前进程中声明的变量不可用于其他进程 D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成
5. 对于信号和变量的说法,哪一个是不正确的:_________A A.信号用于作为进程中局部数据存储单元 B.变量的赋值是立即完成的 C.信号在整个结构体内的任何地方都能适用 D.变量和信号的赋值符号不一样 6. 进程中的信号赋值语句,其信号更新是___C____。
A. 按顺序完成; B. 比变量更快完成; C. 在进程的最后完成; D. 都不对。 7. VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:_______D A.IEEE库 B.VITAL库 C.STD库 D.WORK工作库 ☆ ☆ 密
封 线 内 不 要 答 题 ☆ ☆
姓 名 学 号 班 级
8. VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___________。B A. 器件外部特性; B. 器件的内部功能; C. 器件的综合约束; D. 器件外部特性与内部功能。 9. 下列语句中,不属于并行语句的是:_______B A.进程语句 B.CASE语句 C.元件例化语句 D.WHEN…ELSE…语句 10. 下列标识符中,__________是不合法的标识符。B
A. State0 B. 9moon C. Not_Ack_0 D. signall 二、EDA名词解释或者简述(10分) 写出下列缩写的中文(或者英文)含义: 1. ASIC 专用集成电路 2. FPGA 现场可编程门阵列 3. IP 知识产权核(软件包) 4. FSM 有限状态机 5. HDL 硬件描述语言
三、VHDL程序填空:(20分) 1. 以下程序是一个BCD码表示0~99计数器的VHDL描述,试补充完整。(10分)答案:答案:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt100b is port( clk, rst, en : in std_logic; cq : out std_logic_vector(7 downto 0);-- 计数输出 cout: out std_logic); -- 进位输出 end entity cnt100b; architecture bhv of cnt100b is begin process (clk, rst, en) variable cqi : std_logic_vector(7 downto 0); begin if rst = '1' then cqi := (others => „0‟); -- 计数器清零复位 else if clk‟event and clk = „1‟ then -- 上升沿判断 if en = '1' then if cqi(3 downto 0) < "1001" then-- 比较低4位 cqi := cqi + 1; -- 计数加1 else if cqi(7 downto 4) < "1001" then -- 比较高4位 cqi := cqi + 16; else cqi := (others => '0'); end if; cqi (3 downto 0) := “0000”; -- 低4位清零 end if; end if; end if; end if; if cqi = “10011001” then -- 判断进位输出 cout <= '1'; else cout <= '0'; end if; cq <= cqi; end process; end architecture bhv; ☆ ☆ 密
封 线 内 不 要 答 题 ☆ ☆
姓 名 学 号 班 级
2. VHDL程序填空:下面程序是n输入与门的VHDL描述,试补充完整。(10
分) __________ ieee; use _____________________.all; entity andn is ________ (n : integer); -- 类属参数声明 port ( a : in std_logic_vector( ______ downto 0); c : out std_logic); end; ________________ behav of ________ is -- 结构体声明 begin process (____) _____________ int : std_logic; -- 变量声明 begin int := _____; -- 变量赋初值 for I in a'length – 1 downto 0 loop -- 循环判断 if a(i) = '0' then int := '0'; end if; end loop; c <= ________; -- 输出判断结果 end process; end behav; 答案:library ieee.std_logic_1164 generic n-1 architecture andn a variable „1‟ int 四、VHDL程序调试改错:(10分) 仔细阅读下列程序,回答问题 LIBRARY IEEE; -- 1 USE IEEE.STD_LOGIC_1164.ALL; -- 2 ENTITY MOORE1 IS -- 3 PORT ( DATAIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0); -- 4 CLK, RST: IN STD_LOGIC; -- 5 Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); -- 6 END MOORE1; -- 7 ARCHITECTURE BEHAV OF MOORE1 IS -- 8 SIGNAL ST_TYPE IS (ST0, ST1, ST2, ST3, ST4); -- 9 SIGNAL C_ST : ST_TYPE; -- 10 BEGIN -- 11 PROCESS (CLK, RST) -- 12 BEGIN -- 13 IF RST = '1' THEN C_ST <= ST0; Q <= "0000"; -- 14 ELSIF CLK'EVENT AND CLK = '1' THEN -- 15 CASE C_ST IS -- 16 WHEN ST0 => IF DATAIN = "10" THEN C_ST <= ST1; -- 17 ELSE C_ST <= ST0; -- 18 END IF; Q <= "1001"; -- 19 WHEN ST1 => IF DATAIN = "11" THEN C_ST <= ST2; -- 20 ELSE C_ST <= ST1; -- 21 END IF; Q <= "0101"; -- 22 WHEN ST2 => IF DATAIN = "01" THEN C_ST <= ST3; -- 23 ELSE C_ST <= ST0; -- 24 END IF; Q <= "1100"; -- 25 WHEN ST3 => IF DATAIN = "00" THEN C_ST <= ST4; -- 26 ELSE C_ST <= ST2; -- 27 END IF; Q <= "0010"; -- 28 WHEN ST4 => IF DATAIN = "11" THEN C_ST <= ST0; -- 29 ELSE C_ST <= ST3; -- 30 END IF; Q <= "1001"; -- 31 END CASE; -- 32 END IF; -- 33 END PROCESS; -- 34 END BEHAV; -- 35
1.在程序中存在两处错误,试指出,并说明理由:
在Quartus II中编译时,其中一个提示的错误为: Error (Line 9): VHDL syntax error at MOORE1.vhd(9) near text "IS"; expecting ":", or ","
第9行,状态机数据类型声明错误,关键字应为TYPE 第32行,case语句缺少when others处理异常状态情况 2.修改相应行的程序(如果是缺少语句请指出大致的行数): 错误1 行号: 9 程序改为:SIGNAL 改为 TYPE
错误2 行号: 32 程序改为:之前添加一句 when others => c_st <= st0;