《EDA》复习资料.docx

上传人:b****2 文档编号:18176004 上传时间:2023-04-24 格式:DOCX 页数:26 大小:129.57KB
下载 相关 举报
《EDA》复习资料.docx_第1页
第1页 / 共26页
《EDA》复习资料.docx_第2页
第2页 / 共26页
《EDA》复习资料.docx_第3页
第3页 / 共26页
《EDA》复习资料.docx_第4页
第4页 / 共26页
《EDA》复习资料.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

《EDA》复习资料.docx

《《EDA》复习资料.docx》由会员分享,可在线阅读,更多相关《《EDA》复习资料.docx(26页珍藏版)》请在冰豆网上搜索。

《EDA》复习资料.docx

《EDA》复习资料

一、单项选择题:

(在每小题的四个备选答案中,选出一个正确答案,将其序号填在题中的括号内,每小题3分,共30分)

1.IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为__________。

A.软IPB.固IPC.硬IPD.都不是

2.综合是EDA设计流程的关键步骤,在下面对综合的描述中,_________是错误的。

A.综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;

B.综合就是将电路的高级语言转化成低级的,可与FPGA/CPLD的基本结构相映射的网表文件;

C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;

D.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的)。

3.进程中的变量赋值语句,其变量更新是_________。

A.立即完成;

B.按顺序完成;

C.在进程的最后完成;

D.都不对。

4.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___________。

A.器件外部特性;

B.器件的综合约束;

C.器件外部特性与内部功能;

D.器件的内部功能。

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

A.时序逻辑电路B.组合逻辑电路

C.双向电路D.三态控制电路

6.下列标识符中,__________是不合法的标识符。

A.State0B.9moonC.Not_Ack_0D.signall

7.关于VHDL中的数字,请找出以下数字中最大的一个:

__________。

A.2#1111_1110#

B.8#276#

C.10#170#

D.16#E#E1

8.下列EDA软件中,哪一个不具有逻辑综合功能:

________。

A.Max+PlusII

B.ModelSim

C.QuartusII

D.Synplify

9.IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为__________。

A.瘦IPB.固IPC.胖IPD.都不是

10.进程中的信号赋值语句,其信号更新是_______。

A.按顺序完成;

B.比变量更快完成;

C.在进程的最后完成;

D.都不对。

11.下列那个流程是正确的基于EDA软件的FPGA/CPLD设计流程

A.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试;

B.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试;

C.原理图/HDL文本输入→功能仿真→综合→编程下载→适配→硬件测试;

D.原理图/HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试。

12.IP核在EDA技术和开发中具有十分重要的地位,以HDL方式提供的IP被称为

A.硬IP;

B.固IP;

C.软IP;

D.都不是;

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

A.ifclk’eventandclk=‘1’then

B.iffalling_edge(clk)then

C.ifclk’eventandclk=‘0’then

D.ifclk’stableandnotclk=‘1’then

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

A.idata<=“00001111”

B.idata<=b”0000_1111”;

C.idata<=X”AB”

D.idata<=16”01”;

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

A.综合就是将电路的高级语言转化成低级的,可与FPGA/CPLD的基本结构相映射的网表文件;

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

C.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的。

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

16.请指出AlteraCyclone系列中的EP1C6Q240C8这个器件是属于

A.ROMB.CPLDC.FPGAD.GAL

17.下面对利用原理图输入设计方法进行数字电路系统设计,哪一种说法是正确的:

__________

A.原理图输入设计方法直观便捷,很适合完成较大规模的电路系统设计

B.原理图输入设计方法一般是一种自底向上的设计方法

C.原理图输入设计方法无法对电路进行功能描述

D.原理图输入设计方法不适合进行层次化设计

18.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是:

_______

A.PROCESS为一无限循环语句

B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动

C.当前进程中声明的变量不可用于其他进程

D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成

19.对于信号和变量的说法,哪一个是不正确的:

_________

A.信号用于作为进程中局部数据存储单元

B.变量的赋值是立即完成的

C.信号在整个结构体内的任何地方都能适用

D.变量和信号的赋值符号不一样

20.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:

_______

A.IEEE库

B.VITAL库

C.STD库

D.WORK工作库

21.下列4个VHDL标识符中正确的是:

_______

A.10#128#

B.16#E#E1

C.74HC124

D.X_16

22.下列语句中,不属于并行语句的是:

_______

A.进程语句

B.CASE语句

C.元件例化语句

D.WHEN…ELSE…语句

二、名词解释:

写出下列缩写的英文字符的中文含义(每小题2分,共10分)

1.VHDL

2.FPGA

3.RTL

4.SOPC

5.IEEE

6.ASIC

7.SOC

8.EDA

9.Synthesis

10.CPLD

11.IP

12.HDL

三、VHDL程序填空:

(10分)

下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。

--N-bitUpCounterwithLoad,CountEnable,and

--AsynchronousReset

libraryieee;

useIEEE.std_logic_1164.all;

useIEEE.std_logic_unsigned.all;

useIEEE.std_logic_arith.all;

entitycounter_nis

generic(width:

integer:

=8);

port(data:

instd_logic_vector(width-1downto0);

load,en,clk,rst:

instd_logic;

q:

outstd_logic_vector(width-1downto0));

endcounter_n;

architecturebehaveofcounteris

signalcount:

std_logic_vector(width-1downto0);

begin

process(clk,rst)

begin

ifrst='1'then

count<=(others=>‘0’);――清零

elsifclk’eventandclk=‘1’then――边沿检测

ifload='1'then

count<=data;

elsifen='1'then

count<=count+1;

endif;

endif;

endprocess;

q<=count;

endbehave;

LIBRARYIEEE;--8位分频器程序设计

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYPULSEIS

PORT(CLK:

INSTD_LOGIC;

D:

INSTD_LOGIC_VECTOR(7DOWNTO0);

FOUT:

OUTSTD_LOGIC);

END;

ARCHITECTUREoneOFPULSEIS

SIGNALFULL:

STD_LOGIC;

BEGIN

P_REG:

PROCESS(CLK)

VARIABLECNT8:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

IFCLK’EVENTANDCLK=‘1’THEN

IFCNT8="11111111"THEN

CNT8:

=D;--当CNT8计数计满时,输入数据D被同步预置给计数器CNT8

FULL<='1';--同时使溢出标志信号FULL输出为高电平

ELSECNT8:

=CNT8+1;--否则继续作加1计数

FULL<='0';--且输出溢出标志信号FULL为低电平

ENDIF;

ENDIF;

ENDPROCESSP_REG;

P_DIV:

PROCESS(FULL)

VARIABLECNT2:

STD_LOGIC;

BEGIN

IFFULL'EVENTANDFULL='1'THEN

CNT2<=NOTCNT2;--如果溢出标志信号FULL为高电平,D触发器输出取反

IFCNT2='1'THENFOUT<='1';

ELSEFOUT<='0';

ENDIF;

ENDIF;

ENDPROCESSP_DIV;

END;

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

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYcoderIS

PORT(din:

INSTD_LOGIC_VECTOR(9DOWNTO0);

output:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDcoder;

ARCHITECTUREbehavOFCODERIS

SIGNALSIN:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(DIN)

BEGIN

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

ELSIF(din(8)=’0’)THENSIN<="1000";

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

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

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

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

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

ELSIF(din

(2)='0')THENSIN<="0010";

ELSIF(din

(1)='0')THENSIN<="0001";

ELSESIN<=“0000”;

ENDIF;

ENDPROCESS;

Output<=sin;

ENDbehav;

以下程序是一个BCD码表示0~99计数器的VHDL描述,试补充完整。

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycnt100bis

port(clk,rst,en:

instd_logic;

cq:

outstd_logic_vector(7downto0);--计数输出

cout:

outstd_logic);--进位输出

endentitycnt100b;

architecturebhvofcnt100bis

begin

process(clk,rst,en)

variablecqi:

std_logic_vector(7downto0);

begin

ifrst='1'then

cqi:

=(others=>‘0’);--计数器清零复位

else

ifclk’eventandclk=‘1’then--上升沿判断

ifen='1'then

ifcqi(3downto0)<"1001"then--比较低4位

cqi:

=cqi+1;--计数加1

else

ifcqi(7downto4)<"1001"then--比较高4位

cqi:

=cqi+16;

else

cqi:

=(others=>'0');

endif;

cqi(3downto0):

=“0000”;--低4位清零

endif;

endif;

endif;

endif;

ifcqi=“10011001”then--判断进位输出

cout<='1';

else

cout<='0';

endif;

cq<=cqi;

endprocess;

endarchitecturebhv;

四、VHDL程序改错:

(10分)

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

1LIBRARYIEEE;

2USEIEEE.STD_LOGIC_1164.ALL;

3

4ENTITYCNT10IS

5PORT(CLK:

INSTD_LOGIC;

6Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

7ENDCNT10;

8ARCHITECTUREbhvOFCNT10IS

9SIGNALQ1:

STD_LOGIC_VECTOR(3DOWNTO0);

10BEGIN

11PROCESS(CLK)BEGIN

12IFRISING_EDGE(CLK)begin

13IFQ1<9THEN

14Q1<=Q1+1;

15ELSE

16Q1<=(OTHERS=>'0');

17ENDIF;

18ENDIF;

19ENDPROCESS;

20Q<=Q1;

21ENDbhv;

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

Error:

Line12:

Filee:

\mywork\test\cnt10.vhd:

VHDLsyntaxerror:

IfstatementmusthaveTHEN,butfoundBEGINinstead

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

错误1行号:

12程序改为:

IFRISING_EDGE(CLK)THEN

错误2行号:

3程序改为:

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

12行if语句配套关键字是then而非begin

3行程序中使用了+号重载函数,应包含使用对应程序包ieee.std_logic_unsigned.all

2.若编译时出现如下错误,请分析原因。

当前编译的程序文件没有放在指定文件夹内,所以系统找不到WORK工作库。

 

01LIBRARYIEEE;

02USEIEEE.STD_LOGIC_1164.ALL;

03USEIEEE.STD_LOGIC_UNSIGNED.ALL;

04ENTITYLED7CNTIS

05PORT(CLR:

INSTD_LOGIC;

06CLK:

INSTD_LOGIC;

07LED7S:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

08ENDLED7CNT;

09ARCHITECTUREoneOFLED7CNTIS

10SIGNALTMP:

STD_LOGIC_VECTOR(3DOWNTO0);

11BEGIN

12CNT:

PROCESS(CLR,CLK)

13BEGIN

14IFCLR='1'THEN

15TMP<=0;

16ELSEIFCLK'EVENTANDCLK='1'THEN

17TMP<=TMP+1;

18ENDIF;

19ENDPROCESS;

20OUTLED:

PROCESS(TMP)

21BEGIN

22CASETMPIS

23WHEN"0000"=>LED7S<="0111111";

24WHEN"0001"=>LED7S<="0000110";

25WHEN"0010"=>LED7S<="1011011";

26WHEN"0011"=>LED7S<="1001111";

27WHEN"0100"=>LED7S<="1100110";

28WHEN"0101"=>LED7S<="1101101";

29WHEN"0110"=>LED7S<="1111101";

30WHEN"0111"=>LED7S<="0000111";

31WHEN"1000"=>LED7S<="1111111";

32WHEN"1001"=>LED7S<="1101111";

33WHENOTHERS=>LED7S<=(OTHERS=>'0');

34ENDCASE;

35ENDPROCESS;

36ENDone;

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

提示:

在MAX+PlusII10.2上编译时报出的第一条错误为:

Error:

Line15:

File***/led7cnt.vhd:

Typeerror:

typeinwaveformelementmustbe“std_logic_vector”

第15行,错误:

整数0不能直接赋值给TMP矢量

改正:

TMP<=(OTHERS=>‘0’);

第16行,错误:

ELSEIF缺少一条对应的ENDIF语句

改正:

将ELSEIF改为关键字ELSIF

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

LIBRARYIEEE;--1

USEIEEE.STD_LOGIC_1164.ALL;--2

ENTITYLED7SEGIS--3

PORT(A:

INSTD_LOGIC_VECTOR(3DOWNTO0);--4

CLK:

INSTD_LOGIC;--5

LED7S:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));--6

ENDLED7SEG;--7

ARCHITECTUREoneOFLED7SEGIS--8

SIGNALTMP:

STD_LOGIC;--9

BEGIN--10

SYNC:

PROCESS(CLK,A)--11

BEGIN--12

IFCLK'EVENTANDCLK='1'THEN--13

TMP<=A;--14

ENDIF;--15

ENDPROCESS;--16

OUTLED:

PROCESS(TMP)--17

BEGIN--18

CASETMPIS--19

WHEN"0000"=>LED7S<="0111111";--20

WHEN"0001"=>LED7S<="0000110";--21

WHEN"0010"=>LED7S<="1011011";--22

WHEN"0011"=>LED7S<="1001111";--23

WHEN"0100"=>LED7S<="1100110";--24

WHEN"0101"=>LED7S<="1101101";--25

WHEN"0110"=>LED7S<="1111101";--26

WHEN"0111"=>LED7S<="0000111";--27

WHEN"1000"=>LED7S<="1111111";--28

WHEN"1001"=>LED7S<="1101111";--29

ENDCASE;--30

ENDPROCESS;--31

ENDone;

1.在程序中存在两处错

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1