EDA与VHDL断改错题集_第1页
EDA与VHDL断改错题集_第2页
EDA与VHDL断改错题集_第3页
EDA与VHDL断改错题集_第4页
EDA与VHDL断改错题集_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、判断对错(并改正)(错) 改正:把 =换为:=1、CONSTANTT2std_logicqqqq=d;ENDCASE答案:CASE句缺“WHENOTHER时句。2 .已知data_in1,data_in2为STD_LOGIC_VECTOR(DOWNTO类型的输入端口,data_out为STD_LOGIC_VECTOR(15DOWNTO的输出端口,add_sub为STD_LOGI腔型的输入端口,请判断下面给出的程序片段:LIBRARYIEEE;USE;ENTITYaddISPORT(data_in1,data_in2:ININTEGER;data_out:OUTINTEGER;ENDadd;

2、ARCHTECTUREadd_archOFaddISCONSTANTa:INTEGER=2BEGINdata_out=(data_in1+data_in2)*a;ENDaddsub_arch;答案:常量声明时赋初值的“=符号应改用“尸”符号。3 .已知Q为STD_LOGICt型的输出端口,请判断下面的程序片段:ARCHITECTUREtest_archOFtestISBEGINSIGNALB:STD_LOGICQQQQQ=0;ENDCASE;ENDtest;【参考答案】:CAS晤句应该存在于进程PROCESS。2 .已知start为STD_LOGIC1型的彳t号,sumINTEGE诔型的信号,

3、请判断下面的程序片断:PROCESS(start)BEGINFORiIN1TO9LOOPsum:=sum+i;ENDLOOP;ENDPROCESS;【参考答案】:sum是信号,其赋值符号应该由:=改为“=。3 .已知Q为STD_LOGIC1型的输出端口,请判断下面的程序片断:ARCHITECTUREtestOFtestISBEGINSIGNALB:STD_LOGIC;Q=B;ENDtest;【参考答案】:信号SIGNAL勺申明语句应该放在BEGINS句之前。4 .已知A口Bt匀为STD_LOGI类型的信号,请判断下面的语句:A=0;B=x;【参考答案】:不定态符号应该由小写的x改为大写的X。5

4、 .已知A为INTEGERS型的彳言号,B为STD_LOGI袈型的信号,请判断下面的程序片断:ARCHITECTUREtestOFtestISBEGINBqqqq=d;ENDCASE;【参考答案】:CAS晤句缺“WHENOTHERS句。四、判断下面程序中是否有错误,若有错误请改正;1、 SIGNALA,EN:STD_LOGIC;PROCESS(A,EN)VARIABLEB:STD_LOGIC;BEGINIFEN=1THENB=A;END;ENDPROCESS;2、 RCHITECTUREONEOFSAMPLEISVARIABLEA,B,C:INTEGER;BEGINC=A+B;END;五、判断

5、下列程序是否有错误,如有则指出错误所在(10分)程序:LIBRARYIEEE;USEzyt12ISPORT(R,EN,CP:INbit;Q:BUFFERSTD_LOGIC_VECTOR(0DOWNTO3);CO:OUTSTD_LOGIC);ENDzyt;ARCHITECTUREc10OFzyt12BEGINCO=1WHEN(EN=1ANDQ=1011)ELSE0;PROCESS(R,CP)BEGINIFR=1THENQ=0000;ELSIF(CPEVENTANDCP=1)THENIFEN=0THENQ=Q;ELSIFQ=1011THENQ=0000;ELSEQ:=Q+1;ENDIF;ENDPR

6、OCESS;ENDone;六、VHDLS序改错:(10分)01LIBRARYIEEE;02USE;03USE04ENTITYLED7CNTIS05PORT(CLR:INSTD_LOGIC;06CLK:INSTD_LOGIC;07LED7S:OUTSTD_LOGIC_VECTOR(DOWNTO0);08ENDLED7CNT;09ARCHITECTUREoneOFLED7CNTIS10 SIGNALTMP:STD_LOGIC_VECTOR(3DOWNTO0);11 BEGIN12 CNTROCESS(CLR,CLK)13 BEGIN14 IFCLR=1THEN15 TMP=0;16 ELSEIFC

7、LKEVENTANDCLK=1THEN17 TMP0);34 ENDCASE;35 ENDPROCESS;36 ENDone;在程序中存在两处错误,试指出,并说明理由:提示:在MAX+PlusII上编译时报出的第一条错误为:Error学ine15:File*/:Typeerror:typeWHEN 0000=WHEN 0001=LED7S =LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S =in waveform elementmust be“std_logic_vector第行,错误:改正:第行,错误:改正:七、判断下列

8、程序是否有错误,如有则指出错误所在,并为以下两个程序配上相应的实体和结构体。(10分)(10分)程序1:ARCHITECTUREoneOFsampleISVARIABLEa,b,c:INTEGER;BEGINC=a+bEND;程序2:signalA,EN:std_logic;process(A,EN)variableB:std_logic;beginifEN=1thenB=A;endif;endprocess;八、判断下列程序是否有错误,如有则指出错误所在,并为以下两个程序配上相应的实体和结构体。程序1:libraryieee;usesampleisport(a,b:ininteger;c:o

9、utinteger);endsample;architectureoneofsampleisbeginc=a+b;endone;程序2:ENTITYsample1isport(a,en:instd_logic;b:outstd_logic);endsample1;architectureoneofsample1isbeginprocess(A,EN)beginifEN=1thenB=A;endif;endprocess;endone;九、程序改错题(仔细阅读下列程序后回答问题,12分)1 LIBRARYIEEE;2 USEUSEENTITYgcIS5 PORT(CLK:INSTD_LOGIC;

10、6 Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);7 ENDgc;8 ARCHITECTUREbhvOFgcIS9 SIGNALQ1:RANGE0TO9;10 BEGIN11 PROCESS(clk,Q)12 BEGIN13 IFRISING_EDGE(CLK)THEN14 IFQ11001THEN15 Q1=Q1+1;16 ELSE17 Q10);18 ENDIF;19 ENDIF;20 ENDPROCESS;21 Qout1out1=0;当value取十时ENDCASE;程序段2:ARCHITECTUREbadOFexISSIGNALa_vect:STD_LOGIC_VE

11、CTOR(2DOWNTO0);SIGNALb_vect:STD_LOGIC_VECTOR(3DOWNTO0);BEGIN0&a=b;END;程序段3:IFsel=1THENC=“01”;ELSIFJohn=100THENC=10”;ELSEc=00”;ELSEC=11”;ENDIF;第2题:判断下列VHDL标识符是否合法,如果有误则指出原因。(1)_Decoder_1;(2)2FFT;(3)Sig_#N;(4)RyY_RsT_;(5)data_BUS;第3题:下面的赋值语句执行之后矢量a,b将分别得到什么值ARCHITECTURErtlOFexISSIGNALa,b:STD_LOGIC_VEC

12、TOR(4downto0);SIGNALc:STD)LOGIC_VECTOR(0to2);BEGINa0,2=1,4=1,others=b(4);a的第一赋值为0,二四位赋值为1,其他位(0,3位)赋值为b的第四位0,其结果为10100b1,2=0,3=1,others=c(1);b的第0三位赋值为1,第二位赋值为0,其他位(1,4位)赋值为c的第一位0,结果为01001cout1out1NULL;ENDCASE;第2题:ENTITYcase_exISPORT(a:INSTD_LOGIC_VECTOR(4DOWNTO0);q:outSTD_LOGIC_VECTOR(2DOWNTO0);END;

13、ARCHITECTURErtlOFcase_exISBEGINP1:PROCESS(a)BEGINCASEaISWHEN“00000”=qqq=”000”;ENDCASE;ENDPROCESS;END;第3题:IFsel=”11”THENIFtd=1THENC=“01”;ELSIFtd=0THENC=”10”;ELSEcdddd=0;ENDCASE;第2题:IFsel=”01”THENC=“01”;IFsel=”10”THENC=”10”;ELSEc=”00”;ENDIF;第3题:ARCHITECTUREbadOFexISSIGNALa:BIT_VECTOR(2DOWNTO0);SIGNALb

14、:BIT_LOGIC_VECTOR(2DOWNTO1);BEGINaS_outS_out=1;ENDCASE;第2题:ARCHITECTUREbhvOFexISSIGNALa:STD_LOGIC_VECTOR(4DOWNTO0);SIGNALb:STD_LOGIC_VECTOR(0TO4);SIGNALc:STD_LOGIC;BEGINa=”1101”;b(4)=c;b(0TO3)=a(3DOWNTO0);END;IFa=1THENC=111”;ELSIFb=100THENC=110”;ELSEc=010”;ENDIF;ENDIF;十四、VHDLS序改错:仔细阅读下列程序,回答问题1LIBRA

15、RYIEEE;2USE4ENTITYCNT10IS5PORT(CLK:INSTD_LOGIC;6 Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);7 ENDCNT10;8 ARCHITECTUREbhvOFCNT10IS9 SIGNALQ1:STD_LOGIC_VECTOR(3DOWNTO0);10 BEGIN11 PROCESS(CLK)BEGIN12 IFRISING_EDGE(CLK)begin13 IFQ19THEN14 Q1=Q1+1;15 ELSE16 Q10);17 ENDIF;18 ENDIF;19 ENDPROCESS;20 Q=Q1;21 ENDbhv;1

16、.在MAX+PlusII中编译时,提示的第一条错误为:Error:Line12:Filee:myworktest:VHDLsyntaxerror:IfstatementmusthaveTHEN,butfoundBEGINinstead指出并修改相应行的程序(如果是缺少语句请指出大致的行数):错误1行号:程序改为:错误2行号:程序改为:2 .若编译时出现如下错误,请分析原因。十五、VHDLS序改错:本题程序为EDA实验中的示例程序,仔细阅读程序,回答问题。1 .对该程序进行编译时出现错误提示:VHDLDesignFileschmustcontainanentityofthesamename.”这

17、是什么原因如何修改2 .修改问题1的错误后,如果编译时出现“CantopenVHDL“WORK”这样的错误提示。这又是什么原因,如何修改libraryieee;-1use-2entityschkis-3port(din,clk,clr:instd_logic;-串行输入数据位/工作时钟/复位信号-4ab:outstd_logic_vector(3downto0)-检测结果输出-5);-6endschk;-7architecturebhvofschkis-8signalq:integerrange0to8;-9signald:std_logic_vector(7downto0);-8位待检测预置

18、数-10begin-11d=;-8位待检测预置数-12process(clk,clr)-13begin-14ifclr=1thenqifdin=d(7)thenq=1;elseqifdin=d(6)thenq=2;elseqifdin=d(5)thenq=3;elseqifdin=d(4)thenq=4;elseqifdin=d(3)thenq=5;elseqifdin=d(2)thenq=6;elseqifdin=d(1)thenq=7;elseqifdin=d(0)thenq=8;elseqq=0;-26endcase;-27endif;-28elseifclkeventandclk=1t

19、hen-16endprocess;-29process(q)-30begin-31ifq=8thenab=1010;-32elseab=1011;-33endif;-34endprocess;-35endbhv;-361.在上述程序代码中存在两处错误,编译时出现如下提示,试修改错误:Error:Line12:Filef:eda:VHDLsyntaxerror:unexpectedsignaldinConcurrentStatementPartError:Line29:Filef:eda:VHDLsyntaxerror:ifstatementmusthaveENDIF,butfoundPROCE

20、SSinstead错误1行号:程序改为:错误2行号:程序改为:十六、VHDLS序改错仔细阅读下列程序,回答问题-1-3-4-5-6-7-8-9-10-11-12-13-14LIBRARYIEEE;USE-2ENTITYLED7SEGISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);CLK:INSTD_LOGIC;LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTO0);ENDLED7SEG;ARCHITECTUREoneOFLED7SEGISSIGNALTMP:STD_LOGIC;BEGINSYNC:PROCESS(CLK,A)BEGINIFCLKEVE

21、NTANDCLK=1THENTMPLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7S=1101111;-29ENDCASE;-30ENDPROCESS;-31ENDone;-321. 在程序中存在两处错误,试指出,并说明理由:2. 修改相应行的程序:错误1行号:程序改为:错误2行号:程序改为:十八、VHDLS序改错仔细阅读下列程序,回答问题LIBRARYIEEE;-1USE-2ENTITYLED7SEGIS-3PORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);-4CLK:INSTD_LOGIC;-5LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTO0);-6ENDLED7SEG;-7ARCHITECTUREoneOFLED7SEGIS-8SIGNALTMP:STD_LOGIC;-9BEGIN-10SYNC:PROCESS(CLK,A)-11BEGIN-12IFCLKEVENTANDCLK=1THEN-13TMPLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7sLED7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论