当前位置:文档之家› 2012-2013年海南大学EDA期末考试卷

2012-2013年海南大学EDA期末考试卷

2012-2013年海南大学EDA期末考试卷
2012-2013年海南大学EDA期末考试卷

2012-2013年海南大学信息学院EDA技术及应用考试

试卷(A卷)

时间:120分钟(2012年12月)考试形式:闭卷

一、选择题(20分)

1.下列那个流程是正确的基于EDA软件的FPGA / CPLD设计流程:(B)

A. 原理图/HDL文本输入→适配→综合→功能仿真→编程下

载→硬件测试

B. 原理图/HDL文本输入→功能仿真→综合→适配→编程下

载→硬件测试

C. 原理图/HDL文本输入→功能仿真→综合→编程下载→→

适配硬件测试;

D. 原理图/HDL文本输入→功能仿真→适配→编程下载→综

合→硬件测试

2.综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,____C_____是错误的。

A. 综合就是将电路的高级语言转化成低级的,可与FPGA /

CPLD的基本结构相映射的网表文件;

B. 为实现系统的速度、面积、性能的要求,需要对综合加以

约束,称为综合约束;

C. 综合是纯软件的转换过程,与器件硬件结构无关;

D. 综合可理解为,将软件描述与给定的硬件结构用电路网表

文件表示的映射过程,并且这种映射关系不是唯一的。3.CPLD的可编程是主要基于什么结构:(D)

A .查找表(LUT);

B. ROM可编程;

C. PAL可编程;

D. 与或阵列可编程;

4. IP核在EDA技术和开发中具有十分重要的地位,以HDL方

式提供的IP被称为:(C)

A. 硬IP;

B. 固IP;

C. 软IP;

D. 都不是;

5. 流水线设计是一种优化方式,下列哪一项对资源共享描述正

确_ C。

A. 面积优化方法,不会有速度优化效果

B. 速度优化方法,不会有面积优化效果

C. 面积优化方法,可能会有速度优化效果

D. 速度优化方法,可能会有面积优化效果

6.在VHDL语言中,下列对时钟边沿检测描述中,错误的是___

D____。

A. if clk’event and clk = ‘1’ then

B. if falling_edge(clk) then

C. if clk’event and clk = ‘0’ then

D.if clk’stable and not clk = ‘1’ then

7状态机编码方式中,其中_____C____占用触发器较多,但其实现比较适合FPGA的应用

A. 状态位直接输出型编码

B. 顺序编码

C. 一位热码编码

D. 以上都不是

8.子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速

度(即速度优化);指出下列那种方法是速度优化___A______。

A. 流水线设计

B. 资源共享

C. 逻辑优化

D. 串行化

9. 不完整的IF语句,其综合结果可实现____A____。

A. 时序电路

B. 双向控制电路

C. 条件相或的逻辑电路

D. 三态控制电路

10.在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。(D)

A. idata <= “00001111”

B. idata <= b”0000_1111”;

C. idata <= X”AB”

D. idata <= 16”01”;

二、VHDL程序填空(20分)

下面程序是一个10线-4线优先编码器的VHDL描述,试补充完整。

LIBRARY __IEEE________ ;

USE IEEE.________ STD_LOGIC_1164_____________.ALL; ENTITY coder IS

PORT ( din : IN STD_LOGIC_VECTOR(____9 DOWNTO 0________________);

output : _____OUT_____ STD_LOGIC_VECTOR(3 DOWNTO 0) );

END coder;

ARCHITECTURE behav OF ________ CODER _____ IS

SIGNAL SIN : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

PROCESS (_____DIN ______)

BEGIN

IF (din(9)='0') THEN SIN <= "1001" ;

_ELSIF (din(8)=’0’)_________________ THEN SIN <= "1000" ;

ELSIF (din(7)='0') THEN SIN <= "0111" ;

ELSIF (din(6)='0') THEN SIN <= "0110" ;

ELSIF (din(5)='0') THEN SIN <= "0101" ;

ELSIF (din(4)='0') THEN SIN <= "0100" ;

ELSIF (din(3)='0') THEN SIN <= "0011" ;

ELSIF (din(2)='0') THEN SIN <= "0010" ;

ELSIF (din(1)='0') THEN SIN <= "0001" ;

ELSE _ SIN <= “0000”______________ ;

_____ END IF ___________

END PROCESS ;

__ Output <= sin _____________;

END behave;

三、VHDL程序改错(20分)

仔细阅读下列程序,回答问题:

1.在程序中存在两处错误,试指出,并说明理由:

14行,Q1是矢量,不能直接和整数1相加,需要使用重载函数2.修改相应行的程序(如果是缺少语句请i指出大致的行数):错误1 行号:12 程序改为:BEGIN 改为 THEN

错误 2 行号: 3 程序改为:USE

IEEE.STD_LOGIC_UNSIGNED.ALL;

1 LIBRARY IEEE;

2 USE IEEE.STD_LOGIC_1164.ALL;

3

4 ENTITY CNT4 IS

5 PORT ( CLiK : IN STD_LOGIC ;

6 Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) ;

7 END CNT4;

8 ARCHITECTURE bhv OF CNT4 IS

9 SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);

10 BEGIN

11 PROCESS (CLK) BEGIN

12 IF RISING_EDGE(CLK) begin

13 IF Q1 < 15 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;

22

四、编写VHDL程序(20分,每题10分)

1. 试描述一个带进位输入、输出的8位全加器

端口:A、B为加数,CIN为进位输入,S为加和,COUT为进位输出

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY ADDER8 IS

PORT (A, B : IN STD_LOGIC_VECTOR (7 DOWNTO 0);

CIN : IN STD_LOGIC;

COUT : OUT STD_LOGIC;

S : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );

END ADDER8;

ARCHITECTURE ONE OF ADDER8 IS

SIGNAL TS : STD_LOGIC_VECTOR (8 DOWNTO 0);

BEGIN

TS <= (‘0’ & A) + (‘0’ & B) + CIN;

S <= TS(7 DOWNTO 0);

COUT <= TS(8);

END ONE;

2. 看下面原理图,写出相应VHDL 描述

D

Q DFF

D Q

DFF

OR

yout

OUTPUT

xin

INPUT

clk

INPUT

LIBARRY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY MYCIR IS

PORT ( XIN, CLK : IN STD_LOGIC; YOUT : OUT STD_LOGIC); END MYCIR;

ARCHITECTURE ONE OF MYCIR IS SIGNAL A, B, C; BEGIN

B <= XIN OR A; PROCESS (CLK) BEGIN

IF CLK ’EVENT AND CLK = ‘1’ THEN A <= C; C <= B; END IF; END PROCESS; YOUT <= C; END ONE;

五、综合题(20分)

已知状态机状态图如图(a)所示;完成下列各题: (一)已知状态机状态图如图a 所示;完成下列各题:

out_a <= “0101“1000”;

“01”

out_a <= “1101

;

图a 状态图

1.试判断该状态机类型,并说明理由。

该状态机为moore型状态机,输出数据outa和输入ina没有直接逻辑关系,outa是时钟clk的同步时序逻辑。

2.根据状态图,写出对应于结构图b,分别由主控组合进程和主

控时序进程组成的VHDL有限状态机描述。

Library ieee;

Use ieee.std_logic_1164.all;

Entity mooreb is

Port (clk, reset : in std_logic;

Inia : in std_logic_vector (1 downto 0);

Outa : out std_logic_vector (3 downto 0) );

End mooreb;

Architecture one of mooreb is

Type ms_state is (st0, st1, st2, st3);

Signal c_st, n_st : ms_state;

Begin

Process (clk, reset)

Begin

If reset = ‘1’ then c_st <= st0;

Elsif clk’event and clk = ‘1’ then c_st <= n_st; End if;

End process;

Process (c_st)

Begin

Case c_st is

When st0 => if ina = “00” then n_st <= st0;

Else n_st <= st1;

End if;

Outa <= “0101”;

When st1 => if ina = “00” then n_st <= st1;

Else n_st <= st2;

End if;

Outa <= “1000”;

When st2 => if ina = “11” then n_st <= st0;

Else n_st <= st3;

End if;

Outa <= “1100”;

When st3 => if ina = “11” then n_st <= st3;

Else n_st <= st0;

End if;

Outa <= “1101”;

When others => n_st <= st0;

End case;

End process;

End one;

3.若已知输入信号如下图所示,分析状态机的工作时序,画出

该状态机的状态转换值(c_state)和输出控制信号(out_a);

4. 若状态机仿真过程中出现毛刺现象,应如何消除;试指出两种方法,并简单说明其原理。

方法1,添加辅助进程对输出数据进行锁存

方法2,将双进程状态机改写为单进程状态机,其输出也是锁存过了,故能消除毛刺

方法3,使用状态位直接输出型状态机编码方式,其输出直接由当前状态输出,也没有毛刺

相关主题
文本预览
相关文档 最新文档