EDA程序改错题Word格式.docx

上传人:b****2 文档编号:3900179 上传时间:2023-05-02 格式:DOCX 页数:12 大小:18.02KB
下载 相关 举报
EDA程序改错题Word格式.docx_第1页
第1页 / 共12页
EDA程序改错题Word格式.docx_第2页
第2页 / 共12页
EDA程序改错题Word格式.docx_第3页
第3页 / 共12页
EDA程序改错题Word格式.docx_第4页
第4页 / 共12页
EDA程序改错题Word格式.docx_第5页
第5页 / 共12页
EDA程序改错题Word格式.docx_第6页
第6页 / 共12页
EDA程序改错题Word格式.docx_第7页
第7页 / 共12页
EDA程序改错题Word格式.docx_第8页
第8页 / 共12页
EDA程序改错题Word格式.docx_第9页
第9页 / 共12页
EDA程序改错题Word格式.docx_第10页
第10页 / 共12页
EDA程序改错题Word格式.docx_第11页
第11页 / 共12页
EDA程序改错题Word格式.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA程序改错题Word格式.docx

《EDA程序改错题Word格式.docx》由会员分享,可在线阅读,更多相关《EDA程序改错题Word格式.docx(12页珍藏版)》请在冰点文库上搜索。

EDA程序改错题Word格式.docx

●ARCHITECTUREtest_archOFtestIS

●SIGNALB:

STD_LOGIC;

●Q<

=B;

ENDtest_arch

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

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

●ARCHITECTUREarchtestOFtestIS

●CASEAIS

●WHEN‘0’=>

Q<

=‘1’;

●WHEN‘1’=>

=‘0’;

●ENDarchtest;

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

三.判断改错题(3分×

6题)(评分标准:

给出正确答案1分/题;

答案基本正确分/题。

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

ARCHITECTUREtestOFtestIS

BEGIN

CASEAIS

WHEN'

0'

=>

Q<

='

1'

ENDCASE;

ENDtest;

【参考答案】:

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

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

PROCESS(start)

FORiIN1TO9LOOP

sum:

=sum+i;

ENDLOOP;

ENDPROCESS;

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

=”改为“<

=”。

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

ARCHITECTUREtestOFtestIS

SIGNALB:

STD_LOGIC;

Q<

=B;

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

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

A<

B<

x'

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

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

=A;

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

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

CASEselIS

WHEN“00”=>

q<

=a;

WHEN“01”=>

=b;

WHEN“10”=>

=c;

WHEN“11”=>

=d;

CASE语句缺“WHENOTHERS”语句。

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

1、SIGNALA,EN:

STD_LOGIC;

PROCESS(A,EN)

VARIABLEB:

IFEN=‘1’THEN

B<

=A;

END;

ENDPROCESS;

2、RCHITECTUREONEOFSAMPLEIS

VARIABLEA,B,C:

INTEGER;

BEGIN

C<

=A+B;

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

程序:

LIBRARYIEEE;

USEzyt12IS

PORT(R,EN,CP:

INbit;

Q:

BUFFERSTD_LOGIC_VECTOR(0DOWNTO3);

CO:

OUTSTD_LOGIC);

ENDzyt;

ARCHITECTUREc10OFzyt12

CO<

='

WHEN(EN='

ANDQ="

1011"

)ELSE;

'

;

PROCESS(R,CP)

BEGIN

IFR='

THEN

Q<

="

0000"

ELSIF(CP'

EVENTANDCP<

)THEN

IFEN='

=Q;

ELSIFQ="

=‘0000’;

ELSE

=Q+1;

ENDIF;

ENDPROCESS;

ENDone;

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

--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='

THEN--13

TMP<

=A;

--14

ENDIF;

--15

--16

OUTLED:

PROCESS(TMP)--17

BEGIN--18

CASETMPIS--19

WHEN"

LED7S<

="

0111111"

--20

0001"

0000110"

--21

0010"

1011011"

--22

0011"

1001111"

--23

0100"

1100110"

--24

0101"

1101101"

--25

0110"

1111101"

--26

0111"

0000111"

--27

1000"

1111111"

--28

1001"

1101111"

--29

ENDCASE;

--30

--31

--32

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

第14行TMP附值错误

第29与30行之间,缺少WHENOTHERS语句

2.修改相应行的程序:

错误1行号:

9程序改为:

TMP:

STD_LOGIC_VECTOR(3DOWNTO0);

错误2行号:

29程序改为:

该语句后添加WHENOTHERS=>

0000000

1、LIBRARYIEEE;

USE

 USEENTITYCNT4BISPORT(CLK,RST,ENA:

OUTY:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT4B;

ARCHITECTUREbehavOFCNT4BIS

SIGNALCQI:

PROCESS(CLK,RST,ENA)

IFRST='

THENCQI<

0000'

       "

ELSIFCLK'

IFENA="

1"

=CQI+1;

       '

ELSECQI<

ENDIF;

                     ENDIF;

OUTY<

=CQI;

COUT<

=CQI(0)ANDCQI

(1)ANDCQI

(2)ANDCQI(3);

ENDbehav;

2、LIBRARYIEEE;

USECLK_6DISPORT(CLK,RST:

CLK_OUT:

ENDCLK_6D;

ARCHITECTUREONEOFCLK_6DIS

VARIABLETEMP:

SIGNAL

PROCESS(CLK)

VARIABLECNT6D:

INTEGERRANGE0TO3;

CONSTANTSIGN:

INTEGER:

=2;

IF(RST=“1”)THENTEMP<

=“0”;

    '

'

EVENTANDCLK='

THEN  (CLK'

IF(CNT6D=SIGN)THEN

CNT6D:

=0;

TEMP<

=NOTTEMP;

ELSECNT6D:

=CNT6D+1;

CLK_OUT<

=TEMP;

ENDONE;

3、libraryieee;

useencoderis

port(b:

instd_logic(7downto0);

b:

instd_logic_vector(7downto0)

y:

outstd_logic(2downto0));

y:

outstd_logic_vector(2downto0)endencoder;

architectureoneofencoderis

begin

process(b)

casebis

when"

01111111"

=>

y<

111"

whenothers=>

null;

endcase;

endprocess;

endone;

4、LIBRARYIEEE;

ENTITYcounterIS

PORT(reset:

clock:

num:

bufferintegerrange0to3;

多一个“;

”);

END;

ARCHITECTUREbehavOFjishuISjishu改为counter

Begin

Process(reset,clock)

Ifreset=’1’then

num<

=0;

Elsifrising_edge(clock)then

Ifnum=3then

else

=num+1;

                     少endif;

endif;

end;

5、LIBRARYIEEE;

USE;

    

ENTITYLX3_2IS

PORT(CLK,CLR,OE:

INBIT;

D:

INSTD_LOGIC_VECTOR(7DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDLX3_2;

ARCHITECTUREstrucOFLX3_2IS

VARIABLEQ_TEMP:

STD_LOGIC_VECTOR(7DOWNTO0);

   SIGNAL

PROCESS(CLR)          PROCESS(CLK)

IFCLR='

THENQ_TEMP<

00000000'

   "

00000000"

ELSIFCLK='

Q_TEMP<

=D;

ELSEQ_TEMP<

=Q_TEMP;

=Q_TEMPWHENOE='

ELSE

"

ZZZZZZZZ"

                         ENDstruc;

6、LIBRARYIEEE;

    USE

PORT(A:

INSTD_LOGIC_VECTOR(3DOWNTO0);

B:

INSTD_LOGIC(3DOWNTO0);

    STD_LOGIC_VECTOR

GT,LT,EQ:

ARCHITECTUREoneOFLX8_2IS         LX3_2

PROCESS(A,B)

GT<

LT<

EQ<

IFA>

BTHENGT<

=”0”;

ELSIFA<

BTHENLT<

     '

ELSEEQ<

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

错误1原因:

case顺序语句必须放在进程语句Process内。

程序改为:

process(A)

begin

caseAis

错误2原因:

还有存在其他组合的可能。

whenothers=>

附:

自动化123江西理工大学王显聪

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

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2