配色: 字号:
EDA期末考试卷及参考答案
2023-07-16 | 阅:  转:  |  分享 
  


华侨大学本科考试卷



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

献花(0)
+1
(本文系考试资料文...原创)