微處理器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
微處理器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
微處理器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
微處理器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
微處理器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

FPGA實(shí)驗(yàn)報(bào)告簡單微處理器的設(shè)計(jì)與實(shí)現(xiàn)

[實(shí)驗(yàn)?zāi)康腯通過實(shí)驗(yàn),將“數(shù)字電路與邏輯設(shè)計(jì)〞的根本理論和具體實(shí)踐相結(jié)合,設(shè)計(jì)包括CPU、除法器在內(nèi)的一系列簡單的數(shù)字系統(tǒng),在調(diào)試程序的同時(shí),完成軟件仿真和硬件下載等工作。同時(shí),熟悉VHDL語言和MAXPLUSII軟件的應(yīng)用。[實(shí)驗(yàn)要求]運(yùn)用在“數(shù)字電路與邏輯設(shè)計(jì)〞課程中學(xué)過的根本理論知識(shí),設(shè)計(jì)并用可編程邏輯器件實(shí)現(xiàn)一個(gè)簡單的四位操作數(shù)的微處理器,完成微處理器硬件系統(tǒng)設(shè)計(jì)和指令系統(tǒng)設(shè)計(jì)兩方面的任務(wù),使微處理器能夠?qū)崿F(xiàn)兩個(gè)不帶符號(hào)位的四位二進(jìn)制數(shù)原碼相乘等功能。簡單微處理器介紹1.微處理器硬件系統(tǒng)及原理微處理器硬件系統(tǒng)包括運(yùn)算器、控制器、存儲(chǔ)器以及其它必要的邏輯部件。下列圖為微處理器的原理框圖,說明如下:程序計(jì)數(shù)器PC:存放將要執(zhí)行指令的地址。指令存儲(chǔ)器IRAM:存放用戶指令,容量為16×8的RAM〔或存放器堆〕。開關(guān)S的狀態(tài)用于控制指令的寫入或讀出操作。指令存放器IR:存放被執(zhí)行的指令的操作碼,直接供運(yùn)算控制器??刂破鰿ON:產(chǎn)生一系列時(shí)序邏輯信號(hào),控制微處理器各個(gè)部件協(xié)調(diào)一致地完成每條指令相應(yīng)的操作,實(shí)現(xiàn)兩個(gè)四位數(shù)操作的運(yùn)算。通用存放器堆RAM:它由四個(gè)四位的通用存放器R0,R1,R2,R3組成,用來存放運(yùn)算過程中讀出和寫入的數(shù)據(jù)。緩沖存放器RS和RD:用于存放處理器的兩個(gè)操作數(shù)〔S〕和〔D〕。運(yùn)算器ALU和進(jìn)位存放器C:運(yùn)算器是四位算術(shù)邏輯運(yùn)算單元,它對(duì)兩個(gè)四位二進(jìn)制數(shù)〔S〕和〔D〕進(jìn)行處理,進(jìn)位輸入端C0所加的是控制器送來的CI信號(hào),運(yùn)算結(jié)果的低四位直接輸出,而運(yùn)算結(jié)果的進(jìn)位C4輸出到進(jìn)位存放器中。運(yùn)算結(jié)果顯示送七段數(shù)碼管顯示,用十六進(jìn)制顯示。2.處理器指令系統(tǒng)及功能處理器規(guī)定根本指令字長為8位,指令的每一位從高到低用D7~D0表示,指令系統(tǒng)共包括三類指令:存放器指令、轉(zhuǎn)移指令和停機(jī)指令,指令的編碼方式如下列圖:指令格式指令位76543210存放器指令OPCCSD轉(zhuǎn)移指令11CCADDR停機(jī)指令1100LHD2.1存放器指令這類指令能夠執(zhí)行兩個(gè)存放器之間的運(yùn)算操作,包含OP、CC、S和D四個(gè)字段。其中S和D字段指定了兩個(gè)存放器。記號(hào)〔S〕表示由S字段所指定的存放器的內(nèi)容;記號(hào)〔D〕表示由D字段所指的D存放器的內(nèi)容。OP字段規(guī)定了在〔S〕和〔D〕之間執(zhí)行的操作種類,OP字段的編碼狀態(tài)詳細(xì)功能對(duì)應(yīng)關(guān)系如下表所示:存放器指令操作碼和OP與功能表操作碼OP功能00D←〔S〕+CI01D←〔S〕+〔D〕+CI10D←〔not(S)〕+〔D〕+CI表中〔S〕和〔D〕分別表示源存放器S和目的存放器D的內(nèi)容。CC字段決定了控制器送給ALU的進(jìn)位信號(hào)CI的狀況。CC字段編碼的功能對(duì)照關(guān)系如下表所示。進(jìn)位標(biāo)志字段CC功能表CCCI00001110C11not(C)每當(dāng)執(zhí)行存放器指令時(shí),都將影響C存放器的內(nèi)容,而其它兩類指令不影響C存放器的內(nèi)容。2.2轉(zhuǎn)移指令指令碼高兩位D7D6為11時(shí)表示轉(zhuǎn)移指令。當(dāng)CI為1時(shí),轉(zhuǎn)移到指令的ADDR字段指定的指令地址繼續(xù)執(zhí)行。根據(jù)CC字段的內(nèi)容實(shí)際上可以構(gòu)成三種轉(zhuǎn)移指令:無條件轉(zhuǎn)移,有進(jìn)位轉(zhuǎn)移和無進(jìn)位轉(zhuǎn)移,如下表所示:轉(zhuǎn)移指令功能表轉(zhuǎn)移類型指令碼C功能說明無條件轉(zhuǎn)移1101ADDRXPC←(ADDR)無條件跳轉(zhuǎn)到〔ADDR〕有進(jìn)位轉(zhuǎn)移1110ADDR0PC←(PC)+1如果C=1就跳轉(zhuǎn)到〔ADDR〕否那么繼續(xù)執(zhí)行1PC←(ADDR)無進(jìn)位轉(zhuǎn)移1111ADDR0PC←(ADDR)如果C=0就跳轉(zhuǎn)到〔ADDR〕否那么繼續(xù)執(zhí)行1PC←PC+12.3停機(jī)及輸入、輸出〔I/O〕指令指令碼的高4位D7D6D5D4為1100時(shí)表示停機(jī)及輸入、輸出指令。其中L、H字段決定該指令的具體功能,見下表:L、H字段功能表LH功能10把輸入開關(guān)的數(shù)據(jù)打入到由D字段所指定的存放器中01在執(zhí)行完該條指令后停機(jī)。停機(jī)時(shí)顯示出由D字段所指定的存放器的內(nèi)容11停機(jī),同時(shí)顯示出D字段所指定的存放器的舊內(nèi)容,并將輸入開關(guān)的新數(shù)據(jù)送入D存放器。示范程序〔乘法器指令〕下表是兩個(gè)不帶符號(hào)為的四位二進(jìn)制數(shù)相乘的程序,程序?yàn)?位。該程序保存于指令存儲(chǔ)器中。PC顯示程序地址指令碼操作說明0000011001101R1←(SW),停機(jī)R1←X1000110010000R0←(R0)-(R0)R0←02001010000100R0←(R0)-(R1)-1R0←-(X+1)3001111001001R1←(SW)R1←Y4010010011010R2←(R2)-(R2)R2←05010110011111R3←(R3)-(R3)R3←06011000010000R0←(RO)+1R0+17011111101011如果C=1,跳轉(zhuǎn)至1011測試R0是否為08100001000110R2←(R1)+(R2)Y+局部積9100100101111R3←(R3)+C記高位A101011010110無條件跳轉(zhuǎn)至0110轉(zhuǎn)回循環(huán)B101111000111顯示R3,停機(jī)顯示高四位C110011000110顯示R2,停機(jī)顯示低四位D110111010000無條件跳轉(zhuǎn)至0000重新運(yùn)行系統(tǒng)輸入與輸出的要求①.“復(fù)位〞開關(guān)——用于置初態(tài)和去除PC。②.“啟動(dòng)〞開關(guān)——用于啟動(dòng),使PC指示的程序開始執(zhí)行。③.“單步/連續(xù)〞開關(guān)——單步工作用于調(diào)試,以便檢查處理器運(yùn)行情況。④.“程序、數(shù)據(jù)輸入〞開關(guān)——12個(gè)開關(guān),分別用于輸入數(shù)據(jù)和程序。⑤.“單脈沖〞按鈕——單步工作時(shí),產(chǎn)生時(shí)鐘脈沖。⑥.“數(shù)據(jù)顯示〞——七段顯示器,顯示指令執(zhí)行的結(jié)果。⑦.“PC〞顯示——七段顯示器,顯示PC的內(nèi)容。⑧.“指令碼顯示〞——八個(gè)發(fā)光管,顯示指令碼。[設(shè)計(jì)思路]〔1〕狀態(tài)設(shè)置及狀態(tài)轉(zhuǎn)移為了實(shí)現(xiàn)處理器的功能,教材建議將其運(yùn)行過程根據(jù)4拍時(shí)鐘劃分為4個(gè)狀態(tài),我在程序設(shè)計(jì)的過程中,將其細(xì)化為0~6一共7個(gè)狀態(tài),具體對(duì)應(yīng)狀態(tài)如下:“0分析指令〞“1把S送至RS〞“2把D送至RD/判斷是否停機(jī)〞“3根據(jù)指令類別進(jìn)行相應(yīng)操作〞“4運(yùn)算〞“5取指令〞“6停機(jī)〞(說明:狀態(tài)1、2分別對(duì)應(yīng)教材上的狀態(tài)1、2,狀態(tài)3、4、6對(duì)應(yīng)教材上的狀態(tài)3,狀態(tài)5和狀態(tài)0對(duì)應(yīng)教材上的狀態(tài)0)其狀態(tài)轉(zhuǎn)移圖如下:0123546具體的狀態(tài)轉(zhuǎn)移可以根據(jù)指令類別分為以下三種情況:存放器指令狀態(tài)0——1——2——3——4——5完成存放器指令轉(zhuǎn)移指令狀態(tài)0——1——2——3——5完成轉(zhuǎn)移指令停機(jī)——I/O指令狀態(tài)0——1——2——3——4——6完成停機(jī)指令〔2〕和上升沿同步的啟動(dòng)信號(hào)的實(shí)現(xiàn)由于按鍵〔電平或脈沖〕的寬度較寬,需要預(yù)處理電路整形和同步。實(shí)際上就是利用傳輸延時(shí),這樣可以得到符合要求的啟動(dòng)信號(hào)?!?〕主要模塊說明根據(jù)程序的要求,我們將其分成以下幾個(gè)模塊,下面簡要做一下介紹:(一些具體的東西指示書已經(jīng)介紹得相當(dāng)詳盡,而且我對(duì)源程序的注釋也十分具體,因此在這里不作過多說明)PC程序記數(shù)器:〔存放將要執(zhí)行指令的地址〕輸入端口:CLK——系統(tǒng)時(shí)鐘CLR——置0電平INTSTRUNCTION——指令類型ADDR——跳轉(zhuǎn)到的地址輸出端口:PC——程序地址的四位二進(jìn)制代碼PC_DISPLAY——程序地址的字碼管輸出0001加法器ADDRPC停機(jī)CLRCLK多路選擇器譯碼器INSTRUNCTIONPC_DISPLAYIRAM指令存儲(chǔ)器:〔存放用戶讓CPU執(zhí)行的一系列指令〕輸入端口:WR——讀/寫控制CLK——系統(tǒng)時(shí)鐘CODE_IN——指令輸入IRAM地址輸出端口:OUTPUTIRAM地址〔PC或number〕IRAMWRINPUT/OUTPUTOUTPUTCLKCODE_INIR指令存放器:〔存放CPU當(dāng)前執(zhí)行的指令〕輸入端口:CLK——系統(tǒng)時(shí)鐘WR——讀/寫控制RESET——清0端IRAM——指令存儲(chǔ)器PC——指令地址輸出端口:IR——指令存放CLKWRRESETNOTANDIRAM〔CONV_INTEGER(PC)〕D觸發(fā)器IR

RAM通用存放器堆:〔由四個(gè)四位的通用存放器R0、R1、R2、R3組成,用于存放運(yùn)算過程中需要的一些數(shù)據(jù)〕輸入端口:RAM輸出端口:RAM讀寫電路RAM〔4*4〕通用存放器堆RSRDALUresultCON:〔根據(jù)指令結(jié)構(gòu)判斷出其所屬類別,利用不同的代碼表示〕輸入端口:IRCLK——系統(tǒng)時(shí)鐘輸出端口:instruction——利用不同的代碼代表不同的指令類型IRCONinstructionCLKALU:〔對(duì)RD、RS提供的數(shù)據(jù)進(jìn)行計(jì)算,將結(jié)果送入RAM中保存〕輸入端口:RS、RD——暫存器CLK——系統(tǒng)時(shí)鐘instruction——指令類型輸出端口:RAM——通用存放器堆,存放運(yùn)算結(jié)果CLKinstructionALURAMRSRD[波形圖]指令輸入:通過上圖可以看出,指令通過code_in輸入〔波形圖中已經(jīng)用16進(jìn)制表示〕,此時(shí)WR置為0;當(dāng)指令輸入完畢后,WR=1,等待啟動(dòng)信號(hào)開始程序的執(zhí)行。這時(shí)我們可以看到,在IRAM中的數(shù)據(jù)為CD9084C99A9F10EB462FD6C7C6D00000,也就是所有指令碼已經(jīng)按輸入的次序存儲(chǔ)在IRAM中了,這樣,啟動(dòng)脈沖到來之后程序就開始執(zhí)行。下面的波形圖演示計(jì)算2*E的過程通過波形圖可以看到程序執(zhí)行的流程,是嚴(yán)格按照指令碼的定義運(yùn)行的,同時(shí)通過RD_output值的變化我們也可以看出結(jié)果為2*E=1C,運(yùn)行結(jié)果是正確的。[程序清單]--------------------------------------------------------實(shí)驗(yàn)五簡單微處理器的設(shè)計(jì)與實(shí)現(xiàn)----無03班001174陳陽--------------------------------------------------------libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;--定義CPU的輸入、輸出各端口entitycpu2tryisport(--輸入端口--clock_set,clocks,clockc,reset,start,WR :instd_logic; code_in:instd_logic_vector(7downto0); sw:instd_logic_vector(3downto0);--clock_set:單步/連續(xù)選擇0--連續(xù)1--單步;--時(shí)鐘Clocks:連續(xù)時(shí)鐘;Clockc:單步時(shí)鐘;--reset:重置;--start:啟動(dòng);--WR:讀寫控制;--code_in處理器指令--sw輸入開關(guān)輸入的數(shù)據(jù)--輸出端口--pc_display,d_display :outstd_logic_vector(6downto0);code_in_display :outstd_logic_vector(7downto0)--pc_display:PC顯示--d_display:d顯示,顯示指令執(zhí)行的結(jié)果;--code_in_display:指令碼顯示);endcpu2try;architecturebehaveOFcpu2tryIStypeIRAMtypeISarray(0to15)ofstd_logic_vector(7downto0);--指令碼存儲(chǔ)類型說明typeRAMtypeISarray(0to3)ofstd_logic_vector(3downto0);--存放器存儲(chǔ)類型說明signalIRAM:IRAMtype;--指令碼存儲(chǔ)器〔16*8〕signalRAM:RAMtype;--通用存放器堆〔4*4〕signalIR :std_logic_vector(7downto0);--指令存放器signalC,CI,L,H:std_logic; --C:進(jìn)位;CI:進(jìn)位信號(hào);L、H:功能字段;signaltemp1,temp2,start_strobe :std_logic;--START_strobe:處理器得到的開始信號(hào)signalS,D,instruction :std_logic_vector(1downto0);--S:源存放器D:目的存放器instruction:指令類型〔01為存放器指令;10為轉(zhuǎn)移指令;11為停機(jī)指令〕signalPC,ADDR :std_logic_vector(3downto0); --PC:程序計(jì)數(shù)器;ADDR:指定的指令地址;signalnumber:std_logic_vector(3downto0);--number:輸入地址時(shí)控制存儲(chǔ)位置;signalRS,RD,RD_output:std_logic_vector(3downto0);--RS、RD:緩沖存放器;RD_output:輸出時(shí)顯示在數(shù)碼管的RD; signalresult :std_logic_vector(4downto0);--運(yùn)算器計(jì)算結(jié)果signalcondition :integerrange0to6;--condition:狀態(tài)說明〔0~6一共7個(gè)狀態(tài)〕signalCLK:std_logic;--CLK:處理器所用的時(shí)鐘;begin--choose"STEPBYSTEPMODE"or"CONTINOUSMODE"----clock_set為0時(shí)為連續(xù)時(shí)鐘;clock_set為1時(shí)為單步時(shí)鐘--choose:process(clock_set,clocks,clockc)beginifclock_set='0'thenCLK<=clocks;elseCLK<=clockc;endif;endprocesschoose;--providethesignal"start"----和上升沿同步的啟動(dòng)信號(hào)startsignal:process(CLK,START)beginifCLK'EVENTANDCLK='1'thentemp1<=start;temp2<=temp1;start_strobe<=temp1AND(NOTtemp2); endif;endprocessstartsignal;--savetheconditionment--save:process(Clockc)beginifClockc'EVENTANDClockc='1'then --單步時(shí)鐘觸發(fā)ifWR='0'then --指令碼寫入指令存儲(chǔ)器當(dāng)中IRAM(conv_integer(number))<=code_in;number<=number+"0001";endif;endif;endprocesssave;--display--display:process(PC,CLK,RD_output)beginifCLK'EVENTANDCLK='1'then casePCIS --顯示PCwhen"0000"=>pc_display<="1111110";--輸出0when"0001"=>pc_display<="0110000";--輸出1when"0010"=>pc_display<="1101101";--輸出2when"0011"=>pc_display<="1111001";--輸出3when"0100"=>pc_display<="0110011";--輸出4when"0101"=>pc_display<="1011011";--輸出5when"0110"=>pc_display<="1011111";--輸出6when"0111"=>pc_display<="1110000";--輸出7when"1000"=>pc_display<="1111111";--輸出8when"1001"=>pc_display<="1111011";--輸出9when"1010"=>pc_display<="1110111";--輸出Awhen"1011"=>pc_display<="0011111";--輸出Bwhen"1100"=>pc_display<="1001110";--輸出Cwhen"1101"=>pc_display<="0111101";--輸出Dwhen"1110"=>pc_display<="1001111";--輸出Ewhen"1111"=>pc_display<="1000111";--輸出FwhenOTHERS=>NULL;endcase;caseRD_outputiswhen"0000"=>d_display<="1111110";--輸出0when"0001"=>d_display<="0110000";--輸出1when"0010"=>d_display<="1101101";--輸出2when"0011"=>d_display<="1111001";--輸出3when"0100"=>d_display<="0110011";--輸出4when"0101"=>d_display<="1011011";--輸出5when"0110"=>d_display<="1011111";--輸出6when"0111"=>d_display<="1110000";--輸出7when"1000"=>d_display<="1111111";--輸出8when"1001"=>d_display<="1111011";--輸出9when"1010"=>d_display<="1110111";--輸出Awhen"1011"=>d_display<="0011111";--輸出Bwhen"1100"=>d_display<="1001110";--輸出Cwhen"1101"=>d_display<="0111101";--輸出Dwhen"1110"=>d_display<="1001111";--輸出Ewhen"1111"=>d_display<="1000111";--輸出FwhenOTHERS=>NULL;endcase;endif;endprocessdisplay;--changethecondition--change:process(CLK,reset,start_strobe)begin--0分析指令--1把S送至RS--2把D送至RD/判斷是否停機(jī)--3根據(jù)指令類別進(jìn)行相應(yīng)操作--4運(yùn)算--5取指令--6停機(jī)ifreset='1'thencondition<=6;--重置elsifCLK'EVENTANDCLK='1'thenifWR='1'thenifcondition=1orcondition=2orcondition=4orcondition=0then condition<=condition+1;--直接進(jìn)入下一狀態(tài)elsifcondition=5thencondition<=0;--狀態(tài)5的下一狀態(tài)為狀態(tài)0elsifcondition=3then--狀態(tài)3的下一狀態(tài)根據(jù)指令有所不同ifIR(7downto4)="1100"thenifH='1'thencondition<=6;--停機(jī)elsecondition<=5;endif; elsifIR(7downto6)/="11"then condition<=4;--進(jìn)入執(zhí)行存放器指令的狀態(tài)elsifIR(7downto6)="11"andIR(5downto4)/="00"then condition<=5;--直接轉(zhuǎn)移指令,不執(zhí)行存放器指令endif;elsifcondition=6ANDSTART_strobe='1'thencondition<=5;--啟動(dòng)endif;endif;endif;endprocesschange;--CON&ALU--con_alu:process(WR,condition,CLK,reset)beginifreset='1'thenPC<="0000";c<='0';result<="00000";elsifCLK'EVENTANDCLK='1'thenifWR='1'ANDreset='0'thenIR<=IRAM(CONV_integer(PC)); --將指令存儲(chǔ)器中的指令讀出,放入指令存放器;code_in_display<=IR; --顯示讀出的指令ifIR(7downto4)="1100"then instruction<="11"; --停機(jī)指令11-00-L-H-D L<=IR(3); H<=IR(2); D<=IR(1downto0);elsifIR(7downto6)="11"then instruction<="10"; --轉(zhuǎn)移指令11-CC-ADDR ADDR<=IR(3downto0);else instruction<="01"; --存放器指令OP-CC-S-D S<=IR(3downto2);--從存放器指令中別離出S D<=IR(1downto0);--從存放器指令中別離出Dendif;ifIR(7downto4)/="1100"thencaseIR(5downto4)is--進(jìn)位信號(hào)處理when"00" =>CI<='0'; when"01" =>CI<='1';when"10" =>CI<=C; when"11"=>CI<=notC;whenothers=>NULL;endcase;endif;ifinstruction="01"then --存放器指令 caseconditionIS when1 =>RS<=RAM(CONV_integer(S));--S送入RS when2 =>RD<=RAM(CONV_integer(D));--D送入RD when3 => caseIR(7downto6)is when"00" =>result<=RS+CI; when"01" =>result<=RS+RD+CI;when"10"=>result<=(notRS)+RD+CI; whenOTHERS=>NULL; endcase;when4=> RAM(CONV_integer(D))<=result(3downto0); C<=result(4);PC<=PC+1;whenOTHERS => NULL; endcase;elsifinstruction="10"then --轉(zhuǎn)移指令 caseconditionISwhen1=>NULL;when2=>NULL; when3=> ifCI='1'thenPC<=ADDR;elsePC<=PC+1;endif;whenOTHERS=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論