999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種適于應用程序員設計FPGA異構系統(tǒng)的框架※

2016-03-20 09:14:39沈鎮(zhèn)柴志雷柴鎮(zhèn)
關鍵詞:用戶檢測設計

沈鎮(zhèn),柴志雷,柴鎮(zhèn)

(江南大學物聯(lián)網(wǎng)工程學院,無錫214122)

一種適于應用程序員設計FPGA異構系統(tǒng)的框架※

沈鎮(zhèn),柴志雷,柴鎮(zhèn)

(江南大學物聯(lián)網(wǎng)工程學院,無錫214122)

本文提供一種適于應用程序員方便使用FPGA平臺的框架。它讓用戶從硬件和系統(tǒng)結構中抽離出來,更關注算法和應用程序。這個框架綜合了Xilinx ISE和Vivado,可以立即使用。在本文的框架上,一個軟件人員實現(xiàn)了一個廣泛使用的特征提取算法,表明本文的框架的確適用于只有少量硬件知識的應用程序員。

FPGA;嵌入式系統(tǒng);特征提取;應用程序

引 言

眾所周知,在最近的十年,生產(chǎn)商已經(jīng)放棄試圖通過提高單核頻率來提升性能,大多數(shù)主流通用處理器性能增長都借助增加處理器核的數(shù)量。有很多關于多核的研究調(diào)查[1-2],然而,正如參考文獻[2]中介紹的那樣,現(xiàn)行的并行架構在常規(guī)項目(如稠密矩陣計算)上有好的加速效果,但是大多數(shù)在非常規(guī)項目(如計算機視覺)上的表現(xiàn)則差強人意。

FPGA作為一種可編程邏輯設備,支持不同類型的細粒度并行,也擅長處理非常規(guī)項目。它的性能和功耗的優(yōu)勢經(jīng)常被得到證明[3-4]。但是,當前在純FPGA上實現(xiàn)應用依然是一個困難的工程,即使是對一個熟練的工程師而言,因為它需要底層VHDL/Verilog硬件語言和硬件細節(jié)的知識,而且在實現(xiàn)應用之前,還需要解決設備驅動的問題。

最近出現(xiàn)了很多針對于FPGA的異構SoC,例如Xilinx Zynq-7000[5]和Altera SoC FPGA。異構FPGA的一個優(yōu)勢就是通用處理器部分可以使FPGA使用者從復雜的驅動程序里面解脫出來。另一個優(yōu)勢是異構FPGA通過結合傳統(tǒng)與非傳統(tǒng)的處理器,有潛力達到更好的能效,這已經(jīng)從理論[7]和實踐上[8]進行了研究。另一方面,HLS (High-Level-Synthesis)[6]技術到今天已經(jīng)足夠成熟,能夠支持C/C++對FPGA的設計更抽象。例如,Xilinx的Vivado HLS[9]支持程序員使用高級語言C/C++基于Xilinx FPGA設計系統(tǒng)。Zynq SoC加上HLS是當前一個明顯的發(fā)展選擇。然而,盡管異構SoC加上HLS提高了系統(tǒng)設計的抽象度,并且將用戶從FPGA驅動問題中解放出來,但它還是更適合系統(tǒng)程序員。這是因為程序員必須掌握算法、架構、接口、物理地址分配、軟件驅動的實現(xiàn)和應用軟件的實現(xiàn)等相關知識。這種設計流程的缺點是系統(tǒng)程序員一般有更多硬件架構和軟件知識,但是對算法和應用了解較少,反之亦然。

HLS對于FPGA的設計,可被視為通用計算機系統(tǒng)的編譯器。顯然,盡管使用了高級語言,HLS用戶還是需要直面FPGA。因此,類似于通用處理器的操作系統(tǒng),FPGA中也需要一個虛擬層通過屏蔽硬件細節(jié)進一步提高用戶的開發(fā)效率。從這個角度看一些工作已經(jīng)展開了。LEAP[11]是一個FPGA操作系統(tǒng),解決高延遲、抽象交互、多片F(xiàn)PGA的內(nèi)存模型和混合算法。RAMP[1]項目為處理器加速。CoRAM[12]項目側重在應用程序到多級內(nèi)存的接口和可重構邏輯的內(nèi)存模型。更多的相關工作在參考文獻[10]、[13]、[14]中可見。

本文提出了一個方便應用程序員使用FPGA異構平臺的框架,這個框架專為嵌入式系統(tǒng)下計算機視覺應用做了優(yōu)化。它使用Xilinx Vivado,因此可以立即使用,而不是重新實現(xiàn)一套開發(fā)工具。用本文框架開發(fā)應用,在CPU和FPGA上都使用C/C++。程序的主入口在CPU端,FPGA在執(zhí)行期間重新配置和調(diào)用。它讓用戶不用處理硬件和結構細節(jié),讓他們更關注算法和應用程序。通過實現(xiàn)一個常用的計算機視覺特征檢測算法——SURF (Speeded-Up Robust Features)[15],從一個應用程序員的角度驗證了該框架,顯示了這個框架適用于應用程序員使用FPGA異構平臺。

1 框架結構

如圖1所示,在FPGA端和CPU端,框架支持應用程序員使用C/C++。在FPGA端,算法或者模塊使用C/C++設計,接著由硬件并行加速,同時設計一個接口,其包含AMBA和AXI,然后用HLS工具翻譯,綜合生成IP核。這些包含AXI的IP核可以掛載到合適的位置,來構造整個FPGA部分。用戶的IP核是應用程序員面向應用開發(fā)的,其他模塊(如FPGA驅動I/O和內(nèi)存)都是本文框架提供的一部分。因此,應用程序員可以集中關注如何更好地實現(xiàn)指定應用的算法和模塊。由于在Vivado HLS中提供了C/C++語言支持和優(yōu)化方案,所以算法或者模塊可以由軟件程序員實現(xiàn)。通過提前分配固定地址,用戶可以避免在不同的應用中每次都要手動掛載IP核,這進一步使得C/C++程序員不需要太多的架構知識就能夠為FPGA開發(fā)算法。在CPU端,算法或者模塊也是使用C/C++開發(fā),然后在CPU上執(zhí)行。它們編譯和鏈接生成可執(zhí)行文件,在CPU上執(zhí)行的模塊可以通過帶AXI協(xié)議的接口與FPGA部分進行通信。

圖1 框架體系結構

1.1 FPGA端系統(tǒng)設計

FPGA端架構略——編者注,在當前版本的框架中, AXI用作IP核、I/O、FPGA內(nèi)存和處理器之間的互連協(xié)議,AXI4、AXI stream和AXI-lite在FPGA內(nèi)實現(xiàn)。通過實現(xiàn)這個架構和提前分配用戶IP核地址,使IP核、FPGA部分的I/O和內(nèi)存對處理器是可見的,并且可以像資源一樣管理。分配的IP核地址空間可以映射到虛擬地址,由CPU上的操作系統(tǒng)進行管理,使得CPU用戶不用開發(fā)設備驅動來實現(xiàn)與IP核的通信,因此,應用程序員可以更好地在CPU端開發(fā)算法。為了實現(xiàn)擴展性,框架設計成可以包含多個IP核和I/O接口。

1.2 CPU端系統(tǒng)設計

為了方便CPU應用程序員調(diào)用FPGA上實現(xiàn)的功能,本文的框架提供了一系列的API,方便他們使用FPGA模塊而不需要實現(xiàn)一些特定的驅動程序,包括用特定的功能模塊配置FPGA、設置FPGA模塊參數(shù)與FPGA通信等。

Config(lib_name,bin_file,algorithm_info);用指定的比特流配置FPGA和保存算法信息中FPGA資源相關的信息,以方便后續(xù)CPU的管理

Algorithm_set(point IPcore,parameter_name,parameter_value);在運行之前為FPGA模塊配置算法參數(shù)

FPGA_mem_request(point point_name,data_size); FPGA_mem_release(point point name);請求和釋放一塊FPGA內(nèi)存

ARM_tx(point ARM_source,point FPGA_destination,intncols,intnrows);ARM_rx(point ARM_destination,point FPGA_source,intncols,intnrows);實現(xiàn)CPU和FPGA之間的內(nèi)存拷貝

Start(point IPcore);參數(shù)配置好之后,啟動FPGA模塊

reset(point IPcore);重置FPGA模塊

2 基于框架的設計流程

圖2是一個C/C++程序員實現(xiàn)FPGA異構系統(tǒng)的設計流程圖。使用了本文的框架后,只有虛線以上的部分是需要應用者完成的,具體的將在后面介紹。

2.1 FPGA端用C/C++設計算法/模塊

為了方便用戶設計帶有AXI的算法或者模塊,在本文的框架中提供了一個模板。用戶可以在該模板中嵌入他們的設計,然后使用#pragma構造帶AXI的接口。算法優(yōu)化需要利用更多的并行性,Vivado HLS提供了一些優(yōu)化方案,如果用戶有一些系統(tǒng)架構方面的知識,也可以手動進行優(yōu)化。需要說明的是,Vivado HLS中仿真階段的調(diào)試是不在這里討論的。

圖2 實現(xiàn)FPGA異構系統(tǒng)設計流程圖

2.2 算法設計后生成IP核

用C/C++實現(xiàn)的算法/模塊可以由Vivado生成一個IP核,它在后面可以作為一個組件,然后,這個IP核可以通過AXI掛載在一個合適的位置。因為分配的固定地址列表和總線互連的體系結構是提前實現(xiàn)的,用戶可以在無需了解太多架構知識前提下,將他們的IP核掛載在指定的位置。

2.3 CPU端用C/C++設計算法/模塊

算法或者模塊適合在CPU上執(zhí)行,主程序可以使用C/C++在傳統(tǒng)的軟件開發(fā)環(huán)境中實現(xiàn)。正如第1.2節(jié)介紹的那樣,框架提供的API可以讓用戶配置FPGA、設置參數(shù)和使用FPGA模塊,因此通過使用這些API,程序員能夠操作FPGA模塊和解析數(shù)據(jù)。用戶設計一個新的FPGA模塊就需要設計一個API,以方便上層用戶以純軟件的方式調(diào)用FPGA功能。

2.4 為CPU生成可執(zhí)行文件

第二部分的項目由Linux GCC編譯和鏈接生成可執(zhí)行文件,它在執(zhí)行時可以重新配置FPGA和調(diào)用FPGA模塊。

本文框架的用戶可以分為3類:①同時在FPGA和CPU上實現(xiàn)算法;②只在FPGA上實現(xiàn)算法;③只在CPU上實現(xiàn)算法。對于第一種用戶,需要用到上面描述的整個設計流程;對于第二種用戶,除了實現(xiàn)IP核,還需要為上層用戶提供軟件API,它具有特定的功能,可以根據(jù)需要配置和操作相應的IP核;對于第三種用戶,如同常規(guī)的軟件程序員,他們在CPU上使用由第二種用戶提供的API,甚至不知道已經(jīng)用到FPGA模塊。當更多的IP核被不同的程序員實現(xiàn)時,大量的應用就能夠通過傳統(tǒng)的軟件開發(fā)程序員在CPU上開發(fā)。

正如圖2所示,用本文的框架開發(fā)FPGA異構平臺系統(tǒng),可以省略兩個步驟:構造FPGA系統(tǒng)和開發(fā)設備驅動。這兩步都是系統(tǒng)層面上的,需要用戶擁有更多的計算機體系結構和操作系統(tǒng)的知識。此外,FPGA的重構是本文框架提供的一個內(nèi)置函數(shù),對于一個應用程序員來說,它的實現(xiàn)是極難的。

3 框架評估

為了驗證本文框架對于C/C++應用程序員的可用性,在本節(jié)中,將展示使用本文框架的SURF特征提取的實現(xiàn)結果。

實驗平臺是一塊用于視覺計算的開發(fā)板,其他使用SoC的異構平臺也可以使用本文的框架。如圖3所示,開發(fā)板包含Xilinx Spartan-6 XC6S LX150T FPGA和三星Cortex-A8 S5PV210 1 GHz的處理器。FPGA和ARM通過16位的數(shù)據(jù)總線和16位的地址總線連接,地址總線通過片選信號可以切換到兩個不同的地址空間。4個GPIO用作控制信號,4位SPI和7位GPIO用于處理器配置FPGA,有4個16位的DDR3與FPGA連接,為視覺算法計算提供了高帶寬內(nèi)存訪問,CMOS和Camera Link兩個接口提供視頻輸入。

圖3 用于視覺計算的ARM--FPGA異構開發(fā)板

3.1 SURF算法簡介

SURF[15]是一個常用的算法,用于局部特征檢測和描述,它對圖像縮放、旋轉和光照等變化不敏感。SURF主要分為3個步驟:初始化、特征提取和特征描述。

初始化:這一步主要是做一些準備工作,例如加載圖片,得到圖像像素點的大小和積分圖。

特征提取:這一步檢測圖像或者視頻幀里面的特征點。通過對圖片進行多尺度的縮放,構建一個基于尺度空間的Hessian金字塔,然后對它進行分析。因此,特征點是從不同尺度上得到的,保證了算法對尺度變化的魯棒性。尺度空間分析后,用非最大抑制在一個3×3×3的模板里求出最穩(wěn)定點,也就是說,如果某點的值大于模板內(nèi)其他26個點的值,它就被認為是特征點。

特征描述:在這一步,每一個特征點都求得一個特征向量用于描述這個點。首先計算特征方向以保證算法旋轉不變,然后根據(jù)特征方向來計算特征向量,接著每一個特征點都由一個64維的特征向量表示,最后對它進行歸一化來保證光照不變性。

3.2 在框架上實現(xiàn)SURF特征檢測算法

因為初始化和檢測階段具有明顯的并行性[16],它們更容易被軟件程序員優(yōu)化。因此,在本文,只在FPGA上實現(xiàn)了初始化和特征檢測兩個步驟。根據(jù)第3部分的設計流程圖,用本文的方法實現(xiàn)SURF的過程如下:

①用C/C++設計SURF檢測代碼。首先在Xilinx Vivado上建立一個HLS工程,然后定義SURF檢測的實體:

在本文的框架中提供了實體模板,方便程序員使用。其中hls int32為32位的整型,inout_pix為輸入和輸出緩存的首地址,byte_rdoffset為讀的偏移量,而byte_wroffset為寫的偏移量,rows和cols為圖片的行和列。最后,用C/C++編寫的SURF檢測模塊就完成了。

②在SURF檢測模塊中添加AXI4。檢測模板包含AXI4的接口,可以利用Vivado HLS提供的定義。

下面定義了AXI4-Lite的返回寄存器:

③優(yōu)化SURF檢測代碼,實現(xiàn)更好的并行度。軟件人員可以利用Vivado HLS提供的方法優(yōu)化他們的C/C++代碼,而更進一步的優(yōu)化則需要手動進行。

④SURF檢測模塊生成Pcore,由Vivado中的EDK將SURF代碼生成Pcore。

⑤將Pcore掛載在框架的FPGA端。將上述產(chǎn)生的Pcore掛載到本文框架的FPGA上。由于使用的是Spartan-6的FPGA開發(fā)板,所以采用的是Xilinx ISE。本文的框架在FPGA上是一個已經(jīng)設計好的工程,SURF算法的Pcore只需要選擇作為一個IP模塊,就可以很容易地連接到框架的一個固定接口上。

⑥生成配置FPGA的比特流,并且為上層用戶設計API。當將用戶的Pcore連接到FPGA的框架上后,整個系統(tǒng)可以合成一個比特流文件,用來配置FPGA。然后,按照第3部分來設計API,供上層用戶使用。

⑦最后一步在CPU上設計模塊,基于API在異構平臺之上構建整個應用程序。

3.3 實驗結果

首先對SURF在帶有本文框架的FPGA異構平臺、ARM嵌入式平臺和PC三個平臺上的執(zhí)行時間進行了比較,然后比較了SURF算法在帶和不帶有本文框架時,在FPGA上的資源消耗情況,最后驗證了圖片的檢測結果和帶框架的檢測結果的準確性。除了之前介紹的開發(fā)板信息,在實驗中,SURF檢測算法的工作頻率為62.5 MHz,PC的CPU為3.1 GHz AMD Athlon(tm)II X4 645,DDR3的頻率為1.6 GHz。SURF檢測算法的相關參數(shù)如表1所列。需要說明的是,在CPU中使用的是浮點型,而在FPGA中使用的是定點型。

表1 配置參數(shù)

3.3.1 運算時間

為了比較不同平臺上SURF算法的執(zhí)行時間,實驗用的是同一組圖片。圖4(a)所示是不同平臺和不同分辨率時的執(zhí)行時間,圖4(b)是放大后FPGA和PC的運算時間。從圖中可以看出,FPGA的運算速度最快,同時隨著圖片容量的增大,加速的效果越明顯,主要是因為并行計算時間的增加是線性的,這也反映了軟件人員使用FPGA的重要性。

SURF檢測算法在FPGA異構平臺上的總運行時間圖略——編者注,包括圖片從ARM到FPGA的傳輸時間、計算時間和最后把結果從FPGA傳回ARM的時間。從圖中可以看到,把圖片從ARM傳到FPGA是最耗時的。即使認為計算時間包含這3個部分,它的時間也是遠遠低于ARM的,如果在FPGA上直接加攝像頭捕捉圖片就可以減去從ARM到FPGA傳輸圖片的耗時。此外,要避免頻繁地重配FPGA,因為Spartan-6 XC6SLX150T的重配時間需要2 s左右。

圖4 不同平臺上SURF檢測執(zhí)行時間

3.3.2 資源消耗

帶本文框架和不帶本文框架時,SURF檢測算法的資源消耗情況圖略——編者注。從圖中可以看出,框架只占用了非常少的一部分資源,隨著FPGA集成度不斷增大,系統(tǒng)框架所帶來的資源消耗是可以容忍并且愿意使用的,因為框架可以極大方便程序員使用FPGA異構平臺。

3.3.3 檢測結果

圖5所示是帶框架的FPGA異構平臺的SURF檢測算法的檢測結果,顯示了帶框架后計算結果的準確性。雖然使用定點計算會導致計算結果與準確結果有一定偏差,但是通過調(diào)整閾值可以提高結果的準確性。

結 語

傳統(tǒng)的FPGA的開發(fā)方法,對于軟件程序員來說是非常困難的,尤其是當應用程序員對系統(tǒng)結構知識了解不多的時候。但是,應用程序員又最了解市場和用戶的需求,通用處理器領域,多層結構使應用程序員遠離了底層細節(jié),提高了生產(chǎn)力,縮短了研發(fā)到投放市場的時間。隨著集成度越來越高,FPGA可以容忍來自系統(tǒng)虛擬化的資源消耗,同時,FPGA也需要虛擬化技術來提高資源管理和生產(chǎn)力。本文設計的框架可以使得C/C++應用程序員更關注在FPGA和CPU上實現(xiàn)特定的功能。同時,框架集成到了商業(yè)工具鏈(如Xilinx Vivado)中,可以立即使用。一個軟件人員在包含此框架的基于FPGA的異構平臺上成功實現(xiàn)了一個常用的特征檢測算法,表明此框架是可用的。下一步,適合軟件人員的調(diào)試方案也將集成到此框架中,此外,其他虛擬化技術(如虛擬內(nèi)存、多片F(xiàn)PGA的分區(qū)),在LEAP和CoRAM中研究的一些內(nèi)容也會集成到這個框架中。

圖5 FPGA加速異構平臺的SURF檢測結果

編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www. mesnet.com.cn。

[1]J Wawrzynek M,Oskin C,Kozyrakis D,et al.RAMP:A Research Acceleratorfor Multiple Processors[C]//Technical Report,2006.

[2]U Vishkin.Is Multicore Hardware for General-purpose Parallel Process-ing Broken[J].Communications of ACM,2014, 57(4):35-39.

[3]C Pascoe,A Lawande,H Lam,et al.Recon gurable Supercomputing with Scalable Systolic Arrays and In Stream Control for Wavefront Genomics Processing[C]//Proceedings of International Conference on Engineering of Recon gurable Systems and Algorithms,2010.

[4]X Tian,K Benkrid.High-Performance Quasi-Monte Carlo Financial Simulation:FPGA vs.GPP vs.GPU,ACM Trans. Recong.Techn.Syst.3,4,Article 26(November 2010), 22 pages.

[5]Xilinx.Zynq-7000 SoC[EB/OL].[2016-05].http://www.xilinx.com/products/silicon-devices/soc/zynq-7000/index.htm.

[6]G Martin,G Smith.High-Level Synthesis:Past,Present,and Future[J].IEEE Design and Test of Computers,2009:18-24.

[7]E S Chung,P A Milder,J C Hoe,et al.Single-Chip Heterogeneous Computing:Does the Future Include Custom Logic, FPGAs and GPGPUs[C]//Proceedings of IEEE/ACM International Symposium on Microarchitecture,2010:225-236.

[8]E S Chungy,J D Davisy,J Lee.LINQits:Big Data on Little Clients[C]//Proceedings of ACM/IEEE International Symposium on Computer Architecture,ISCA 2013.

[9]Xilinx.Vivado Design Suite[EB/OL].[2016-05].http:// www.xilinx.com/products/designtools/vivado/.

[10]Altera.Altera SDK for OpenCL Programming Guide[EB/ OL].[2016-05].http://http://www.altera.com/literature/hb/opencl-sdk/.

[11]A Parashar,M Adler,K E Fleming,et al.LEAP:A Virtual Platform Architecture for FPGAs[EB/OL].[2016-05].http://asim.csail.mit.edu/redmine/attachments/76/.

[12]S T Yamazaki,J C Hoe.PyCoRAM:Yet Another Implementation of CoRAM Memory Architecture for Modern FPGA-based Computing[C]//3rd Workshop on the Intersections of Computer Architecture and Recon gurable Logic,2013.

[13]H K H So,R Brodersen.A Uni?ed Hardware/Software Runtime Environment for FPGA-Based Recon?gurable Computers using BORPH[J].ACM Transactions on Embedded Computing Systems(TECS),2008,7(2).

[14]R Kirchgessner,A D George,H Lam.Recon gurable Computing Middleware for Application Portability and Productivity[C]//Proceedings of IEEE International Conference on Application-speci c Systems,Architectures and Processors, 2013:211-218.

[15]H Bay,T Tuytelaars,L V Gool.Surf:Speeded up robust features[C]//Proceedings of European Conference on Computer Vision.

[16]Z Fang,D Yang,W Zhang,et al.A Comprehensive Analysis and Parallelization of an Image Retrieval Algorithm[C]// Proceedings of IEEE International Symposium on Performance Analysis of Systems and Software,2011.

沈鎮(zhèn)(碩士研究生),主要研究方向為嵌入式系統(tǒng)、圖像處理;柴志雷(副教授),主要研究方向為嵌入式系統(tǒng)設計技術、機器視覺、FPGA操作系統(tǒng)等;柴鎮(zhèn)(碩士研究生),主要研究方向為嵌入式系統(tǒng)、可重構計算。

A Framework for Application Programmers to Design FPGA-based Systems※

Shen Zhen,Chai Zhilei,Chai Zhen
(School of Internet of Things,Jiangnan University,Wuxi 214122,China)

In the paper,the Open HEC(Open Framework for High-Effciency Computing)framework is proposed to provide a design framework for application-level software programmers to use FPGA-based platform.It frees users from hardware and architectural details to let them focus more on algorithms/applications.This framework is integrated with the commercial Xilinx ISE/Vivado to make it to be used immediately.After implementing a widely-used feature detection algorithm on Open HEC from the perspective of software programmers,it shows that this framework is applicable for application programmers with little hardware knowledge.

FPGA;embedded system;feature detection;application program

TP368

:A

薛士然

2016-05-24)

猜你喜歡
用戶檢測設計
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
小波變換在PCB缺陷檢測中的應用
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 日本在线欧美在线| 激情综合网址| 国产福利一区二区在线观看| 欧美区国产区| 国产成人AV综合久久| 国产午夜福利在线小视频| 黄色网页在线观看| 99偷拍视频精品一区二区| 在线人成精品免费视频| 久久综合九九亚洲一区 | 九色综合伊人久久富二代| 国产一区二区三区免费观看| 亚洲青涩在线| 色婷婷狠狠干| 99久久无色码中文字幕| 精品撒尿视频一区二区三区| 成人噜噜噜视频在线观看| 免费毛片网站在线观看| 亚洲欧美一区二区三区麻豆| 有专无码视频| 日韩不卡高清视频| 国产高清精品在线91| 国产成人久视频免费| 国产精品欧美日本韩免费一区二区三区不卡| 欧美有码在线观看| 亚洲欧美自拍视频| 久久成人国产精品免费软件| 老熟妇喷水一区二区三区| 国产69精品久久久久孕妇大杂乱 | 萌白酱国产一区二区| a毛片基地免费大全| 欧美日韩激情在线| 大乳丰满人妻中文字幕日本| 日韩久久精品无码aV| 国产一区二区三区在线精品专区| 天天综合色网| 女人18毛片一级毛片在线| 日韩欧美视频第一区在线观看| 999精品视频在线| 亚洲人成在线精品| 久久这里只有精品66| 亚洲中文字幕在线一区播放| 免费无码AV片在线观看国产| 特级aaaaaaaaa毛片免费视频| 久久久久国色AV免费观看性色| 成人无码一区二区三区视频在线观看 | 九色视频一区| 凹凸国产分类在线观看| 亚洲精品动漫| 日本在线国产| 国产精品视频白浆免费视频| 国产精品七七在线播放| 97视频在线观看免费视频| 玩两个丰满老熟女久久网| 亚洲精品视频免费看| 思思热在线视频精品| 3344在线观看无码| 爽爽影院十八禁在线观看| 国产三级精品三级在线观看| 日韩色图区| 自拍欧美亚洲| 四虎精品免费久久| 亚洲国产AV无码综合原创| 亚洲国产成人麻豆精品| 亚洲免费播放| 丝袜美女被出水视频一区| 中文字幕在线观看日本| 免费无码AV片在线观看国产| 亚洲三级色| 午夜福利视频一区| 欧美日韩在线亚洲国产人| 日韩欧美高清视频| 2020最新国产精品视频| 天天综合天天综合| 国产成人精品高清不卡在线| 一级毛片高清| 乱码国产乱码精品精在线播放| 亚洲美女视频一区| 国产自产视频一区二区三区| 乱码国产乱码精品精在线播放| 亚洲精品午夜天堂网页| 国产一区二区三区精品欧美日韩|