EDA程序改錯題_第1頁
EDA程序改錯題_第2頁
EDA程序改錯題_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、程序改錯題已知sel為STD_LOGIC_VECTORPOWNTO類型的信號,而a、b、c、d、q均為STD_LOGIC類型的信號,請判斷下面給出的CASE句程序片段:CASEselISWHEN00”=>q<=a;WHEN01”=>q<=b;WHEN10”=>q<=c;WHEN11”=>q<=d;ENDCASE答案:CAS命句缺“WHENOTHER弟句。1. 已知data_in1,data_in2為STD_LOGIC_VECTOR(15DOWNTO晚型的輸入端口,data_out為STD_LOGIC_VECTOR(15DOWNTOW的輸出端口,a

2、dd_sub為STD_LOGI缺型的輸入端口,請判斷下面給出的程序片段:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYaddISPORT(data_in1,data_in2:ININTEGER;data_out:OUTINTEGER;ENDadd;ARCHTECTUREadd_archOFaddISCONSTANTa:INTEGER<=2BEGINdata_out<=(data_in1+data_in2)*a;ENDaddsub_arch;答案:常量聲明時賦初值的“<=”符號應(yīng)改用“:=”符號。2. 已知Q為STD_LOGICt型的

3、輸出端口,請判斷下面的程序片段:ARCHITECTUREtest_archOFtestISBEGINSIGNALB:STD_LOGICQ<=B;ENDtest_arch答案:信號SIGNAL的聲明語句應(yīng)該放在BEGIN語句之前。3. 已知A和Q均為BIT類型的信號,請判斷下面的程序片段:ARCHITECTUREarchtestOFtestISBEGINCASEAISWHEN'0'=>Q<='1'WHEN'1'=>Q<='0'ENDCASEENDarchtest;答案:CAS耶句應(yīng)該存在于進程PROCE

4、SS。1. 三.判斷改錯題(3分X6題)(評分標(biāo)準(zhǔn):給出正確答案1分/題;答案基本正確0.5分/題。)已知簡日。均為BIT類型的信號,請判斷下面的程序片斷:ARCHITECTUREtestOFtestISBEGINCASEAISWHEN'0'=>Q<='1'WHEN'1'=>Q<='0'ENDCASE;ENDtest;【參考答案】:CASE句應(yīng)該存在于進程PROCESS。已知start為STD_LOGI蒙型的信號,su說INTEGERS型的信號,請判斷下面的程序片斷:PROCESS(start)BEGINF

5、ORiIN1TO9LOOPsum:=sum+i;ENDLOOP;ENDPROCESS【參考答案】:sum是信號,其賦值符號應(yīng)該由“:=”改為“<=”。2. 已知6STD_LOGICt型的輸出端口,請判斷下面的程序片斷:ARCHITECTUREtestOFtestISBEGINSIGNALB:STD_LOGIC;Q<=B;ENDtest;【參考答案】:信號SIGNAL勺申明語句應(yīng)該放在BEGINS句之前。3. 已知閉日B均為STD_LOGI斐型的信號,請判斷下面的語句:A<='0'B<='x'【參考答案】:不定態(tài)符號應(yīng)該由小寫的x'

6、改為大寫的X'。4. 已知A為INTEGER型的信號,B為STD_LOGI0t型的信號,請判斷下面的程序片斷:ARCHITECTUREtestOFtestISBEGINB<=A;ENDtest;【參考答案】:A和B的數(shù)據(jù)類型不一致,不能相互賦值。已知sel是STD_LOGIC_VECTORDOWNT0)類型信號,而a、b、c、d、q均為STD_LOGIC類型信號,請判斷下面給出的CAS弟句:CASEselISWHEN“00”=>q<=aWHEN“0T=>q<=bWHEN“10”=>q<=cWHEN“1T=>q<=dENDCASE;【

7、參考答案】:CASE句缺"WHENOTHER據(jù)句。四、判斷下面程序中是否有錯誤,若有錯誤請改正;1、SIGNALA,EN:STD_LOGIC;PROCESS(A,EN)VARIABLEB:STD_LOGIC;BEGINIFEN=TTHENB<=A;END;ENDPROCESS;2、RCHITECTUREONEOFSAMPLEISVARIABLEAB,C:INTEGERBEGINC<=A+B;END;五、判斷下列程序是否有錯誤,如有則指出錯誤所在(10分)程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_

8、ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYzyt12ISPORT(R,EN,CP:INbit;Q:BUFFERSTD_LOGIC_VECTOR(0DOWNTO3);CO:OUTSTD_LOGIC);ENDzyt;ARCHITECTUREc10OFzyt12BEGINCO<='1'WHEN(EN='1'ANDQ="1011")ELSE;'0'PROCESS(R,CP)BEGINIFR='1'THENQ<="0000"ELSIF(C

9、P'EVENTANDCP<='1')THENIFEN='0'THENQ<=Q;ELSIFQ="1011"THENQ<='0000'ELSEQ:=Q+1;ENDIF;ENDPROCESS;ENDone;仔細閱讀下列程序,回答問題LIBRARYIEEE;-1USEIEEE.STD_LOGIC_1164.ALL;-2ENTITYLED7SEGIS-3PORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);-4CLK:INSTD_LOGIC;-5LED7S:OUTSTD_LOGIC_VECTO

10、R(6DOWNTO0);-6ENDLED7SEG;-7ARCHITECTUREoneOFLED7SEGIS-8SIGNALTMP:STD_LOGIC;-9BEGIN-10SYNC:PROCESS(CLK,A)-11BEGIN-12IFCLK'EVENTANDCLK='1'THEN-13TMP<=A;-14ENDIF;-15ENDPROCESS;-16OUTLED:PROCESS(TMP)-17BEGIN-18CASETMPIS-19WHEN"0000"=>LED7S<="0111111"-20WHEN"

11、0001"=>LED7S<="0000110"-21WHEN"0010"=>LED7S<="1011011"-22WHEN"0011"=>LED7S<="1001111"-23WHEN"0100"=>LED7S<="1100110"-24WHEN"0101"=>LED7S<="1101101"-25WHEN"0110"=>

12、LED7S<="1111101"-26WHEN"0111"=>LED7S<="0000111"-27WHEN"1000"=>LED7S<="1111111"-28WHEN"1001"=>LED7S<="1101111"-29ENDCASE;-30ENDPROCESS;-311. ENDone;-32在程序中存在兩處錯誤,試指出,并說明理由:2. 第14行TMP附值錯誤第29與30行之間,缺少WHENOTHERS句修

13、改相應(yīng)行的程序:錯誤1行號:9程序改為:TMP:STD_LOGIC_VECTOR(3DOWNTO0);錯誤2行號:29程序改為:該語句后添加WHENOTHERS=>LED7S<="00000001、LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT4BISPORT(CLKRSTENA:INSTD_LOGIC;OUTY:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT4B;ARCHITECTUREbehav

14、OFCNT4BISSIGNALCQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK,RST,ENA)BEGINIFRST='1'THENCQI<='0000'"0000"ELSIFCLK'EVENTANDCLK='1'THENIFENA="1"THENCQI<=CQI+1;'1'ELSECQI<="0000"ENDIF;ENDIF;OUTY<=CQI;ENDPROCESS;COUT<=CQI(

15、0)ANDCQI(1)ANDCQI(2)ANDCQI(3);ENDbehav;2、LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCLK_6DISPORT(CLK,RST:INSTD_LOGIC;CLK_OUT:OUTSTD_LOGIC);ENDCLK_6D;ARCHITECTUREONEOFCLK_6DISVARIABLETEMP:STD_LOGI(SIGNALBEGINPROCESS(CLK)VARIABLECNT6D:INTEGE

16、RRANGE0TO3;CONSTANTSIGN:INTEGER:=2;BEGINIF(RST="1”)THENTEMP<="0”;'1','0'ELSIFCLK'EVENTANDCLK='1'THEN(CLK'EVENTANDCLK=T)IF(CNT6D=SIGN)THENCNT6D:=0;TEMP<=NOTTEMP;ELSECNT6D:=CNT6D+1;ENDIF;ENDIF;ENDPROCESS;CLK_OUT<=TEMP;ENDONE;3、libraryieee;useieee.std_

17、logic_1164.all;entityencoderisport(binstd_logic(7downto0);b:instd_logic_vector(7downto0)y_outstd_logic(2downto0);y:outstd_logic_vector(2downto0)endencoder;architectureoneofencoderisbeginprocess(b)begincasebiswhen"0111111T'=>y<="11T;when"1011111T'=>y<="110"

18、;when"1101111T'=>y<="10T;when"1110111T'=>y<="100"when"1111011T'=>y<="01T;when"1111101T'=>y<="010"when"1111110T'=>y<="00T;when"11111110"=>y<="000"whenothers=>null

19、;endcase;endprocess;endone;4、LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcounterISPORT(reset:INSTD_LOGIC;clock:INSTD_LOGIC;num:bufferintegerrange0to3;多一個“;”);END;ARCHITECTUREbehavOFjishuISjishu改為counterBeginProcess(reset,clock)BeginIfreset='1'thennum<=0;Elsifrising_edge(clock)thenIfnum=3

20、thennum<=0;elsenum<=num+1;少endif;endif;endprocess;end;5、LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STDLOGICUNSIGNED;STD_LOGIC_UNSIGNED.ALLENTITYLX3_2ISPORT(CLK,CLR,OE:INBIT;D:INSTD_LOGIC_VECTOR(7DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDLX3_2;ARCHITECTUREstrucOFLX3_2ISVARIABLEQ_TEMP:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALBEGINPROCESS(CLR)PROCESS(CLK)BEGINIFCLR='0'THENQTEMP<='00000000"00000000"ELSIFCLK='1'THENQ_TEMP<=D;ELS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論