《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Verilog的RISC MCU中斷系統(tǒng)的設(shè)計(jì)與驗(yàn)證
基于Verilog的RISC MCU中斷系統(tǒng)的設(shè)計(jì)與驗(yàn)證
凌朝東,柯志斌,王加賢
摘要: 詳細(xì)論述了4位RISC MCU中斷系統(tǒng)的Verilog設(shè)計(jì)實(shí)現(xiàn)過(guò)程。該MCU采用PIC兩級(jí)流水線結(jié)構(gòu),含4個(gè)中斷源,2級(jí)優(yōu)先級(jí)。最后通過(guò)整體的RISC MCU IP核對(duì)其中斷系統(tǒng)進(jìn)行完整的程序測(cè)試,完成功能與時(shí)序的仿真與驗(yàn)證。
Abstract:
Key words :

    摘  要: 詳細(xì)論述了4位RISC" title="RISC">RISC MCU" title="MCU">MCU中斷系統(tǒng)的Verilog" title="Verilog">Verilog設(shè)計(jì)實(shí)現(xiàn)過(guò)程。該MCU采用PIC兩級(jí)流水線結(jié)構(gòu),含4個(gè)中斷源,2級(jí)優(yōu)先級(jí)。最后通過(guò)整體的RISC MCU IP核對(duì)其中斷系統(tǒng)進(jìn)行完整的程序測(cè)試,完成功能與時(shí)序的仿真與驗(yàn)證。 

    關(guān)鍵詞: verilog;PIC;RISC MCU;仿真;中斷 

 

    微控制器(MCU)包括核心指令譯碼電路、寄存器/存儲(chǔ)器模塊和一組輸入/輸出(I/O)模塊。當(dāng)I/O模塊處于操作進(jìn)行時(shí),I/O模塊中斷機(jī)制使微處理器可以忙于執(zhí)行其他指令,取消MCU對(duì)端口的不必要等待時(shí)間,從而大大提高了MCU的執(zhí)行效率[1]。 

    在微控制器或微處理器的設(shè)計(jì)中,控制信號(hào)的設(shè)計(jì)是最復(fù)雜的,而在控制信號(hào)的設(shè)計(jì)中,中斷系統(tǒng)的設(shè)計(jì)又是最困難的部分[1]。本文以自主所開(kāi)發(fā)的4位RISC MCU IP核為載體,采用自上而下的設(shè)計(jì)方法,給出了其中斷系統(tǒng)的Verilog硬件描述語(yǔ)言的具體實(shí)現(xiàn)過(guò)程。該系統(tǒng)可以作為一個(gè)功能部件, 直接在微控制器中加以運(yùn)用, 對(duì)各種復(fù)雜中斷系統(tǒng)的設(shè)計(jì)具有很好的借鑒意義。 

1 中斷系統(tǒng)總體設(shè)計(jì)

    本系統(tǒng)所處的載體是由自身所研發(fā)的、采用數(shù)據(jù)總線和指令總線相互分離的哈佛雙總線和Microchip技術(shù)公司的微控制器PIC的兩級(jí)流水線機(jī)制[2]。中斷系統(tǒng)的主要功能與MCS-51相同,有4個(gè)中斷請(qǐng)求源,2個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)2級(jí)中斷服務(wù)程序嵌套。整個(gè)中斷系統(tǒng)結(jié)構(gòu)圖如圖1所示。具體的設(shè)計(jì)主要包含以下四個(gè)設(shè)計(jì)過(guò)程[3]: 

 

 

    (1)微控制器如何識(shí)別發(fā)生了哪個(gè)中斷; 

    (2)出現(xiàn)多個(gè)中斷時(shí), 微處理器優(yōu)先處理哪個(gè)中斷; 

    (3)微控制器如何處理中斷嵌套; 

    (4)微控制器如何處理中斷執(zhí)行周期。 

    其中,(1)是中斷源的問(wèn)題,(4)是中斷響應(yīng)時(shí)間的考慮,(2)和(3)歸結(jié)起來(lái)就是中斷優(yōu)先級(jí)單元的設(shè)計(jì)。 

1.1 中斷源

    系統(tǒng)的4個(gè)中斷源分別是:外部中斷SE(由I/O提供);片內(nèi)的定時(shí)/計(jì)數(shù)器T0的溢出中斷請(qǐng)求ST;片內(nèi)基準(zhǔn)定時(shí)器BT0的溢出中斷請(qǐng)求SB;液晶驅(qū)動(dòng)模塊的中斷請(qǐng)求SL和中斷系統(tǒng)相關(guān)的特殊功能寄存器及有中斷允許控制寄存器IE,中斷優(yōu)先級(jí)控制寄存器IP和中斷請(qǐng)求標(biāo)志寄存器IF。IF、IE、IP寄存器中的中斷源排位順序一致,它們都可通過(guò)字節(jié)的指令操作來(lái)進(jìn)行讀寫(xiě),MCU復(fù)位時(shí),全部為0。當(dāng)MCU同時(shí)收到幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),由同級(jí)內(nèi)的優(yōu)先查詢順序確定哪個(gè)中斷請(qǐng)求得到響應(yīng)。各中斷源得相應(yīng)中斷入口地址、默認(rèn)同級(jí)優(yōu)先級(jí)及IF/IE/IP寄存器的各位名稱如表1所示。 

 

 

    IE的相應(yīng)位置1,表明相應(yīng)的中斷源為允許,為0時(shí),則是屏蔽;IF的相應(yīng)位置1,表明相應(yīng)的中斷源有請(qǐng)求,為0,則沒(méi)有中斷源請(qǐng)求;IP的相應(yīng)位為1,表明相應(yīng)的中斷源為高優(yōu)先級(jí)中斷,為0,則為低優(yōu)先級(jí)中斷。該部分的相關(guān)Verilog代碼如下(以基準(zhǔn)定時(shí)中斷為例): 

//基準(zhǔn)定時(shí)模塊中斷源信號(hào)(高電平脈沖)的系統(tǒng)時(shí)鐘同步; 

    always@(sysclk)  begin 

        int_base1<=int_base; 

        int_base2<=int_base1;end 

    assign SB=!int_base1&int_base2; 

//中斷請(qǐng)求標(biāo)志位:可由中斷源SB觸發(fā),也可通過(guò)對(duì)IF 

//的字節(jié)操作對(duì)其置位或清零,其余情況下則保持原狀態(tài) 

//不變。 

    assign FB=(resetn==0)?  1′b0: 

            (SB==1)?    1′b1: 

            (IF_wr)?    IF[2]: 

                        LF; 

//把中斷請(qǐng)求標(biāo)志位寫(xiě)回中斷請(qǐng)求暫存寄存器IF_out,若有 

//對(duì)IF進(jìn)行寫(xiě)操作(IF_wr=1),則把IF_out寫(xiě)回。 

    assign IF_out={FB,F(xiàn)T,F(xiàn)E,F(xiàn)L}; 

//中斷請(qǐng)求響應(yīng)條件位 

    assign FB_f=FB&IE[2]; 

1.2 中斷優(yōu)先級(jí)設(shè)計(jì)

    系統(tǒng)設(shè)置有2個(gè)中斷優(yōu)先級(jí),對(duì)于每一個(gè)中斷請(qǐng)求源可編程為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷。中斷系統(tǒng)中有2個(gè)不可尋址的優(yōu)先級(jí)狀態(tài)編碼器,一個(gè)指出MCU是否有高優(yōu)先級(jí)的中斷信號(hào),另一個(gè)指出MCU是否有低優(yōu)先級(jí)的中斷信號(hào)??筛鶕?jù)這兩個(gè)編碼器的值來(lái)判斷系統(tǒng)所處的中斷狀態(tài)。此部分為設(shè)計(jì)的重點(diǎn)。 

    如圖1所示,把高、低優(yōu)先級(jí)的中斷分別歸類到高優(yōu)先級(jí)編碼器(encoder2)和低優(yōu)先級(jí)編碼器(encoder1),無(wú)中斷時(shí),兩編碼器值都為零。若有一個(gè)不為零或兩個(gè)都不為零,則會(huì)產(chǎn)生一中斷信號(hào)(int_out),且會(huì)根據(jù)兩優(yōu)先編碼器的值來(lái)確定中斷入口地址(int_pc)、中斷嵌套(int_nesting)、中斷嵌套返回(int_nest_back)等信號(hào),并將它們送入PC與堆棧處理模塊。當(dāng)然PC與堆棧模塊也會(huì)產(chǎn)生相應(yīng)的反饋信號(hào)以處理多種中斷情況。相關(guān)的重點(diǎn)實(shí)現(xiàn)代碼如下: 

//低優(yōu)先級(jí)編碼器的輸入端選擇 

    assign encoder1_in[0]=(int_pri[0]==0)?FL:1′b0; 

  assign encoder1_in[1]=(int_pri[1]==0)?FE:1′b0; 

  assign encoder1_in[2]=(int_pri[2]==0)?FT:1′b0; 

  assign encoder1_in[3]=(int_pri[3]==0)?FB:1′b0; 

//高優(yōu)先級(jí)編碼器的輸入端選擇 

  assign encoder2_in[0]=(int_pri[0]==1)?FL:1′b0; 

  assign encoder2_in[1]=(int_pri[1]==1)?FE:1′b0; 

  assign encoder2_in[2]=(int_pri[2]==1)?FT:1′b0; 

  assign encoder2_in[3]=(int_pri[3]==1)?FB:1′b0; 

//低優(yōu)先級(jí)編碼器的實(shí)現(xiàn):無(wú)中斷時(shí),值為0,進(jìn)中斷時(shí)優(yōu)先 

//編碼賦值。其中把值寄存一次,用以辨別中斷源變化時(shí)的 

//編碼狀態(tài),做為中斷嵌套等多種中斷情況的信號(hào)辨別條 

//件;高優(yōu)先級(jí)編碼器的實(shí)現(xiàn)與低優(yōu)先級(jí)類同,結(jié)果為out2 

//和out2_pre。 

    always@(encoder1_in or out1) 

        begin 

        out1_pre<=out1; 

        casex(encoder1_in) 

        4′b0000:out1=3′b000; 

        4′b0001:out1=3′b001; 

        4′b001x:out1=3′b010; 

        4′b01xx:out1=3′b011; 

        4′b1xxx:out1=3′b100; 

        default:out1=3′b000; 

        endcase 

        end 

//根據(jù)高低編碼器出來(lái)的結(jié)果辨別優(yōu)先級(jí),即該跳轉(zhuǎn)的中斷 

//向量地址。先僅取用到的5位數(shù),用時(shí)再與前面補(bǔ)零;其 

//中也已包含了同級(jí)默認(rèn)優(yōu)先級(jí)的功能; 

    assign int_pc=  (out2==3′b100)  ?  4′b0011: 

                (out2==3′b011)  ?  4′b0101: 

                (out2==3′b010)  ?  4′b0111: 

                (out2==3′b001)  ?  4′b1001: 

                (out1==3′b100)  ?  4′b0011: 

                (out1==3′b011)  ?  4′b0101: 

                (out1==3′b010)  ?  4′b0111: 

                (out1==3′b001)  ?  4′b1001: 

                                    4′b0000; 

//中斷信號(hào)的產(chǎn)生,int_out_clear為PC和堆棧模塊的反饋信 

//號(hào); 

    assign int_out=(int_out_clear==1)? 1′b0: 

           ((out2!=3′b000)||(out1!=3′b000))? 1′b1:1′b0; 

//中斷嵌套信號(hào)的條件是通過(guò)兩編碼器輸出結(jié)果的變化推 

//斷出來(lái)的,且已通過(guò)驗(yàn)證證明是正確的。中斷嵌套返回的 

//方法與此同,不細(xì)述。 

    assign 

int_nest=(((out1!=3′b000)&(out2_pre==3′b000)&(out2!= 

3′b000))==1′b1)?1′b1:1′b0; 

//int_nest為一辨別信號(hào),將其轉(zhuǎn)換為系統(tǒng)脈沖信號(hào); 

    always@(posedge sysclk)  begin 

        int_nest1<=int_nest; 

        int_nest2<=int_nest1; 

        if(!int_nest2&int_nest) 

        int_nesting<=1; 

        else int_nesting<=0;end 

1.3 中斷響應(yīng)

    中斷延遲是MCU的一個(gè)重要參數(shù), 通常是指在最壞情況下響應(yīng)中斷的最長(zhǎng)時(shí)間。因系統(tǒng)屬于RISC單周期指令,也就不存在CISC中存在的指令未執(zhí)行完而被打斷的情況。當(dāng)然MCU也是在現(xiàn)行一條指令執(zhí)行完畢即下一個(gè)指令周期的Q1才開(kāi)始響應(yīng)中斷的,并不是在一條指令執(zhí)行期間響應(yīng)中斷,這樣MCU才能正確返回?cái)帱c(diǎn)繼續(xù)執(zhí)行原來(lái)的程序。由此也可知道系統(tǒng)大部分時(shí)刻中斷響應(yīng)時(shí)間為1個(gè)指令周期;除非正在執(zhí)行的指令是現(xiàn)場(chǎng)保護(hù)(入棧)、現(xiàn)場(chǎng)恢復(fù)(出棧),則需要等這些指令執(zhí)行完之后,再去響應(yīng)新的中斷請(qǐng)求,這一點(diǎn)本系統(tǒng)是通過(guò)軟件程序來(lái)實(shí)現(xiàn)。軟件程序的具體編寫(xiě)步驟與MCS-51相似,見(jiàn)參考文獻(xiàn)[4]。 

1.4 PC與堆棧模塊

    PC與堆棧模塊通過(guò)接收來(lái)自中斷優(yōu)先級(jí)模塊的信號(hào)處理多種中斷情況的發(fā)生,并產(chǎn)生相應(yīng)的反饋信號(hào),且完成了現(xiàn)場(chǎng)保護(hù)(入棧)、現(xiàn)場(chǎng)恢復(fù)(出棧)、PC預(yù)取值等重要操作。除了跳轉(zhuǎn)地址須等指令周期的Q4外,其余的大部分操作皆于Q1時(shí)刻完成。 

    always@(posedge clk1 or posedge int_nesting or negedge resetn)  begin 

        if(resetn==0) 

        …… 

//中斷嵌套信號(hào)需把int_out_clear清零,以辨別新中斷信號(hào); 

//當(dāng)有中斷信號(hào)后的下一個(gè)Q1,置int_out_clear為1;中斷 

//返回指令RTI時(shí)置其為0;其余時(shí)刻保持不變。 

        else if(int_nesting) int_out_clear<=0; 

        else begin 

        pc_plus1<=pc_fetch+1; 

        pc<=pc_fetch; 

        casex({int_out,inst[15:12]}) 

        5′b1xxxx:begin 

                int_out_clear<=1 

//pc_int:中斷發(fā)生標(biāo)志;pc_pop:中斷返回標(biāo)志 

            pc_int<=1; 

            pc_pop<=0; 

//中斷嵌套返回時(shí)刻并不執(zhí)行壓棧操作,而應(yīng)返回原壓棧值 

            if(int_nest_back==0) 

            ……//壓棧 

        5′b01111:begin 

            pc_pop<=1; 

            pc_int<=0; 

            int_out_clear<=0; 

            ……//進(jìn)棧 

        default:begin 

            pc_pop<=0; 

            pc_int<=0;end 

//預(yù)取值地址的辨別 

assign pc_fetch=(resetn==0) ? 12′b0000_0000_0000: 

        (pc_pop==1)  ?   pc_fetch_pop: 

        (int_nest_back&pc_int)  ?  pc_fetch_pop: 

        (pc_int==1)  ?  {8′b00000000,int_pc}: 

        (sys_jmp==1)  ?  pc_jmp: 

                         pc_plus1; 

2 系統(tǒng)的測(cè)試與驗(yàn)證

    本中斷系統(tǒng)屬于自主設(shè)計(jì)的RISC MCU IP核的子模塊,其功能與時(shí)序仿真也是在整個(gè)IP核上進(jìn)行的。經(jīng)過(guò)六個(gè)含中斷程序的下載驗(yàn)證和不斷完善,整個(gè)中斷系統(tǒng)是完全正確且可行的。功能仿真時(shí),采取了將測(cè)試向量(匯編代碼)通過(guò)虛擬ROM進(jìn)行驗(yàn)證的方式;時(shí)序仿真則是利用Altera公司的LPM ROM/RAM模塊完成。前者的平臺(tái)是modelsim 6.0se,后者是quartus6.0。現(xiàn)舉例詳細(xì)說(shuō)明:設(shè)置IE為0111,IP為0110。步驟如下: 

    (1)運(yùn)行主程序,等待中斷信號(hào); 

    (2)先獲得液晶中斷源SL并執(zhí)行相應(yīng)的中斷源程序,但在其中斷程序未執(zhí)行完之前,又來(lái)外部中斷源SE,此時(shí)因中斷源有高低優(yōu)先級(jí)之別,應(yīng)有中斷嵌套狀況; 

    (3)系統(tǒng)轉(zhuǎn)而執(zhí)行外部中斷程序,但又在外部中斷程序未執(zhí)行完之前,獲得定時(shí)/計(jì)數(shù)器中斷源ST,此時(shí)因中斷源同是高優(yōu)先級(jí)中斷,故不予理睬,但定時(shí)/技術(shù)中斷器請(qǐng)求信號(hào)卻一直保持,直至外部中斷程序完畢后,系統(tǒng)緊接著響應(yīng)定時(shí)/技術(shù)器中斷; 

    (4)定時(shí)/技術(shù)器中斷程序執(zhí)行完畢后,系統(tǒng)返回液晶中斷程序繼續(xù)執(zhí)行; 

    (5)待液晶中斷程序執(zhí)行完后,系統(tǒng)跳回主程序。 

    具體的仿真結(jié)果完全符合功能要求,時(shí)序圖如圖2所示。 

 

 

    隨著微電子技術(shù)的飛速發(fā)展,微控制器以其性能好、體積小、價(jià)格優(yōu)、功能齊全等突出優(yōu)點(diǎn)被廣泛應(yīng)用于家用電器、計(jì)算和外設(shè)、通訊、工業(yè)控制、自動(dòng)化生產(chǎn)、智能化設(shè)備以及儀器儀表等領(lǐng)域,在國(guó)內(nèi)具有良好的應(yīng)用前景,其設(shè)計(jì)也日益受到人們的重視。中斷系統(tǒng)是微控制器設(shè)計(jì)的難點(diǎn),本文介紹的中斷系統(tǒng)設(shè)計(jì)方法具有很好的借鑒意義。采用這種用Verilog實(shí)現(xiàn)的自頂向下的方法,使問(wèn)題在RTL級(jí)就暴露出來(lái),便于及時(shí)修改,大大減少了開(kāi)發(fā)時(shí)間。包含上述中斷系統(tǒng)的4位RISC MCU IP核也已測(cè)試及驗(yàn)證成功。 

參考文獻(xiàn)

[1] 胡永華,高明倫,王銳.微處理器中中斷電路的高層設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2001,(4). 

[2] 2004 Microchip Technology Inc.PICmicro中檔單片機(jī)系列參考手冊(cè).http://www.microchip.com,2004,9. 

[3] 朱良辰,胡越黎,冉峰.高速M(fèi)CU核中并行優(yōu)先級(jí)中斷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微電子學(xué),2004,34(4):482. 

[4] 張毅剛.單片機(jī)原理與應(yīng)用(第1版)[M].北京:高等教育出版社,2004,(1):112.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品视频九色porn| 国产精品v欧美精品v日韩| 91久久在线观看| 亚洲视频一二区| 一区二区在线看| 国产精品综合| 欧美日韩在线另类| 免费精品99久久国产综合精品| 亚洲欧美精品一区| 日韩视频在线观看| 久久精品国产综合| 亚洲一区二区三区免费视频| 亚洲国产美国国产综合一区二区| 国产亚洲美州欧州综合国| 国产精品久久99| 欧美日韩国产在线播放网站| 噜噜爱69成人精品| 久久精品二区| 欧美在线电影| 香蕉久久夜色| 亚洲免费影院| 亚洲日本在线观看| 亚洲第一黄色| 欧美一区午夜视频在线观看| 亚洲欧美日韩久久精品 | 国产欧美一区二区三区另类精品 | 国产日韩亚洲| 国产精品视频网| 国产精品二区三区四区| 欧美日韩在线直播| 欧美日韩精品免费看| 欧美日韩美女在线| 国产精品成人一区二区三区夜夜夜 | 亚洲另类在线视频| 一区二区三区高清在线观看| 亚洲在线中文字幕| 欧美主播一区二区三区| 老色鬼精品视频在线观看播放| 欧美极品在线观看| 国产精品福利在线观看网址| 国产欧美在线播放| 在线免费精品视频| 99精品国产在热久久婷婷| 亚洲自拍偷拍一区| 亚洲国产欧美一区二区三区丁香婷| 日韩午夜精品| 欧美一区久久| 免费亚洲电影| 国产精品久久久久毛片软件| 国模套图日韩精品一区二区| 亚洲三级影片| 亚洲欧美日韩高清| 亚洲精品黄网在线观看| 亚洲欧美日韩综合一区| 久久这里有精品视频| 欧美日韩亚洲免费| 国模精品一区二区三区| 日韩亚洲精品电影| 亚洲成在线观看| 亚洲影视综合| 快she精品国产999| 国产精品久久久久久久一区探花 | 激情欧美一区二区三区| 亚洲精品免费在线| 午夜精品理论片| 9久re热视频在线精品| 欧美中文字幕视频| 欧美日韩亚洲成人| 黑人操亚洲美女惩罚| 亚洲日本乱码在线观看| 欧美一区激情| 亚洲少妇最新在线视频| 久久久久99| 国产精品免费看久久久香蕉| 亚洲国产精品福利| 香蕉av777xxx色综合一区| 日韩一级精品| 久久九九精品99国产精品| 欧美三日本三级少妇三99 | 尤物精品在线| 亚洲午夜激情网站| 亚洲精品欧美日韩专区| 欧美一区二区三区精品电影| 欧美精品久久久久久久久久| 国产一区av在线| 亚洲天堂av高清| 亚洲美女视频在线免费观看| 久久久国产精品亚洲一区| 国产精品福利在线观看| 亚洲片在线观看| 亚洲国产精品电影| 久久国产精品色婷婷| 欧美日韩在线三区| 亚洲黄色影院| 亚洲丁香婷深爱综合| 欧美一级播放| 欧美午夜电影网| 亚洲三级观看| 亚洲日本成人女熟在线观看| 蜜桃久久精品乱码一区二区| 国产午夜亚洲精品羞羞网站| 亚洲一区二区三区中文字幕在线| 亚洲视频在线观看网站| 欧美激情小视频| 亚洲丶国产丶欧美一区二区三区 | 国产欧美日韩一区二区三区在线| 在线一区观看| 国产精品99久久久久久宅男 | 伊人伊人伊人久久| 欧美一区二区高清在线观看| 亚洲欧美综合网| 国产精品二区三区四区| 一区二区av在线| 在线中文字幕不卡| 欧美日在线观看| 亚洲精品综合精品自拍| 日韩一级片网址| 欧美日韩免费看| 99国产一区| 在线视频免费在线观看一区二区| 欧美精品手机在线| 亚洲精品影院| 亚洲视频在线二区| 欧美四级在线| 一区二区三区高清在线观看| 亚洲午夜一区二区| 国产精品久久久久久久久久免费看 | 欧美aⅴ99久久黑人专区| 在线精品视频在线观看高清| 亚洲国产精品电影| 欧美~级网站不卡| 亚洲国产一区在线| 野花国产精品入口| 欧美日韩午夜剧场| 亚洲亚洲精品三区日韩精品在线视频| 亚洲一区影音先锋| 国产精品视频一区二区高潮| 性做久久久久久久免费看| 久久这里只有| 亚洲人成绝费网站色www| 亚洲天堂av高清| 国产精品一区二区在线观看网站 | 影音国产精品| 99精品国产福利在线观看免费 | 欧美视频你懂的| 亚洲一区二区三区精品视频| 欧美在线中文字幕| 精品成人一区二区| 一区二区成人精品| 国产精品日韩在线一区| 久久精品夜夜夜夜久久| 欧美日韩国产首页在线观看| 国产精品99久久久久久人| 午夜视频在线观看一区二区| 红桃视频国产精品| 一区二区久久久久| 国产区二精品视| 亚洲品质自拍| 国产精品国产亚洲精品看不卡15| 欧美一区二区视频网站| 欧美成人激情视频免费观看| 99国产一区二区三精品乱码| 久久精品国产亚洲a| 亚洲国产高清一区| 亚洲一区二区三区视频播放| 国语精品中文字幕| 一区二区三区欧美激情| 国产日产高清欧美一区二区三区| 亚洲精品一二三| 欧美在线观看视频一区二区三区| 亚洲第一天堂无码专区| 亚洲欧美激情精品一区二区| 黄色成人片子| 亚洲一区二区三区视频| 激情六月婷婷综合| 亚洲女人天堂av| 在线看日韩欧美| 欧美亚洲尤物久久| 最新中文字幕亚洲| 久久精品国产久精国产爱| 日韩视频在线一区| 麻豆久久婷婷| 亚洲一区二区在线免费观看| 欧美二区在线| 香蕉免费一区二区三区在线观看| 欧美精品一区二区三区一线天视频| 欧美一二三视频| 欧美视频一区二区三区…| 亚洲国产欧美国产综合一区| 国产伦精品一区二区三区视频孕妇| 亚洲精品亚洲人成人网| 国产日韩欧美在线观看| 在线视频一区观看| 伊人久久噜噜噜躁狠狠躁| 欧美在线国产精品| 一区二区日韩免费看| 欧美连裤袜在线视频| 亚洲国产成人在线| 国产欧美韩国高清| 亚洲亚洲精品在线观看|