一、选择题:(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
专用集成电路 现场可编程门阵列 知识产权核(软件包) 有限状态机 硬件描述语言
6. 简要解释JTAG,指出JTAG的用途 JTAG,joint test action group,联合测试行动小组的简称,又意指其提出的一种硬件测试标准,常用于器件测试、编程下载和配置等操作。
三、VHDL程序填空:(20分)
1. 以下程序是一个BCD码表示0~99计数器的VHDL描述,试补充完整。(10分)
library ieee;
use ieee.std_logic_1164.all;
use ____________________________________________;
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;
______________________ bhv of cnt100b is begin
答案: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);
-- 计数输出 -- 进位输出
process (clk, rst, en)
______________ cqi : std_logic_vector(7 downto 0); if rst = '1' then
cqi := __________________; -- 计数器清零复位 else
if ___________________________________ then
if en = '1' then
if cqi(3 downto 0) < \
______________________;
-- 比较低4位 -- 计数加1 -- 比较高4位
-- 上升沿判断
begin
else if cqi(7 downto 4) < \
cqi := cqi + 16;
cqi := (others => '0'); else end if;
__________________________;
-- 低4位清零
end if;
end if;
____________;
end if;
if cqi = _______________ then
cout <= '1'; cout <= '0'; else end if;
-- 判断进位输出
__________________; end process;
end architecture bhv;
end entity cnt100b;
architecture bhv of cnt100b is
begin
process (clk, rst, en)
variable cqi : std_logic_vector(7 downto 0); if rst = '1' then cqi := (others => ?0?); -- 计数器清零复位 else
if clk?event and clk = ?1? then
if en = '1' then
if cqi(3 downto 0) < \ cqi := cqi + 1; else
-- 比较低4位 -- 计数加1
-- 比较高4位
-- 上升沿判断
begin
if cqi(7 downto 4) < \
cqi := cqi + 16;
cqi := (others => '0'); else end if;
cqi (3 downto 0) := “0000”;
-- 低4位清零
end if;
end if;
end if;
end if;
if cqi = “10011001” then
cout <= '1'; cout <= '0'; else end if; cq <= cqi;
-- 判断进位输出
end process;
end architecture bhv;
2.VHDL程序填空:(10分)
下面程序是n输入与门的VHDL描述,试补充完整。
__________ 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;
-- 2 -- 6 -- 9
-- 10 -- 11 -- 12 -- 13
-- 8
-- 7
-- 4
-- 5 -- 3
-- 1
USE IEEE.STD_LOGIC_1164.ALL; ENTITY MOORE1 IS PORT (
DATAIN
: IN STD_LOGIC_VECTOR(1 DOWNTO 0);
CLK, RST: IN STD_LOGIC; Q
: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );
END MOORE1;
ARCHITECTURE BEHAV OF MOORE1 IS
SIGNAL ST_TYPE IS (ST0, ST1, ST2, ST3, ST4); SIGNAL C_ST : ST_TYPE; BEGIN
PROCESS (CLK, RST) BEGIN
IF RST = '1' THEN C_ST <= ST0; Q <= \-- 14