eda试题及答案Word文档格式.docx

上传人:b****5 文档编号:17432753 上传时间:2022-12-01 格式:DOCX 页数:65 大小:356.98KB
下载 相关 举报
eda试题及答案Word文档格式.docx_第1页
第1页 / 共65页
eda试题及答案Word文档格式.docx_第2页
第2页 / 共65页
eda试题及答案Word文档格式.docx_第3页
第3页 / 共65页
eda试题及答案Word文档格式.docx_第4页
第4页 / 共65页
eda试题及答案Word文档格式.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

eda试题及答案Word文档格式.docx

《eda试题及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《eda试题及答案Word文档格式.docx(65页珍藏版)》请在冰豆网上搜索。

eda试题及答案Word文档格式.docx

B.VITAL库

C.STD库

D.WORK工作库

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

_______B

A.10#128#

B.16#E#E1

C.74HC124

D.X_16

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

A.进程语句

B.CASE语句

C.元件例化语句

D.WHEN…ELSE…语句

二、EDA名词解释(10分)

写出下列缩写的中文(或者英文)含义:

1.ASIC专用集成电路

2.FPGA现场可编程门阵列

3.IP知识产权核(软件包)

4.JTAG联合测试行动小组

5.HDL硬件描述语言

三、VHDL程序填空:

(10分)

以下程序是一个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='

ifcqi(3downto0)<

"

1001"

then--比较低4位

cqi:

=cqi+1;

--计数加1

else

ifcqi(7downto4)<

then--比较高4位

cqi:

=cqi+16;

else

'

0'

);

endif;

cqi(3downto0):

=“0000”;

--低4位清零

endif;

endif;

endif;

endif;

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

cout<

='

;

cq<

=cqi;

endprocess;

endarchitecturebhv;

四、VHDL程序改错:

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

LIBRARYIEEE;

--1

USEIEEE.STD_LOGIC_1164.ALL;

--2

ENTITYMOORE1IS--3

PORT(DATAIN:

INSTD_LOGIC_VECTOR(1DOWNTO0);

--4

CLK,RST:

INSTD_LOGIC;

--5

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

--6

ENDMOORE1;

--7

ARCHITECTUREBEHAVOFMOORE1IS--8

SIGNALST_TYPEIS(ST0,ST1,ST2,ST3,ST4);

--9

SIGNALC_ST:

ST_TYPE;

--10

BEGIN--11

PROCESS(CLK,RST)--12

BEGIN--13

IFRST='

THENC_ST<

=ST0;

Q<

="

0000"

--14

ELSIFCLK'

EVENTANDCLK='

THEN--15

CASEC_STIS--16

WHENST0=>

IFDATAIN="

10"

=ST1;

--17

ELSEC_ST<

--18

ENDIF;

Q<

--19

WHENST1=>

11"

=ST2;

--20

--21

0101"

--22

WHENST2=>

01"

=ST3;

--23

--24

1100"

--25

WHENST3=>

00"

=ST4;

--26

--27

0010"

--28

WHENST4=>

--29

--30

--31

ENDCASE;

--32

ENDIF;

--33

ENDPROCESS;

--34

ENDBEHAV;

--35

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

在QuartusII中编译时,其中一个提示的错误为:

Error(Line9):

VHDLsyntaxerroratMOORE1.vhd(9)neartext"

IS"

expecting"

:

"

or"

"

第9行,状态机数据类型声明错误,关键字应为TYPE

第32行,case语句缺少whenothers处理异常状态情况

 

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

错误1行号:

9程序改为:

SIGNAL改为TYPE

错误2行号:

32程序改为:

之前添加一句whenothers=>

c_st<

=st0;

五、阅读下列VHDL程序,画出相应RTL图:

ENTITYTRISIS

PORT(CONTROL:

INN:

INOUTSTD_LOGIC;

Y:

OUTSTD_LOGIC);

ENDTRIS;

ARCHITECTUREONEOFTRISIS

BEGIN

PROCESS(CONTROL,INN,Q)

BEGIN

IF(CONTROL='

)THEN

Y<

=Q;

Q<

Z'

ELSE

=INN;

ENDONE;

六、写VHDL程序:

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

端口:

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

ENTITYADDER8IS

PORT(A,B:

INSTD_LOGIC_VECTOR(7DOWNTO0);

CIN:

COUT:

OUTSTD_LOGIC;

S:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDADDER8;

ARCHITECTUREONEOFADDER8IS

SIGNALTS:

STD_LOGIC_VECTOR(8DOWNTO0);

TS<

=(‘0’&

A)+(‘0’&

B)+CIN;

S<

=TS(7DOWNTO0);

COUT<

=TS(8);

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

ENTITYMYCIRIS

PORT(A,CLK:

C,B:

ENDMYCIR;

ARCHITECTUREBEHAVOFMYCIRIS

SIGNALTA:

STD_LOGIC;

PROCESS(A,CLK)

IFCLK’EVENTANDCLK=‘1’THEN

TA<

=A;

B<

=TA;

C<

=AANDTA;

七、综合题(20分)

下图是一个A/D采集系统的部分,要求设计其中的FPGA采集控制模块,该模块由三个部分构成:

控制器(Control)、地址计数器(addrcnt)、内嵌双口RAM(adram)。

控制器(control)是一个状态机,完成AD574的控制,和adram的写入操作。

adram是一个LPM_RAM_DP单元,在wren为’1’时允许写入数据。

试分别回答问题

下面列出了AD574的控制方式和控制时序图:

AD574逻辑控制真值表(X表示任意)

CE

CS

RC

K12_8

A0

工作状态

X

禁止

1

启动12位转换

启动8位转换

12位并行输出有效

高8位并行输出有效

低4位加上尾随4个0有效

AD574工作时序

问题:

1.要求AD574工作在8位转换模式,K12_8、A0在control中如何设置?

K12_8低电平

A0高电平

2.试画出control的状态机的状态图

3.地址计数器每当ClkInc时钟上升沿到达,输出地址加1,请对该模块进行VHDL描述。

Libraryieee;

Useieee.std_logic_1164.all;

Useieee.std_logic_unsigned.all;

Entitycnt64is

Port(ClkInc,Cntclr:

--时钟信号和清零信号输入

Wraddr:

outstd_logic_vector(5downto0));

Endcnt64;

Architectureoneofcnt64is

Begin

Process(clkinc,cntclr)

Variablecounter:

std_logic_vector(5downto0);

Begin

Ifcntclr=‘1’thencounter:

Elsifclkinc=‘1’andclkinc’eventthencounter:

=counter+1;

Endif;

Wraddr<

=counter;

Endprocess;

Endone;

4.根据状态图,试对control进行VHDL描述

Entitycontrolis

Port(CLK,STATUS:

--时钟信号和AD转换状态信号输入

ADDATA:

instd_logic_vector(7downto0);

--转换数据输入

CS,CE,A0,RC,K12_8:

outstd_logic;

--AD574控制信号

ClkInc:

--地址计数器时钟信号

rddata:

outstd_logic_vector(7downto0));

--转换数据输出

Endcontrol;

Architecturebehaveofcontrolis

Typesm_stateis(s0,s1,s2,s3,s4);

Signalc_st,n_st:

sm_state;

Signallock:

std_logic;

Signalregdata:

K12_8<

=‘0’;

A0<

=‘1’;

Process(clk)

Ifclk’eventandclk=‘1’thenc_st<

=n_st;

endif;

Process(c_st,status)

Casec_stis

Whens0=>

n_st<

=s1;

rc<

ce<

cs<

lock<

Whens1=>

=s2;

=‘0;

Whens2=>

ifstatus=‘0’thenn_st<

=s3;

elsen_st<

Rc<

=‘1’cs<

Whens3=>

=s4;

Whens4=>

=s0;

Whenothers=>

Endcase;

Process(lock)

Iflock’eventandlock=‘1’then

Regdata<

=addata;

Clkinc<

Else

Rddata<

=regdata;

Endbehave;

5.已知adram的端口描述如下

ENTITYadramIS

PORT

(data:

--写入数据

wraddress:

INSTD_LOGIC_VECTOR(5DOWNTO0);

--写入地址

rdaddress:

--读地址

wren:

INSTD_LOGIC:

--写使能

q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)--读出数据);

ENDadram;

试用例化语句,对整个FPGA采集控制模块进行VHDL描述

EntityADC574is

Cntclr:

--计数器清零信号

Rdaddr:

instd_logic_vector(5downto0);

--adram读数地址

--adram读数据输出

EndADC574;

Architectureoneofadc574is

componentcnt64

Port(ClkInc,Cntclr:

Wraddr:

Endcomponent;

componentcontrol

Port(CLK,STATUS:

ADDATA:

CS,CE,A0,RC,K12_8:

ClkInc:

rddata:

componentadram

PORT(data:

wraddress:

rdaddress:

wren:

q:

ENDcomponent;

Signalr_data:

std_logic_vector(7downto0);

Signalclkinc:

Signalwraddr:

U1:

cnt64portmap(clkinc=>

clkinc,cntclr=>

cntclr,wraddr=>

wraddr);

U2:

controlportmap(clk=>

clk,status=>

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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