EDA程序改错题.docx

上传人:b****4 文档编号:922558 上传时间:2022-10-14 格式:DOCX 页数:11 大小:18.25KB
下载 相关 举报
EDA程序改错题.docx_第1页
第1页 / 共11页
EDA程序改错题.docx_第2页
第2页 / 共11页
EDA程序改错题.docx_第3页
第3页 / 共11页
EDA程序改错题.docx_第4页
第4页 / 共11页
EDA程序改错题.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

EDA程序改错题.docx

《EDA程序改错题.docx》由会员分享,可在线阅读,更多相关《EDA程序改错题.docx(11页珍藏版)》请在冰豆网上搜索。

EDA程序改错题.docx

EDA程序改错题

程序改错题

1.已知sel为STD_LOGIC_VECTORD(O1WNT0O)类型的信号,而a、b、c、d、q均为STD_LOGIC类型的信号,请判断下面给出的CASE语句程序片段:

CASEselIS

WHE“N00”=>q<=a;

WHE“N01”=>q<=b;

WHE“N10”=>q<=c;

WHE“N11”=>q<=d;

ENDCAS;E

答案:

CASE语句缺“WHENOTHER”S语句。

2.已知data_in1,data_in2为STD_LOGIC_VECTOR(15DOWNTO类0型)的输入端口,data_out为STD_LOGIC_VECTOR(15DOWNT类O型0)的输出端口,add_sub为STD_LOGIC类型的输入端口,请判断下面给出的程序片段:

LIBRARYIEEE;

USE;

ENTITYaddIS

PORT(data_in1,data_in2:

ININTEGER;

data_out:

OUTINTEGE)R;

ENDadd;

ARCHTECTUREadd_archOFaddIS

CONSTANTa:

INTEGER<;=2

BEGIN

data_out<=(data_in1+data_in2)*a;

ENDaddsub_arch;

答案:

常量声明时赋初值的“<=”符号应改用“:

=”符号。

3.已知Q为STD_LOGIC类型的输出端口,请判断下面的程序片段:

ARCHITECTUREtest_archOFtestIS

BEGIN

SIGNALB:

STD_LOGI;C

Q<=B;

ENDtest_arch

答案:

信号SIGNAL的声明语句应该放在BEGIN语句之前。

4.已知A和Q均为BIT类型的信号,请判断下面的程序片段:

ARCHITECTUREarchtestOFtestIS

BEGIN

CASEAIS

WHEN‘0'=>Q<=‘1';

WHEN‘1'=>Q<=‘0';

ENDCAS;E

ENDarchtest;

答案:

CASE语句应该存在于进程PROCES内S。

三.判断改错题(3分×6题)(评分标准:

给出正确答案1分/题;答案基本正确分/题。

1.已知A和Q均为BIT类型的信号,请判断下面的程序片断:

ARCHITECTUREtestOFtestIS

BEGIN

CASEAIS

WHEN'0'=>Q<='1';

WHEN'1'=>Q<='0';

ENDCASE;

ENDtest;

【参考答案】:

CASE语句应该存在于进程PROCESS内。

2.已知start为STD_LOGIC类型的信号,sum是INTEGER类型的信号,请判断下面的程序片断:

PROCESS(start)

BEGIN

FORiIN1TO9LOOP

sum:

=sum+i;

ENDLOOP;

ENDPROCES;S

【参考答案】:

sum是信号,其赋值符号应该由“:

=”改为“<=”。

3.已知Q为STD_LOGIC类型的输出端口,请判断下面的程序片断:

ARCHITECTUREtestOFtestIS

BEGIN

SIGNALB:

STD_LOGIC;

Q<=B;

ENDtest;

【参考答案】:

信号SIGNAL的申明语句应该放在BEGIN语句之前。

4.已知A和B均为STD_LOGIC类型的信号,请判断下面的语句:

A<='0';

B<='x';

【参考答案】:

不定态符号应该由小写的‘x'改为大写的‘X'。

5.已知A为INTEGER类型的信号,B为STD_LOGIC类型的信号,请判断下面的程序片断:

ARCHITECTUREtestOFtestIS

BEGIN

B<=A;

ENDtest;

【参考答案】:

A和B的数据类型不一致,不能相互赋值。

6.已知sel是STD_LOGIC_VECTORD(O1WNT0O)类型信号,而a、b、c、d、q均为STD_LOGIC类型信号,请判断下面给出的CASE语句:

CASEselIS

WHEN“00”=>q<=a;

WHEN“01”=>q<=b;

WHEN“10”=>q<=c;

WHEN“11”=>q<=d;

ENDCASE;

【参考答案】:

CASE语句缺“WHENOTHE”RS语句。

四、判断下面程序中是否有错误,若有错误请改正;

1、SIGNALA,EN:

STD_LOGIC;

PROCESS(A,EN)

VARIABLEB:

STD_LOGIC;

BEGIN

IFEN=‘1'THEN

B<=A;

END;

ENDPROCESS;

2、RCHITECTUREONEOFSAMPLEIS

VARIABLEA,B,C:

INTEGER;

BEGIN

C<=A+B;

END;

五、判断下列程序是否有错误,如有则指出错误所在(10分)程序:

LIBRARYIEEE;

USEzyt12IS

PORT(R,EN,CP:

INbit;

Q:

BUFFERSTD_LOGIC_VECTOR(0DOWNTO3);

CO:

OUTSTD_LOGIC);

ENDzyt;

ARCHITECTUREc10OFzyt12

BEGIN

CO<='1'WHEN(EN='1'ANDQ="1011")ELSE;

'0';

PROCESS(R,CP)

BEGIN

IFR='1'THEN

Q<="0000";

ELSIF(CP'EVENTANDCP<='1')THEN

IFEN='0'THEN

Q<=Q;

ELSIFQ="1011"THENQ<=‘0000';

ELSE

Q:

=Q+1;

ENDIF;

ENDPROCESS;

ENDone;

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

LIBRARYIEEE;--1

USE--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;--32

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

第14行TMP附值错误第29与30行之间,缺少WHENOTHER语S句2.修改相应行的程序:

错误1行号:

9程序改为:

TMP:

STD_LOGIC_VECTOR(3DOWNTO0);

错误2行号:

29程序改为:

该语句后添加WHENOTHERS=>LED7S<="0000000

1、LIBRARYIEEE;

USE

USE

ENTITYCNT4BIS

PORT(CLK,RST,ENA:

INSTD_LOGIC;

OUTY:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT4B;

ARCHITECTUREbehavOFCNT4BIS

SIGNALCQI:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(CLK,RST,ENA)

BEGIN

IFRST='1'THENCQI<='0000';

ELSIFCLK'EVENTANDCLK='1'THEN

IFENA="1"THENCQI<=CQI+1;

ELSECQI<="0000";

ENDIF;

OUTY<=CQI;

"0000"

'1'

ENDIF;

ENDPROCESS;

 

COUT<=CQI(0)ANDCQI

(1)ANDCQI

(2)ANDCQI(3);

ENDbehav;

2、LIBRARYIEEE;

USE

USE

USECLK_6DIS

PORT(CLK,RST:

INSTD_LOGIC;

CLK_OUT:

OUTSTD_LOGIC);

ENDCLK_6D;

ARCHITECTUREONEOFCLK_6DIS

VARIABLETEMP:

STD_LOGICS;IGNAL

BEGIN

PROCESS(CLK)

VARIABLECNT6D:

INTEGERRANGE0TO3;

CONSTANTSIGN:

INTEGER:

=2;

BEGIN

'1','0'

IF(RST=“1”)THENTEMP<=“0”

ELSIFCLK'EVENTANDCLK='1'THEN(CLK'EVENTANDCLK='1')

IF(CNT6D=SIGN)THEN

CNT6D:

=0;

TEMP<=NOTTEMP;

ELSECNT6D:

=CNT6D+1;

ENDIF;

ENDIF;

ENDPROCESS;

CLK_OUT<=TEMP;

ENDONE;

3、libraryieee;

useencoder

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

当前位置:首页 > 求职职场 > 简历

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

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