配色: 字号:
(完整版)EDA期末考试题A卷
2023-03-27 | 阅:  转:  |  分享 
  
(这个内容不要) 5. 流水线设计是一种优化方式,下列哪一项对资源共享描述正确 _

C 。

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

嘉应学院电子信息工程学院 考试题样题(A卷)

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









































线



































题 号

得 分





























总分





复核人





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. 以上都不是















































评卷人



一、选择题( 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. 都不是; 共





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

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

A. 流水线设计

C. 逻辑优化





B. 资源共享

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 behav;

1

2

3

4

5

6

7

8

9

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;



ENTITY CNT4 IS

PORT ( CLK : IN STD_LOGIC ;

Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)) ;

END CNT4;

ARCHITECTURE bhv OF CNT4 IS

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);



三、 VHDL 程序改错( 20 分)

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

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

在 MAX+PlusII中编译时,提示的第一条错误为:

Error: Line 12: File e:\mywork\test\cnt4.vhd: VHDL syntax error: If statement must have THEN,

but found BEGIN instead

12行, IF语句对应的关键字是 then而非 begin

14行, Q1是矢量,不能直接和整数 1相加,需要使用重载函数















END ONE;





2.修改相应行的程序(如果是缺少语句请指出大致的行数) :

错误 1 行号: 12 程序改为: BEGIN 改为 THEN

错误 2 行号: 3 程序改为: USE IEEE.STD_LOGIC_UNSIGNED.ALL;







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

xin INPUT

五、综合题( 20 分)

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

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

DFFDFF

OR in_a = “ 00”

Q OUTPUT

in_a = “ 01”







































线

































… Dclk INPUT Q D yout

















































st0



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;

out_a <= “ 0101” ;

in_a /= “ 00” st1

out_a <= “ 1000” ;

in_a = “ 11”

in_a /= “ 11” in_a /= “ 01”

st3

out_a <= “ 1101” ;

in_a /= “ 11”

st2

out_a <= “ 1100” ;

in_a = “ 11”

图 a 状态图



clk

reset

c_state

REG

END ONE;





n_state COM

out_a

in_a

图 b 状态机结构图



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;

页 Ina : in std_logic_vector (1 downto 0);



End mooreb;

Outa : out std_logic_vector (3 downto 0) );

























号……

座……



















线

名…

姓……











班…





系密…

















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,使用状态位直接输出型状态机编码方式,其输出直接由当前状态输出,也没有毛刺



















注意:





















Rb



献花(0)
+1
(本文系合同范文资...原创)