版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機組成原理課程設(shè)計說明書題目:設(shè)計求負(fù)數(shù)平方和的CISC模型計算機院(系):計算機科學(xué)與工程學(xué)院專業(yè):計算機科學(xué)與技術(shù)學(xué)生姓名: 學(xué)號: 指導(dǎo)教師:陳智勇 目 錄1課程設(shè)計的題目與內(nèi)容11.1題目11.2內(nèi)容12系統(tǒng)總體設(shè)計22.1CISC模型機數(shù)據(jù)通路框圖的設(shè)計22.2操作控制器的邏輯框圖的設(shè)計22.3模型機的指令系統(tǒng)和所有指令的指令格式的設(shè)計32.4時序產(chǎn)生電路的設(shè)計62.5機器指令的微程序流程圖以及微指令的設(shè)計72.6地址轉(zhuǎn)移邏輯電路的設(shè)計92.7軟件清單92.8嵌入式CISC模型計算機的頂層電路圖283匯編語言源程序294機器語言源程序305機器語言源程序的功能仿真波形圖及結(jié)果分析
2、316故障現(xiàn)象和故障分析337心得體會341 課程設(shè)計的題目與內(nèi)容1.1 題目設(shè)計一臺嵌入式CISC模型計算機(采用定長CPU周期、聯(lián)合控制方式),并運行能完成一定功能的機器語言程序進行驗證,機器語言源程序功能如下:連續(xù)輸入5個有符號整數(shù)(用8位二進制補碼表示,十六進制數(shù)輸入),求所有負(fù)數(shù)的平方和并輸出顯示。說明: 5個有符號數(shù)從外部輸入; 一定要使用符號位(比如說SF),并且要使用負(fù)的時候轉(zhuǎn)移(比如說JS)或不為負(fù)的時候轉(zhuǎn)移(比如說JNS)指令; 采用三數(shù)據(jù)總線結(jié)構(gòu)的運算器,采用RAM,先將輸入數(shù)據(jù)依次存放在RAM的某一連續(xù)的存儲區(qū)域內(nèi),再依次讀出判斷是否為負(fù)數(shù),若為負(fù)數(shù)再求其平方和。1.2
3、 內(nèi)容(1) 完成系統(tǒng)的總體設(shè)計,畫出模型機數(shù)據(jù)通路框圖;(2) 設(shè)計微程序控制器(CISC模型計算機)的邏輯結(jié)構(gòu)框圖; (3) 設(shè)計機器指令格式和指令系統(tǒng); (4) 設(shè)計時序產(chǎn)生器電路; (5) 設(shè)計所有機器指令的微程序流程圖; (6) 設(shè)計操作控制器單元;在CISC模型計算機中,設(shè)計的內(nèi)容包括微指令格式(建議采用全水平型微指令)、微指令代碼表(根據(jù)微程序流程圖和微指令格式來設(shè)計)和微程序控制器硬件電路(包括地址轉(zhuǎn)移邏輯電路、微地址寄存器、微命令寄存器和控制存儲器等。具體電路根據(jù)微程序控制器的邏輯結(jié)構(gòu)框圖、微指令格式和微指令代碼來設(shè)計)。(7) 設(shè)計模型機的所有單元電路,并用VHDL語言(也
4、可使用GDF文件-圖形描述文件)對模型機中的各個部件進行編程,并使之成為一個統(tǒng)一的整體,即形成頂層電路或頂層文件; (8) 由給出的題目和設(shè)計的指令系統(tǒng)編寫相應(yīng)的匯編語言源程序;(9) 根據(jù)設(shè)計的指令格式,將匯編語言源程序手工轉(zhuǎn)換成機器語言源程序,并將其設(shè)計到模型機中的ROM中去;(10) 使用EDA軟件進行功能仿真,要保證其結(jié)果滿足題目的要求;(其中要利用EDA軟件提供的波形編輯器,選擇合適的輸入輸出信號及中間信號進行調(diào)試。)(11) 器件編程,并在EDA實驗平臺上進行操作演示。2 系統(tǒng)總體設(shè)計2.1 CISC模型機數(shù)據(jù)通路框圖的設(shè)計2.2 操作控制器的邏輯框圖的設(shè)計2.3 模型機的指令系統(tǒng)
5、和所有指令的指令格式的設(shè)計1) I/O指令輸入指令(IN1)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼 Rd輸出指令(OUT1)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼Rs2) 轉(zhuǎn)移指令非零條件轉(zhuǎn)移指令(JNZ)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼 地址addr非負(fù)條件轉(zhuǎn)移指令(JNS)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼 地址addr無條件轉(zhuǎn)移指令(JMP)格式:15 14 13 1211 109 87 6 5 4 3 2 1
6、0操作碼 地址addr3) MOV指令MOV指令格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼 Rd立即數(shù)im4) 相加指令相加指令(ADD)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼RsRd5) 有符號乘法指令乘法指令(IMUL)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼Rd6) 加1指令加1指令(INC)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼Rd7) 減1指令減1指令(DEC)格式:15 14 13 1211 109 87 6 5 4 3
7、2 1 0操作碼Rd8) 相與指令相與指令(AND)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼Rd9) 字符串存儲指令乘法指令(STO)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼Rs地址addr10) 字符串存儲指令乘法指令(STOI)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼RsRd11) 取數(shù)指令取數(shù)指令(LAD)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼RsRd指令系統(tǒng)表:指令助記符 指令格式 功能 15-12 11 10 9 8 7-0
8、 IN1 Rd 0001 Rd 輸入設(shè)備Rd MOV Rd,im 0010 Rd im 立即數(shù)Rd LAD (Rs),Rd 0011 Rs Rd (Rs)Rd ADD Rs,Rd0100RsRd(Rs)+(Rd)RdINC Rd 0101 Rd (Rd)+1Rd DEC Rd 0110 Rd (Rd)-1Rd JNZ addr 0111 addr 若不等,則addrPC STO Rs,addr 1000 Rs addr (Rs)addr JMP addr 1001 addr addrPC OUT1 Rs 1010 Rs (Rs)輸出設(shè)備 STOI Rs,(Rd) 1011 Rs Rd (Rs)
9、(Rd) IMUL Rd,Rd1100Rd(Rd) (Rd)RdAND Rd,Rd1101Rd(Rd) (Rd)RdJNS addr1110addr若不為正,則addrPC 其中,對源寄存器Rs與目的寄存器Rd的規(guī)定如下:Rs或Rd選定的寄存器00R001R110R211R3模型機規(guī)定數(shù)據(jù)的表示采用定點整數(shù)補碼表示,單字長為8位,其格式如下: 76 5 4 3 2 1 0符號位尾數(shù)2.4 時序產(chǎn)生電路的設(shè)計T1、T2、T3、T4與CLR、Q之間的關(guān)系圖如圖 1所示。QCLRT1T2T3T4一個CPU周期圖 12.5 機器指令的微程序流程圖以及微指令的設(shè)計要設(shè)計微程序控制器,首先要設(shè)計微程序流程
10、圖以及微指令,其次再設(shè)計地址轉(zhuǎn)移邏輯電路以及其它邏輯單元電路,設(shè)計步驟如下:1. 根據(jù)指令格式和指令系統(tǒng)設(shè)計所有機器指令的微程序流程圖,并確定每條微指令的微地址和后繼微地址;2. 設(shè)計微指令格式和微指令代碼表;3. 設(shè)計地址轉(zhuǎn)移邏輯電路;4. 設(shè)計微程序控制器中的其它邏輯單元電路,包括微地址寄存器、微命令寄存器和控制存儲器。其中,微程序流程圖設(shè)計如下圖所示:微指令流程圖設(shè)計完成后,開始設(shè)計微指令格式和微指令代碼表,按照要求,CISC模型機系統(tǒng)使用的微指令采用全水平型微指令,字長為28位,其中微命令字段為19位,P字段為3位,后繼微地址為6位,其格式如下:LOAD LDPC LDAR LDIR
11、LDRi LDPSW RS_B S2 S1 S0 ALU_B SW_B LED_B RD_D CS_D RAM_B CS_I ADDR_B CS_I P1 P2 P3 u5-uO按照以上格式,依據(jù)自身設(shè)計的微指令流程圖,可以得到以下的微指令代碼表:2.6 地址轉(zhuǎn)移邏輯電路的設(shè)計地址轉(zhuǎn)移邏輯電路是根據(jù)微程序流程圖中的棱形框部分及多個分支微地址,利用微地址寄存器的異步置“1”端,實現(xiàn)微地址的多路轉(zhuǎn)移。由于微地址寄存器中的觸發(fā)器異步置“1”端低電平有效,與A5A0對應(yīng)的異步置“1”控制信號SE6SE1的邏輯表達(dá)式為:SE6= ZFP(3)T4SE5=ZFP(2)T4SE4=I15P(1)T4SE3=
12、I14P(1)T4SE2=I13P(1)T4SE1=I12P(1)T42.7 軟件清單l ALU設(shè)計:其中S2,S1,S0表示的是算術(shù)邏輯運算單元ALU,其功能表為:S2S1S0功能000X+Y001X-Y010X+1011X-1100YY101XY110Y111YYVHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.all;ENTITY ALU ISPORT( X: IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y:
13、IN STD_LOGIC_VECTOR(7 DOWNTO 0); S2,S1,S0: IN STD_LOGIC; ALUOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; SF,ZF: OUT STD_LOGIC );END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESSBEGIN IF(S2=0 AND S1=0 AND S0=0) THEN-ADD AA=X; BB=Y; TEMP=AA+BB;ALUOUT=TEMP(7 DOWNTO
14、 0); SF=TEMP(7); IF (TEMP=10000000 OR TEMP=00000000)THEN ZF=1; ELSE ZF=0; END IF;ELSIF(S2=0 AND S1=0 AND S0=1) THEN -CMP(SUB) ALUOUT=X-Y;IF(XY) THEN SF=1; ZF=0; ELSIF(X=Y) THEN SF=0; ZF=1; ELSE SF=0; ZF=0; END IF; ELSIF(S2=0 AND S1=1 AND S0=0) THEN -INC AA=Y; TEMP=AA+1; ALUOUT=TEMP(7 DOWNTO 0); SF=T
15、EMP(7); IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=0 AND S1=1 AND S0=1) THEN -DEC AA=Y; TEMP=AA-1; ALUOUT=TEMP(7 DOWNTO 0); SF=TEMP(7); IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=1 AND S1=0 AND S0=0) THEN -AND TEMP=Y AND Y; ALUOUT=TEMP;
16、 SF=TEMP(7); IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=1 AND S1=0 AND S0=1) THEN -OR TEMP=X OR Y; ALUOUT=TEMP; SF=TEMP(7); IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZFBUS ALUOUT=Y; SF=Y(7); ELSIF(S2=1 AND S1=1 AND S0=1) THEN -IMUL TEMP=Y *Y; SF=TEMP(7); ALU
17、OUT=TEMP; IF (TEMP=10000000 OR TEMP=00000000) THEN ZF=1; ELSE ZF=0; END IF;ELSE ALUOUT=00000000 ; ZF=0; END IF; END PROCESS;END A;算術(shù)邏輯單元ALU電路圖如圖 2所示:圖 2l 4選1數(shù)據(jù)選擇器MUX4VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX4_1 ISPORT(R0,R1,R2,R3:IN STD_LOGIC_VECTOR(7 DOWNTO 0);X:OUT STD_LOGIC_VECTO
18、R(7 DOWNTO 0);I11,I10:IN STD_LOGIC);END MUX4_1;ARCHITECTURE A OF MUX4_1 ISBEGIN PROCESS BEGIN IF(I11=0 AND I10=0) THEN X=R0; ELSIF(I11=0 AND I10=1)THEN X=R1; ELSIF(I11=1 AND I10=0)THEN X=R2; ELSEX=R3; END IF; END PROCESS;END A;4選1選擇器MUX4電路圖如圖 3所示:圖 3l 5選1數(shù)據(jù)選擇器MUX5VHDL源程序:LIBRARY IEEE; USE IEEE.STD_L
19、OGIC_1164.ALL;ENTITY MUX5 ISPORT( SW_B,RS_B,RAM_B,ADDR_B,ALU_B : IN STD_LOGIC; SW,RS,RAM,ADDR,ALU: IN STD_LOGIC_VECTOR(7 DOWNTO 0); W: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END MUX5;ARCHITECTURE A OF MUX5 ISSIGNAL SEL:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN SEL=SW_B&RS_B&RAM_B&ADDR_B&ALU_B; PROCESS(SEL) BEG
20、IN IF(SEL=01111)THEN W=SW; ELSIF(SEL=10111)THEN W=RS; ELSIF(SEL=11011)THEN W=RAM; ELSIF(SEL=11101)THEN W=ADDR; ELSIF(SEL=11110)THEN W=ALU; ELSE NULL; END IF; END PROCESS;END A;5選1數(shù)據(jù)選擇器電路圖如圖 4所示:圖 4l 狀態(tài)字器存器PSWVHDL源程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY PSW ISPORT( LDPSW : IN STD_LOGIC; Z
21、I,SI: IN STD_LOGIC; FZ,FS: OUT STD_LOGIC );END PSW;ARCHITECTURE A OF PSW ISBEGIN PROCESS(LDPSW) BEGIN IF(LDPSWEVENT AND LDPSW=1)THEN FZ=ZI; FS=SI; END IF; END PROCESS;END A;狀態(tài)字寄存器PSW電路圖如圖 5所示:圖 5l 微程序控制器CROMCROM的電路圖如圖 6所示:圖 6其內(nèi)部電路圖如圖 7所示:圖 7其組成的部件有以下: 地址轉(zhuǎn)移邏輯ADDRLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.A
22、LL;ENTITY ADDR IS PORT( I15,I14,I13,I12:IN STD_LOGIC; FZ,FS,T4,P1,P2,P3:IN STD_LOGIC; SE6,SE5,SE4,SE3,SE2,SE1:OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGIN SE6=NOT (NOT FS) AND P3 AND T4); SE5=NOT (NOT FZ) AND P2 AND T4); SE4=NOT ( I15 AND P1 AND T4); SE3=NOT (I14 AND P1 AND T4); SE2=NOT (I
23、13 AND P1 AND T4); SE1=NOT (I12 AND P1 AND T4);END A;地址轉(zhuǎn)移邏輯ADDR電路圖如圖 8所示:圖 8 微命令寄存器MCOMMANDVHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY MCOMMAND ISPORT( T2,T3,T4:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(20 DOWNTO 0); LOAD,LDPC,LDAR,LDI
24、R,LDRI,LDPSW,RS_B,S2,S1,S0:OUT STD_LOGIC; ALU_B,SW_B,LED_B,RD_D,CS_D,RAM_B,CS_I,ADDR_B,P1,P2,P3:OUT STD_LOGIC );END MCOMMAND;ARCHITECTURE A OF MCOMMAND ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(20 DOWNTO 0);BEGIN PROCESS(T2) BEGIN IF(T2EVENT AND T2=1) THEN DATAOUT(20 DOWNTO 0)=D(20 DOWNTO 0); END IF; LOAD=D
25、ATAOUT(20); LDPC=DATAOUT(19) AND T4; LDAR=DATAOUT(18) AND T3; LDIR=DATAOUT(17) AND T3; LDRI=DATAOUT(16) AND T4; LDPSW=DATAOUT(15) AND T4; RS_B=DATAOUT(14); S2=DATAOUT(13); S1=DATAOUT(12); S0=DATAOUT(11); ALU_B=DATAOUT(10); SW_B=DATAOUT(9); LED_B=DATAOUT(8); RD_D=NOT(NOT DATAOUT(7) AND (T2 OR T3); CS
26、_D=NOT(NOT DATAOUT(6) AND T3); RAM_B=DATAOUT(5); CS_I=DATAOUT(4); ADDR_B=DATAOUT(3); P1=DATAOUT(2); P2=DATAOUT(1); P3=DATAOUT(0); END PROCESS;END A;微命令寄存器MCOMMAND電路圖如圖 9所示:圖 9 微地址寄存器aaVHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MMM IS PORT( SE:IN STD_LOGIC; T2:IN STD_LOGIC; D:IN STD_LOGIC
27、; CLR:IN STD_LOGIC; UA:OUT STD_LOGIC );END MMM;ARCHITECTURE A OF MMM ISBEGIN PROCESS(CLR,SE,T2) BEGIN IF(CLR=0) THEN UA=0; ELSIF(SE=0)THEN UA=1; ELSIF(T2EVENT AND T2=1) THEN UA=D; END IF; END PROCESS;END A;微程序寄存器內(nèi)部電路圖如圖 10所示:圖 10微地址寄存器aa合成圖如圖 11所示:圖 11 微地址轉(zhuǎn)換器F1VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC
28、_1164.ALL;ENTITY F1 IS PORT( UA5,UA4,UA3,UA2,UA1,UA0: IN STD_LOGIC; D:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END F1;ARCHITECTURE A OF F1 ISBEGIN D(5)=UA5; D(4)=UA4; D(3)=UA3; D(2)=UA2; D(1)=UA1; D(0)=UA0;END A;微地址轉(zhuǎn)換器F1電路圖如圖 12所示:圖 12 控制存儲器CONROMVHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD
29、_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY CONTROM ISPORT(ADDR: IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); O:OUT STD_LOGIC_VECTOR(20 DOWNTO 0) );END CONTROM;ARCHITECTURE A OF CONTROM ISSIGNAL DATAOUT: STD_LOGIC_VECTOR(26 DOWNTO 0);BEGIN PROCESS BEGIN CASE ADDR I
30、S END CASE; UA(5 DOWNTO 0)=DATAOUT(5 DOWNTO 0); O(20 DOWNTO 0)PC110不裝入,也不計數(shù)11PC+1VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY PC ISPORT(LOAD,LDPC,CLR:IN STD_LOGIC;D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0
31、);END PC;ARCHITECTURE A OF PC ISSIGNAL QOUT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(LDPC,CLR,LOAD) BEGINIF(CLR=0)THENQOUT=00000000;ELSIF(LDPCEVENT AND LDPC=1)THENIF(LOAD=0)THENQOUT=D;ELSEQOUT=QOUT+1;END IF;END IF;END PROCESS;O=QOUT;END A; 程序計數(shù)器PC電路圖如圖 15所示:圖 15l RAM芯片的設(shè)計RAM芯片功能表:CS_DRD_D功能1選擇0()0寫
32、0()1讀VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY RAM IS PORT(RD_D,CS_D:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END RAM;ARCHITECTURE A OF RAM ISTY
33、PE MEMORY IS ARRAY(0 TO 31) OF STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(CS_D) VARIABLE MEM:MEMORY; BEGIN IF(CS_DEVENT AND CS_D=0) THEN IF(RD_D=0) THEN MEM(CONV_INTEGER(ADDR(4 DOWNTO 0):=DIN; ELSE DOUT=MEM(CONV_INTEGER(ADDR(4 DOWNTO 0); END IF; END IF; END PROCESS;END A;lRAM芯片的設(shè)計電路圖如圖 16所示:圖 16l 1:
34、2分配器單元FEN2VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FEN2 ISPORT(LED_B:IN STD_LOGIC;DBUS:IN STD_LOGIC_VECTOR(7 DOWNTO 0);FENOUT,OUTBUS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END FEN2;ARCHITECTURE A OF FEN2 ISBEGIN PROCESS BEGIN IF(LED_B=0) THEN OUTBUS=DBUS; ELSE FENOUT=DBUS; END IF; END PROCE
35、SS;END A;l1:2分配器單元FEN2電路圖如圖 17所示:圖 17l 時序產(chǎn)生器COUNTERVHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY COUNTER IS PORT(CLK,CLR:IN STD_LOGIC;T2,T3,T4:OUT STD_LOGIC);END COUNTER;ARCHITECTURE A OF COUNTER ISSIGNAL X: STD_LOGIC_VECTOR(1 DOWN
36、TO 0);BEGIN PROCESS(CLK,CLR) BEGIN IF(CLR=0) THEN T2=0; T3=0; T4=0; X=00; ELSIF(CLKEVENT AND CLK=1)THEN X=X+1; T2=(NOT X(1)AND X(0); T3= X(1)AND (NOT X(0); T4=X(1)AND X(0); END IF; END PROCESS;END A;l時序產(chǎn)生器COUNTER電路圖如圖 18所示:圖 182.8 嵌入式CISC模型計算機的頂層電路圖3 匯編語言源程序MOV R1,11H ;寄存器R1用于存放RAM的某個連續(xù)區(qū)域的首地址MOV R2,
37、5H ;寄存器R2用于存放循環(huán)次數(shù)L0: IN1 R0 ;寄存器R0用于接收外部輸入的數(shù)據(jù)STOI R0,(R1);將R0中的數(shù)存放入R1中RAM的地址處INC R1 ;將地址加1,跳到下一個地址DEC R2 ;將循環(huán)次數(shù)減1JNZ L0 ;循環(huán)不結(jié)束再重新跳回接收外部數(shù)據(jù),循環(huán)結(jié)束則繼續(xù)下面操作MOV R0,0 ;寄存器R0用于存放結(jié)果MOV R1,11H ;寄存器R1用于存放數(shù)據(jù)已存入RAM的某個連續(xù)區(qū)域的首地址MOV R2,5H ;寄存器R2用于存放循環(huán)次數(shù)L1: LAD (R1),R3;寄存器R3用于存放剛才存入RAM的數(shù)據(jù)INC R1 ;將地址加1,跳到下一個地址AND R3,R3
38、;取出的數(shù)自身相與,改變符號標(biāo)志位SF,判斷其是否為負(fù)數(shù)JNS L2 ;若不為負(fù)則跳轉(zhuǎn),取出下一個數(shù)IMUL R3,R3 ;若為負(fù)則將該數(shù)求平方和ADD R3,R0 ;將平方和加入R0L2:DEC R2 ;將循環(huán)次數(shù)減1JNZ L1 ;循環(huán)次數(shù)沒有完成,則跳回去再取數(shù)STO R0,10H ;將R0存放的結(jié)果放回到RAM中10H的地址處END:OUT1 R0;輸出R0的結(jié)果內(nèi)容JMP END ;不斷循環(huán)4 機器語言源程序地址(十六進制)匯編語言源程序機器代碼00MOV R1,11H 01MOV R2,5H02L0: IN1 R003STOI R0,(R1)04INC R105DEC R206JN
39、Z L007MOV R0,008MOV R1,11H09MOV R2,5H0AL1: LAD (R1),R30BINC R10CAND R3,R30DJNS L20EIMUL R3,R30FADD R3,R010L2:DEC R211JNZ L112STO R0,10H13END:OUT1 R014JMP END5 機器語言源程序的功能仿真波形圖及結(jié)果分析從外部輸入5個數(shù)據(jù),分別為01(1),F(xiàn)F(-1),00(0),F(xiàn)F(-1),00(00),得出以下波形圖,結(jié)果分析如下: 當(dāng)前執(zhí)行的是指令MOV R2,5H,R2的值變?yōu)?5 當(dāng)前執(zhí)行的是指令DEC R2;R2的值即將從04變成03,而之前
40、R0已從外部接收FF,R1的地址也加1,從12變成13。 當(dāng)前執(zhí)行的是指令LAD (R1),R3;R1此時為14,則將14H的地址中的內(nèi)容傳給R3,R3從00變成FF。 當(dāng)前執(zhí)行的是指令A(yù)ND R3,R3;R3中的內(nèi)容與自身相與,內(nèi)容不變,所以R3還是FF。 當(dāng)前執(zhí)行指令I(lǐng)MUL R3,R3;當(dāng)前R3的內(nèi)容為FF,自身相乘變?yōu)?1,所以R3從FF變成01。 當(dāng)前執(zhí)行的是指令A(yù)DD R3,R0;R0之前的值是01,R3的值是01,兩者相加后存入R0,R0的值從01變成02。 R0將結(jié)果傳出到輸出總線,最終結(jié)果輸出為02。6 故障現(xiàn)象和故障分析在進行課程設(shè)計的時候,遇到了很多問題,出現(xiàn)了故障,以下是我在課程設(shè)計出現(xiàn)的故障現(xiàn)象以及故障分析及解決:(1) 在進行波形仿真圖分析的時候,我把INBUS即全部輸入FF的時候,沒有得出結(jié)果,并且OP一直在01到07之間不斷重復(fù),R1一直從11遞減,R0一直為00,R3一直為00,R2則出現(xiàn)05,F(xiàn)F,04,F(xiàn)F.,這時我意識到它正在進行死循環(huán)。我再一次進行了各個寄存器的值的分析,發(fā)現(xiàn)R2與R0中的值不是自己想要的結(jié)果,我知道了問題出在了寄存器的使用上,我再一次核查了自己的匯編程序,結(jié)果發(fā)現(xiàn),R2本身就是用來存循環(huán)次數(shù)的,在接收外部數(shù)據(jù)的時候應(yīng)該用R0接收,卻寫成R2。將錯誤改正后,波形圖不再進行死循環(huán),故障解決。(2) 將死循環(huán)的問題解決后
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場施工防生物安全事故制度
- 小學(xué)生心理健康教育的校本課程設(shè)計研究
- DB4404T 72-2024電梯維修保養(yǎng)服務(wù)安全規(guī)范
- 不服合作合同爭議仲裁起訴狀范本
- 個人股權(quán)轉(zhuǎn)讓合作合同模板
- 兩人合伙創(chuàng)業(yè)合同范本
- 個人股權(quán)轉(zhuǎn)讓合同簡單范文
- 二手房買賣合同簡易版
- 個人公寓租賃合同范本
- 產(chǎn)學(xué)研一體化碩士專班合作協(xié)議合同
- 行業(yè)會計比較(第三版)PPT完整全套教學(xué)課件
- 值機業(yè)務(wù)與行李運輸實務(wù)(第3版)高職PPT完整全套教學(xué)課件
- 高考英語語法填空專項訓(xùn)練(含解析)
- 42式太極劍劍譜及動作說明(吳阿敏)
- 部編版語文小學(xué)五年級下冊第一單元集體備課(教材解讀)
- GB/T 10095.1-2022圓柱齒輪ISO齒面公差分級制第1部分:齒面偏差的定義和允許值
- 仁愛英語九年級下冊單詞表(中英文)
- 危險化學(xué)品企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化課件
- 巨鹿二中骨干教師個人工作業(yè)績材料
- 《美的歷程》導(dǎo)讀課件
- 心電圖 (史上最完美)課件
評論
0/150
提交評論