华侨大学本科考试卷
2015 —2016学年第一学期(开卷 A)参考答案
学院信息学院课程名称电子设计与自动化考试日期
姓名专业学号
题号
得分
一
二
三
四
五
总分
一、基本概念与基本知识(各3分,共30分,直接将答案写在试卷上)错1个扣1分
1、写出下列缩写的英文含义:
a. EDA: 电子设计自动化;
b. SOC: 片上系统;
c.FSM: 有限状态机。
2、EDA设计开发流程主要包括设计输入 、综合 、适配(布局布线)
和 仿真等步骤。
3、IP指知识产权核,可分为软 IP、硬 IP和固 IP。
4、面向FPGA的EDA工具大致可以分为设计输入编辑器、 HDL综合器、
仿真器、适配器(布局布线器)以及下载器等五个模块。
5、硬件描述语言是EDA技术的重要组成部分,目前常用的HDL主要有 VHDL、 Verilog、
System C、和 System Verilog。
6、VHDL定义了逻辑操作符、关系操作符、算术操作符和 省略赋值操作符 四
种运算操作符。
7、VHDL的信号(SIGNAL)是一种数值的容器,不仅可以容纳当前值,也可
以保留历史值。
8、 VHDL的顺序语句只能出现 进程、 函数和 过程中,是按源文件书写的
的顺序自上而下、一条一条地执行。
9、速度优化中常用的技术有流水线设计和关键路径法。
10、用VHDL语言设计的状态机,从信号输出方式上分,有 Moore型状态机和 Mealy
型状态机;从描述结构上分,有单进程状态机和多进程状态机;
二、VHDL基础知识(各10分,共20分)
1、下列VHDL程序段描述了一个上升沿触发的10进制加法计数器,仔细阅读找出程序中存
在五处错误,并进行改正。
1
2
3
4
5
6
7
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CNT10 IS
PORT ( CLK : IN STD_LOGIC ;
Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0););
END CNT10;
1
8
9
ARCHITECTURE bhv OF CNT10 IS
VARIABLE Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);
10 BEGIN
11 PROCESS (CLK) BEGIN
12 IF CLK’EVENT AND CLK=’0’ BEGIN
13 IF Q1 < 9 THEN
14 Q1 <= Q1 + 1 ;
15 ELSE
16 Q1 <= (OTHERS => ''0'');
17 END IF;
18 END IF;
19 END PROCESS;
20 Q <= Q1;
21 END bhv;
各2分
答:程序订正修改如下
第3行:增加“USE IEEE.STD_LOGIC_UNSIGED.ALL;”语句
第6行:删除其中一个错误的“;”,改为“Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));”
第9行:Q1应定义为信号量,其中“VARIABLE”改为“SIGNAL”
第12行:因为是上升沿触发,其中“CLK=’0’”改为“CLK=’1’”
第12行:行末尾“BEGIN”改为“THEN”
2、阅读下列VHDL程序段,画出相应的原理图(RTL级),并简要说明电路功能。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY HAD IS
PORT ( A : IN STD_LOGIC;
B : IN STD_LOGIC;
C : OUT STD_LOGIC;
D : OUT STD_LOGIC
);
END ENTITY HAD;
ARCHITECTURE fh1 OF HAD IS
BEGIN
c <= NOT(a NAND b);
d <= (a OR b)AND(a NAND b);
END ARCHITECTURE fh1;
各5分
答:程序相应的原理图(RTL级)为
电路功能为一位半加器。
2
三 .基本电路设计(各10分,共20分)
1、表1给出4线-2线编码器的真值表,请用VHDL语言设计该模块,并做简要说明。
答:
LIBRARY IEEE; --设计库和程序包调用(2分)
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CODER4_2 IS --实体定义(3分)
PORT ( A,B,C,D : IN STD_LOGIC;
Y1,Y0 : OUT STD_LOGIC
);
END ENTITY CODER4_2;
ARCHITECTURE bhv OF CODER4_2 IS --结构体定义(5分)
BEGIN
PROCESS(A,B,C,D) --进程
BEGIN
IF D=’1’ THEN Y1<=’1’;Y0<=’1’;
ELSIF C=’1’ THEN Y1<=’1’;Y0<=’0’;
ELSIF B=’1’ THEN Y1<=’0’;Y0<=’1’;
ELSE Y1<=’0’;Y0<=’0’;
END IF;
END ARCHITECTURE bhv;
2、请采用VHDL语言设计一个带进位信息的24进制加法计数器,并做简要说明。
答:
ENTITY CNT24 IS --实体定义(3分)
PORT ( CLK : IN STD_LOGIC ;
Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
COUT : OUT STD_LOGIC);
END CNT24;
ARCHITECTURE bhv OF CNT24 IS --结构体定义(5分)
SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0); --信号量定义
BEGIN
PROCESS (CLK) BEGIN --进程
IF CLK’EVENT AND CLK=’1’ THEN
IF Q1 < 23 THEN
Q1 <= Q1 + 1 ;
ELSE
Q1 <= (OTHERS => ''0'');
LIBRARY IEEE; --设计库和程序包调用(2分)
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGED.ALL;
3
END IF;
END IF;
IF Q1=”10111” THEN COUT<= ’1’;ELSE COUT<= ’0’; END IF;
END PROCESS;
END bhv;
Q <= Q1;
四.综合应用(共30分)
用有限状态机设计技术,设计一个6位串行脉冲序列检测器,当串行输入端连续输入二
进制码组成的脉冲序列信号“001110”时,检测器输出1,否则输出0。
(1)编写设计说明书,简要说明设计方案,画出状态图;(10分)
(2)用VHDL语言写出该序列检测器电路的设计源文件;(10分)
(3)根椐设计规划仿真测试方案,并给出其仿真波形图;(5分)
(4)如果该设计计划采用GW48实验箱进行硬件验证,请选择合适的电路结构图,并给出
测试方案。(5分)
答:
(1)该设计可采用有限状态机来设计,在时钟作用下将输入端的输入码和需检测的序列码进
行逐位比较,当检测到连续6位输入码与需检测的序列码一致,电路输出信号使得LED指示灯
亮,否则LED指示灯灭。状态图为
(2)
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;(2分)
ENTITY SCHK IS (3分)
PORT(DIN,CLK,CLR : IN STD_LOGIC; --串行输入数据位/工作时钟/复位信号
LED : OUT STD_LOGIC); --检测结果输出
END SCHK;
ARCHITECTURE behav OF SCHK IS (5分)
TYPE FSM_ST IS(S0,S1,S2,S3,S4,S5,S6);
SIGNAL Q : FSM_ST;
SIGNAL D : STD_LOGIC_VECTOR(5 DOWNTO 0); --8位待检测预置数(密码=E5H)
BEGIN
D <= "001110" ; --6位需检测的序列码
4
PROCESS( CLK, CLR )
BEGIN
IF CLR = ''1'' THEN Q <= S0 ;
ELSIF CLK''EVENT AND CLK=''1'' THEN --时钟到来时,判断并处理当前输入的位
CASE Q IS
WHEN S0=> IF DIN = D(5) THEN Q <= S1 ; ELSE Q <= S0 ; END IF ;
WHEN S1=> IF DIN = D(4) THEN Q <= S2 ; ELSE Q <= S0 ; END IF ;
WHEN S2=> IF DIN = D(3) THEN Q <= S3 ; ELSE Q <= S2 ; END IF ;
WHEN S3=> IF DIN = D(2) THEN Q <= S4 ; ELSE Q <= S0 ; END IF ;
WHEN S4=> IF DIN = D(1) THEN Q <= S5 ; ELSE Q <= S0 ; END IF ;
WHEN S5=> IF DIN = D(0) THEN Q <= S6 ; ELSE Q <= S0 ; END IF ;
WHEN S6=> IF DIN = D(4) THEN Q <= S2 ; ELSE Q <= S0 ; END IF ;
WHEN OTHERS => Q <= S0 ;
END CASE ;
END IF ;
END PROCESS ;
PROCESS( Q ) --检测结果判断输出
BEGIN
IF Q = S6 THEN LED <= ''1'' ; --序列数检测正确,输出 ''1''
ELSE LED <= ''0'' ; --序列数检测错误,输出''0''
END IF ;
END PROCESS ;
END behav ;
(3)仿真波形图为
(4)可选择模式5,DIN=>键8,CLR=>键7,CLK=>键6,LED=>LED指示灯D8;
检测序列由键8输入,键7控制清零,时钟由键6控制。
5
|
|