SAP-1CPU及計(jì)算機(jī)的組成架構(gòu)介紹_第1頁(yè)
SAP-1CPU及計(jì)算機(jī)的組成架構(gòu)介紹_第2頁(yè)
SAP-1CPU及計(jì)算機(jī)的組成架構(gòu)介紹_第3頁(yè)
SAP-1CPU及計(jì)算機(jī)的組成架構(gòu)介紹_第4頁(yè)
SAP-1CPU及計(jì)算機(jī)的組成架構(gòu)介紹_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、SAP-1 Cpu 電路設(shè)計(jì)一.SAP-1 CPU及計(jì)算機(jī)的組成架構(gòu)簡(jiǎn)介二.SAP-1 CPU指令.尋址法.程序設(shè)計(jì)三.16*8的ROM設(shè)計(jì)與仿真 四 .SAP-1 CPU設(shè)計(jì)與仿真實(shí)驗(yàn)?zāi)康牡模簩?shí)驗(yàn)原理理小組成員員薛寶(20054440118)汪威(20054440119)高亮(20054440120)吳安樂(lè)(2005444021)陸仁聰(20054440122)謝素斌(20054440123)吳運(yùn)興(20054440124)江憲清(20054440126)一.SAP-1CPU及計(jì)算機(jī)機(jī)的組成成架構(gòu)簡(jiǎn)簡(jiǎn)介所有寄存存器是以以三態(tài)(threestate)輸出方式式,連接接至webus上。雖然然現(xiàn)在

2、不不是使用用傳統(tǒng)TTL電路組成成,而是是使用CPLD&FPGA類(lèi)型組件件來(lái)實(shí)現(xiàn)現(xiàn)它,這這也就意意味著圖圖1的一些功功能方塊塊或一些些控制線線需要作作部分調(diào)調(diào)整或修修改,但但無(wú)論如如何對(duì)于于每個(gè)方方塊所扮扮演的角角色,是是絕對(duì)有有必要了了解的!Programcounter48InputandMAR4416*8RAMInstructiontegisterController/sequencer41248888AccumulatorA8Adder/subtractorBregisterOutputregisterBinarydisplay88888WbusLACLKEASUEULBCLKLOCLKC

3、LRCLKL1E1CECLKLMEPCLRCPCLKCLKCLKCLRCLRCPEPLMCELIEILAEASUEULBLO圖1:SAP-1結(jié)構(gòu)說(shuō)明:1.程序計(jì)數(shù)數(shù)器它是一個(gè)個(gè)4Bits的計(jì)數(shù)器器,計(jì)數(shù)范圍圍由015。主要功功用是記記錄下每每個(gè)執(zhí)行行的指令令地址,并把這個(gè)個(gè)地址傳傳送至MAR寄存器存存放。2.輸入與MAR(Memory AccessRegister)這個(gè)方塊塊應(yīng)分成成兩個(gè)部部分,一個(gè)是接接受由“輸入”部分輸輸入到RAM內(nèi)存的外外部程序序和數(shù)據(jù)據(jù),另一部分分“MAR”是用來(lái)在在CPU執(zhí)行上述述所加載載的程序序時(shí),暫存下一一個(gè)要執(zhí)執(zhí)行的指指令地址址。3.168RA這個(gè)RAM和其它的

4、的部分構(gòu)構(gòu)成圖10-1的SAP-1計(jì)算機(jī),而且它的的內(nèi)存大大小共有有16地址8位。所以以這個(gè)RAM的地址總總線是4bit,地址編碼碼是由0000,0001,00101111,這個(gè)地址址內(nèi)容是是由上述述MAR傳送過(guò)來(lái)來(lái),然后通過(guò)過(guò)譯碼將將地址存存放的8位數(shù)據(jù)或或指令輸輸出至Wbus。4.指令寄存存器屬于CPU內(nèi)的控制制單元,主要是將將在RAM的8位數(shù)據(jù),通過(guò)Wbus后讀入指指令寄存存器,然后再把把數(shù)據(jù)一一分為二二,較高的4位屬于指指令部分分,送至下一一級(jí)的“控制器器”,而較低的的4位屬于數(shù)數(shù)據(jù)部分分,將會(huì)被送送至Wbus。5.控制器/序列發(fā)生生器這個(gè)項(xiàng)目目也是屬屬于CPU內(nèi)控制單單元的一一部分,

5、這個(gè)控控制器在在程序執(zhí)執(zhí)行時(shí),負(fù)責(zé)送送出整個(gè)個(gè)計(jì)算機(jī)機(jī)的時(shí)序序信號(hào)CLK,而且會(huì)會(huì)把指令令寄存器器送來(lái)的的位指指令,解解譯成12位的控制制信號(hào),由這組組控制信信號(hào)指揮揮其它的的功能方方塊,完完成該指指令的運(yùn)運(yùn)作。由由于使用用VHDL語(yǔ)言設(shè)計(jì)計(jì)整個(gè)SAR-1,依照語(yǔ)語(yǔ)法的使使用,這這部分會(huì)會(huì)被省略略,而且且不會(huì)影影響整個(gè)個(gè)CPU運(yùn)作。6.累加器累加器是是個(gè)位位的緩沖沖寄存器器,它是是存放目目前計(jì)算算機(jī)執(zhí)行行的實(shí)時(shí)時(shí)數(shù)據(jù)地地方。不不同的指指令也將將使它產(chǎn)產(chǎn)生不同同的工作作方式。7.加減法器器這個(gè)加減減法器負(fù)負(fù)責(zé)執(zhí)行行數(shù)學(xué)的的加法和和減法運(yùn)運(yùn)算,而而且運(yùn)算算的結(jié)果果會(huì)放回回“累加加器”暫暫存。8.B

6、寄存器這個(gè)寄存存器用來(lái)來(lái)配合“累加器器”、“加減法法器”,執(zhí)行“加法” 或“減法”的工作作。9.輸出寄存存器這個(gè)輸出出寄存器器的用途途是,SAP-1CPU執(zhí)行到“輸出結(jié)結(jié)果”的的指令時(shí)時(shí),便將將“累加加器”的的結(jié)果傳傳至“輸輸出寄存存器”,所以它它是負(fù)責(zé)責(zé)存放輸輸出結(jié)果果,當(dāng)然然這個(gè)存存放的結(jié)結(jié)果是二二進(jìn)制形形式的。10.二進(jìn)制顯顯示在圖1的SAP-1計(jì)算機(jī)里里,以個(gè)LED作程序執(zhí)執(zhí)行結(jié)果果的顯示示,這個(gè)個(gè)算是這這臺(tái)計(jì)算算機(jī)的輸輸出部分分,而不不是SAP-1CPU的功能方方塊。最后就VHDL語(yǔ)言設(shè)計(jì)計(jì)的觀點(diǎn)點(diǎn)來(lái)對(duì)圖圖1作設(shè)計(jì)分分類(lèi):SAP-1CPU部分:程序計(jì)數(shù)數(shù)器、MAR、指令寄寄存器、控制

7、器器序列列發(fā)生器器、累加加器、加加減法器器、B寄存器、輸出寄寄存器。168MAR部分:考慮直接接改成ROM的形式,這是因因?yàn)槌绦蛐驁?zhí)行時(shí)時(shí),它不不接受外外界輸入入。二.SAP-1CPU指令.尋址法.程序設(shè)計(jì)計(jì)SAP-1的CPU指令,共共有5個(gè)且可分分成兩種種類(lèi)型,如表指令運(yùn)算碼范例說(shuō)明LDA0000LDA 9H將9H內(nèi)存的內(nèi)容值加載累加器ADD0001ADD BH將BH的內(nèi)存內(nèi)容值和累加器內(nèi)容值相加,再存放運(yùn)算結(jié)果回累加器SUB0010SUB EH將EH的內(nèi)存內(nèi)容值和累加器內(nèi)容值相減,再存放運(yùn)算結(jié)果回累加器直接尋址址法(Direct Addressing)指令運(yùn)算碼范例說(shuō)明OUT1110OUT

8、將累加器內(nèi)容輸出至“輸出寄存器”HLT1111HLT結(jié)果CPU執(zhí)行零位尋址址法(ZeroAddressing)范例:試使用SAP-1指令,執(zhí)執(zhí)行下列列運(yùn)算結(jié)結(jié)果。10+20+30-15=4B(十六進(jìn)進(jìn)制)解答:首先將運(yùn)運(yùn)算數(shù)據(jù)據(jù)10,20,30,15依序放在在9H-CH地址里第一個(gè)指指令寫(xiě)在在0H地址,功功能是先先將10加載累加加器,所所以指令令寫(xiě)成:LDA0H 這是因?yàn)闉?H存放著數(shù)數(shù)值10的內(nèi)容第二個(gè)指指令寫(xiě)在在1H地址,功功能是將將20加載B寄存器,然后與與累加器器里的10作相加后后,再將將結(jié)果30存回累加加器,所所以指令令寫(xiě)成(地址AH內(nèi)存數(shù)值值20):ADDAH第三個(gè)指指令寫(xiě)成成在2

9、H地址,功功能是將將30加載B寄存器,然后與與累加器器里的30作相加后后,再將將結(jié)果60存回累加加器,所所以指令令寫(xiě)成(地址BH內(nèi)存放數(shù)數(shù)值30數(shù)據(jù)):ADDBH第四個(gè)指指令寫(xiě)在在3H地址,功功能是將將15加載B寄存器,然后與與累加器器里的60作相減后后,再將將結(jié)果4B存回累加加器,所所以指令令寫(xiě)成(地址CH內(nèi)存放數(shù)數(shù)值15數(shù)據(jù)):SUBCN第五個(gè)指指令寫(xiě)在在4H地址,是是將累加加器數(shù)值值結(jié)果4B作輸出顯顯示,所所以指令令寫(xiě)成:OUT第六個(gè)指指令寫(xiě)在在5H地址,功功能在停停止CPU運(yùn)算,所所以指令令寫(xiě)成:HLT最后,整個(gè)程序序和數(shù)據(jù)據(jù)寫(xiě)在RAM里,機(jī)械械碼表示示如下:地址匯編語(yǔ)言機(jī)械碼0HLD

10、A 9H0000 10011HADD AH0001 10102HADD BH0001 10113HSUB CH0010 11004HOUT1110 xxxx5HHLT1111 xxxx6HXXXxxxx xxxx地址匯編語(yǔ)言機(jī)械碼7HXXXxxxx xxxx8HXXXxxxx xxxx9H10H0001 0000AH20H0010 0000BH30H0011 0000CH15H0001 0101三.16*8的ROM設(shè)計(jì)與仿仿真范例:配合SAP-1指令,設(shè)計(jì)16(Word)x8(Bit)的ROM,使其能夠夠執(zhí)行如如下預(yù)算算:10+14+18-20=1C(Hex)地址匯編語(yǔ)言機(jī)械碼0HLDA 9H

11、0000 10011HADD AH0001 10102HADD BH0001 10113HSUB CH0010 11004HOUT1110 00005HHLT1111 00006HXXX0000 0000 7HXXX0000 0000地址匯編語(yǔ)言機(jī)械碼8HXXX0000 00009H10H0001 0000AH14H0010 0100BH18H0001 1000CH20H0010 0000對(duì)于原本本Dontcare部分,直接寫(xiě)入入0,這是因?yàn)闉锳ltera軟件會(huì)將將Dontcare視為0處理.程序:ROM16_8.VHD LIBRARY IEEE;USE IEEE.STD_LOGIC_1164

12、.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM16_8 is PORT( DATAOUT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-Data Output ADDR :IN STD_LOGIC_VECTOR(3 DOWNTO 0);-ADDRESS CE :IN STD_LOGIC -Chip Enable ); END ROM16_8; ARCHITECTURE a OF ROM 16_8 IS BEGIN DATA=“00001001”WHEN ADDR=“

13、0000”AND CE=0 -LDA9H “00011010”WHEN ADDR=“0001”AND CE=0ELSE -ADDAH “00011011”WHEN ADDR=“0010”AND CE=0ELSE -ADDBH “00101100”WHEN ADDR=“0011”AND CE=0ELSE -SUBCH “11100000”WHEN ADDR=“0100”AND CE=0ELSE -OUT “11110000”WHEN ADDR=“0101”AND CE=0ELSE -HLT “00010000”WHEN ADDR=“1001”AND CE=0ELSE “00010100”WHEN

14、 ADDR=“1010”AND CE=0ELSE “00011000”WHEN ADDR=“1011”AND CE=0ELSE “00100000”WHEN ADDR=“1100”AND CE=0ELSE “00000000”;END a;程序說(shuō)明明:實(shí)際上仍仍是使用用when-else方式,以類(lèi)似查查表方式式作ROM的設(shè)計(jì).這個(gè)ROM有個(gè)CE使能接腳腳,它必須為為“0”時(shí),才接受讀讀取數(shù)據(jù)據(jù)的命令令. 仿真結(jié)果果:略四.SAP-1CPU設(shè)計(jì)與仿仿真SAP-CPU在前面所所提的指指令,它們執(zhí)行行的指令令周期總總長(zhǎng)度基基本上都都是6個(gè)脈沖長(zhǎng)長(zhǎng)度,這可以用用下圖說(shuō)說(shuō)明S0S1S2S3S4S5(Fe

15、tch)磅(Execute)Machine CycleInstructionCycle圖2:SAP-1指令周期期(InstructionCycle)時(shí)序狀態(tài)態(tài)S0-S2范圍為指指令周期期,而時(shí)序狀狀態(tài)S3-S5為指令執(zhí)執(zhí)行周期期.下面是每每個(gè)時(shí)序序狀態(tài)下下,SAP-1CPU的工作任任務(wù):1.指令捉取取周期(FetchCycle)(1)狀態(tài)S0:(尋址狀態(tài)態(tài), AddressState)這個(gè)狀態(tài)態(tài)下,“程序計(jì)數(shù)數(shù)器”負(fù)負(fù)責(zé)將所所要執(zhí)行行的指令令地址值值傳遞至至MAR存放.(2)狀態(tài)S2:(增加狀態(tài)態(tài),Increment State)這個(gè)狀態(tài)態(tài)下,“程序計(jì)數(shù)數(shù)器”的的值加1,代表計(jì)數(shù)數(shù)器將指指針指

16、向向下一個(gè)個(gè)要執(zhí)行行的指令令地址值值.例如:原先在狀狀態(tài)S0時(shí),“程序計(jì)數(shù)數(shù)器”的的值是01H,它會(huì)傳遞遞01H給“MAR”,然后在這這個(gè)狀態(tài)態(tài)S1時(shí),將內(nèi)容值值加1后變成02H,這樣以便便記錄下下次要執(zhí)執(zhí)行的指指令地址址值.(3)狀態(tài)S2:(記憶狀態(tài)態(tài),Memory State)這個(gè)狀態(tài)態(tài)下,將把記錄錄在“MAR”里的指令令地址值值,送入“RAM”里后,由“RAM”讀出該地地址的指指令碼,再將該指指令放入入“指令寄存存器”.有一點(diǎn)必必須強(qiáng)調(diào)調(diào)的是,不論是執(zhí)執(zhí)行哪個(gè)個(gè)指令,它們的的狀態(tài)S0-S2的動(dòng)作方方式都是是相同的的,不過(guò)狀態(tài)態(tài)S3-S5的動(dòng)作方方式就會(huì)會(huì)因執(zhí)行行對(duì)那個(gè)個(gè)指令而而有所不不同

17、.2.指令執(zhí)行行周期(1)LDA指令狀態(tài)S3:這個(gè)狀態(tài)態(tài)下,上述的09H數(shù)據(jù)傳入入MAR,以便下個(gè)個(gè)狀態(tài)能能取出該該數(shù)值所所代表的的地址里里的值,比如20H.狀態(tài)S4:這個(gè)狀態(tài)態(tài)是將存存放在“MAR”里的09數(shù)據(jù),通過(guò)RAM讀出09H地址的數(shù)數(shù)據(jù),比如是數(shù)數(shù)值20H數(shù)值至“累加器”狀態(tài)S5:這個(gè)狀態(tài)態(tài)下的LDA指令并沒(méi)沒(méi)有作用用(2)ADD指令狀態(tài)S3:這個(gè)狀態(tài)態(tài)下,上述的AH數(shù)據(jù)將傳傳入MAR,以便下個(gè)個(gè)狀態(tài)取取出該數(shù)數(shù)值所代代表地址址里的內(nèi)內(nèi)容值,比如是數(shù)數(shù)值14H狀態(tài)S4:這個(gè)狀態(tài)態(tài)是將存存放“MAR”里的AH數(shù)據(jù),通過(guò)RAM讀出AH地址內(nèi)的的數(shù)據(jù)狀態(tài)S5:這個(gè)狀態(tài)態(tài)是將存存在“累加器”

18、和“B寄存器”的數(shù)值內(nèi)內(nèi)容存放放入“加減法器器”相加加后,再將相加加結(jié)果放放回“累加器”(3)SUB指令狀態(tài)S3:這個(gè)狀態(tài)態(tài)下,上述的BH數(shù)據(jù)傳入入MAR,以便下個(gè)個(gè)狀態(tài)能能取出該該數(shù)值所所代表地地址里的的值狀態(tài)S4:這個(gè)狀態(tài)態(tài)是將存存放在“MAR”的BH數(shù)據(jù),通過(guò)RAM讀出BH地址內(nèi)的的數(shù)據(jù)狀態(tài)S5:這個(gè)狀態(tài)態(tài)是將存存放在“累加器”和“B寄存器”的數(shù)值值放入“加減法器器”相減減后,再將相減減后結(jié)果果放回“累加器”O(jiān)UT指令狀態(tài)S3:這個(gè)狀態(tài)態(tài)下,累加器的的內(nèi)容將將經(jīng)Wbus傳至“輸出寄存存器”,然后顯示示在二進(jìn)進(jìn)制顯示示裝置.狀態(tài)S4:這個(gè)狀態(tài)態(tài)OUT指令沒(méi)有有作用.狀態(tài)S5:這個(gè)狀態(tài)態(tài)OU

19、T指令沒(méi)有有作用(5)HLT指令狀態(tài)S3:這個(gè)狀態(tài)態(tài)下“控制器/序列發(fā)生生器”將將停止送送出脈沖沖信號(hào)CLK,這時(shí)SAP-1CPU會(huì)停止執(zhí)執(zhí)行工作作.狀態(tài)S4:這個(gè)狀態(tài)態(tài)HLT指令沒(méi)有有作用狀態(tài)S5:這個(gè)狀態(tài)態(tài)HLT指令沒(méi)有有作用SAP-1CPU設(shè)計(jì)1.使用Process與Case When命令架構(gòu)構(gòu)出6個(gè)脈沖的的指令周周期ARCHITECTUREaOFSAP1ISTYPESTATEIS(SO,S1,S2,S3,S4,S5);-state typedeclareSIGNALPState:STATE;-presentstateSIGNALNState:STATE;-nextstateBEGIN.

20、*ChangeStateMode:PROCESS(CR,RST)-states0s5BEGINIFRST=1THEN-resetcpuPC=“0000”;-pogram counter=0HACC=“00000000”;-accumulator=0HRUN=1;-CPU runprogram enablePState-(addressstate&fetchcycle-1)NState-(incrementstate&fetchcycle-2)NState-(memorystate&fetchcycle-3)NState-STATES3(Executioncycle-1)NState-STATE

21、S4(Executioncycle-2)NState-STATES5(Executioncycle-3)NState=S0;-cpu nextstateENDCASE;PState=NState;-切換狀態(tài)態(tài)ENDIF;ENDIF;ENDPROCESSChangeStateMode;ENDa;2.編寫(xiě)“指指令捕捉捉周期(fetchcycle)即狀態(tài)S0S2的命令Changestatemode:process(cp,rst)-states0s5variableflag,f1:boolean;beginifrst=1then.Pstatenstate=s1;marnstate=s2;ifflag=turethenpcNastate =s3;Flag :ture;IrEndcase;3.編寫(xiě)”指指令執(zhí)行行周期(fetchcycle)”,即狀態(tài)S3S5的命令首先在Case When語(yǔ)句的狀狀態(tài)S3處,加入入下面粗粗體字命命令,將將“指令令寄存器器”(IR)截取高4位指令至至TMP里 Elsifcpeventandcp=0 thenwhen s2=When s3=nstate=s4;temp其余指令令執(zhí)行周周期的命命令,不不放入CASE WHEN語(yǔ)句里,而改以以IF

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論