91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>【ZYNQ Ultrascale+ MPSOC FPGA教程】第八章FPGA片內(nèi)FIFO讀寫(xiě)測(cè)試實(shí)驗(yàn)

【ZYNQ Ultrascale+ MPSOC FPGA教程】第八章FPGA片內(nèi)FIFO讀寫(xiě)測(cè)試實(shí)驗(yàn)

2021-02-02 | pdf | 708.05KB | 次下載 | 3積分

資料介紹

作者: ALINX
* 本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。

適用于板卡型號(hào):
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

實(shí)驗(yàn)Vivado工程為“fifo_test”。

FIFO是FPGA應(yīng)用當(dāng)中非常重要的模塊,廣泛用于數(shù)據(jù)的緩存,跨時(shí)鐘域數(shù)據(jù)處理等。學(xué)好FIFO是FPGA的關(guān)鍵,靈活運(yùn)用好FIFO是一個(gè)FPGA工程師必備的技能。本章主要介紹利用XILINX提供的FIFO IP進(jìn)行讀寫(xiě)測(cè)試。

1.實(shí)驗(yàn)原理

FIFO: First in, First out代表先進(jìn)的數(shù)據(jù)先出,后進(jìn)的數(shù)據(jù)后出。Xilinx在VIVADO里為我們已經(jīng)提供了FIFO的IP核, 我們只需通過(guò)IP核例化一個(gè)FIFO,根據(jù)FIFO的讀寫(xiě)時(shí)序來(lái)寫(xiě)入和讀取FIFO中存儲(chǔ)的數(shù)據(jù)。

其實(shí)FIFO是也是在RAM的基礎(chǔ)上增加了許多功能,F(xiàn)IFO的典型結(jié)構(gòu)如下,主要分為讀和寫(xiě)兩部分,另外就是狀態(tài)信號(hào),空和滿(mǎn)信號(hào),同時(shí)還有數(shù)據(jù)的數(shù)量狀態(tài)信號(hào),與RAM最大的不同是FIFO沒(méi)有地址線,不能進(jìn)行隨機(jī)地址讀取數(shù)據(jù),什么是隨機(jī)讀取數(shù)據(jù)呢,也就是可以任意讀取某個(gè)地址的數(shù)據(jù)。而FIFO則不同,不能進(jìn)行隨機(jī)讀取,這樣的好處是不用頻繁地控制地址線。

雖然用戶(hù)看不到地址線,但是在FIFO內(nèi)部還是有地址的操作的,用來(lái)控制RAM的讀寫(xiě)接口。其地址在讀寫(xiě)操作時(shí)如下圖所示,其中深度值也就是一個(gè)FIFO里最大可以存放多少個(gè)數(shù)據(jù)。初始狀態(tài)下,讀寫(xiě)地址都為0,在向FIFO中寫(xiě)入一個(gè)數(shù)據(jù)后,寫(xiě)地址加1,從FIFO中讀出一個(gè)數(shù)據(jù)后,讀地址加1。此時(shí)FIFO的狀態(tài)即為空,因?yàn)閷?xiě)了一個(gè)數(shù)據(jù),又讀出了一個(gè)數(shù)據(jù)。

可以把FIFO想象成一個(gè)水池,寫(xiě)通道即為加水,讀通道即為放水,假如不間斷的加水和放水,如果加水速度比放水速度快,那么FIFO就會(huì)有滿(mǎn)的時(shí)候,如果滿(mǎn)了還繼續(xù)加水就會(huì)溢出overflow,如果放水速度比加水速度快,那么FIFO就會(huì)有空的時(shí)候,所以把握好加水與放水的時(shí)機(jī)和速度,保證水池一直有水是一項(xiàng)很艱巨的任務(wù)。也就是判斷空與滿(mǎn)的狀態(tài),擇機(jī)寫(xiě)數(shù)據(jù)或讀數(shù)據(jù)。

根據(jù)讀寫(xiě)時(shí)鐘,可以分為同步FIFO(讀寫(xiě)時(shí)鐘相同)和異步FIFO(讀寫(xiě)時(shí)鐘不同)。同步FIFO控制比較簡(jiǎn)單,不再介紹,本節(jié)實(shí)驗(yàn)主要介紹異步FIFO的控制,其中讀時(shí)鐘為75MHz,寫(xiě)時(shí)鐘為100MHz。實(shí)驗(yàn)中會(huì)通過(guò)VIVADO集成的在想邏輯分析儀ila,我們可以觀察FIFO的讀寫(xiě)時(shí)序和從FIFO中讀取的數(shù)據(jù)。

2. 創(chuàng)建Vivado工程
2.1 添加FIFO IP核

在添加FIFO IP之前先新建一個(gè)fifo_test的工程, 然后在工程中添加FIFO IP,方法如下:

2.1.1點(diǎn)擊下圖中IP Catalog,在右側(cè)彈出的界面中搜索fifo,找到FIFO Generator,雙擊打開(kāi)。

2.1.2 彈出的配置頁(yè)面中,這里可以選擇讀寫(xiě)時(shí)鐘分開(kāi)還是用同一個(gè),一般來(lái)講我們使用FIFO為了緩存數(shù)據(jù),通常兩邊的時(shí)鐘速度是不一樣的。所以獨(dú)立時(shí)鐘是最常用的,我們這里選擇“Independent Clocks Block RAM”,然后點(diǎn)擊“Next”到下一個(gè)配置頁(yè)面。

2.1.3 切換到Native Ports欄目下,選擇數(shù)據(jù)位寬16;FIFO深選擇512,實(shí)際使用大家根據(jù)需要自行設(shè)置就可以。Read Mode有兩種方式,一個(gè)Standard FIFO,也就是平時(shí)常見(jiàn)的FIFO,數(shù)據(jù)滯后于讀信號(hào)一個(gè)周期,還有一種方式為First Word Fall Through,數(shù)據(jù)預(yù)取模式,簡(jiǎn)稱(chēng)FWFT模式。也就是FIFO會(huì)預(yù)先取出一個(gè)數(shù)據(jù),當(dāng)讀信號(hào)有效時(shí),相應(yīng)的數(shù)據(jù)也有效。我們首先做標(biāo)準(zhǔn)FIFO的實(shí)驗(yàn)。

2.1.4 切換到Data Counts欄目下,使能Write Data Count(已經(jīng)FIFO寫(xiě)入多少數(shù)據(jù))和Read Data Count(FIFO中有多少數(shù)據(jù)可以讀),這樣我們可以通過(guò)這兩個(gè)值來(lái)看FIFO內(nèi)部的數(shù)據(jù)多少。點(diǎn)擊OK,Generate生成FIFO IP。

2.2 FIFO的端口定義與時(shí)序

FIFO的數(shù)據(jù)寫(xiě)入和讀出都是按時(shí)鐘的上升沿操作的,當(dāng)wr_en信號(hào)為高時(shí)寫(xiě)入FIFO數(shù)據(jù),當(dāng)almost_full信號(hào)有效時(shí),表示FIFO只能再寫(xiě)入一個(gè)數(shù)據(jù),一旦寫(xiě)入一個(gè)數(shù)據(jù)了,full信號(hào)就會(huì)拉高,如果在full的情況下wr_en仍然有效,也就是繼續(xù)向FIFO寫(xiě)數(shù)據(jù),則FIFO的overflow就會(huì)有效,表示溢出。

標(biāo)準(zhǔn)FIFO寫(xiě)時(shí)序

當(dāng)rd_en信號(hào)為高時(shí)讀FIFO數(shù)據(jù),數(shù)據(jù)在下個(gè)周期有效。valid為數(shù)據(jù)有效信號(hào),almost_empty表示還有一個(gè)數(shù)據(jù)讀,當(dāng)再讀一個(gè)數(shù)據(jù),empty信號(hào)有效,如果繼續(xù)讀,則underflow有效,表示下溢,此時(shí)讀出的數(shù)據(jù)無(wú)效。

標(biāo)準(zhǔn)FIFO讀時(shí)序

而從FWFT模式讀數(shù)據(jù)時(shí)序圖可以看出,rd_en信號(hào)有效時(shí),有效數(shù)據(jù)D0已經(jīng)在數(shù)據(jù)線上準(zhǔn)備好有效了,不會(huì)再延后一個(gè)周期。這就是與標(biāo)準(zhǔn)FIFO的不同之處。

FWFT FIFO讀時(shí)序

關(guān)于FIFO的詳細(xì)內(nèi)容可參考pg057文檔,可在xilinx官網(wǎng)下載。

3. FIFO測(cè)試程序編寫(xiě)

我們按照異步FIFO進(jìn)行設(shè)計(jì),用PLL產(chǎn)生出兩路時(shí)鐘,分別是100MHz和75MHz,用于寫(xiě)時(shí)鐘和讀時(shí)鐘,也就是寫(xiě)時(shí)鐘頻率高于讀時(shí)鐘頻率。

`timescale1ns/1ps
//////////////////////////////////////////////////////////////////////////////////
module fifo_test
	(
		input		clk,		//25MHz時(shí)鐘
		input		rst_n	//復(fù)位信號(hào),低電平有效	
	);


reg	[15:0]		w_data			;			//FIFO寫(xiě)數(shù)據(jù)
wire			wr_en			;			//FIFO寫(xiě)使能
wire			rd_en			;			//FIFO讀使能
wire[15:0]		r_data			;			//FIFO讀數(shù)據(jù)
wire			full			;			//FIFO滿(mǎn)信號(hào)
wire			empty			;			//FIFO空信號(hào)
wire[8:0]		rd_data_count	;			//可讀數(shù)據(jù)數(shù)量	
wire[8:0]		wr_data_count	;			//已寫(xiě)入數(shù)據(jù)數(shù)量
	
wire				clk_100M 		;			//PLL產(chǎn)生100MHz時(shí)鐘
wire				clk_75M 		;			//PLL產(chǎn)生100MHz時(shí)鐘
wire				locked 			;			//PLL lock信號(hào),可作為系統(tǒng)復(fù)位信號(hào),高電平表示lock住
wire				fifo_rst_n 		;			//fifo復(fù)位信號(hào), 低電平有效

wire				wr_clk 			;			//寫(xiě)FIFO時(shí)鐘
wire				rd_clk 			;			//讀FIFO時(shí)鐘
reg	[7:0]			wcnt 			;			//寫(xiě)FIFO復(fù)位后等待計(jì)數(shù)器
reg	[7:0]			rcnt 			;			//讀FIFO復(fù)位后等待計(jì)數(shù)器

wire               clkbuf          ;

   BUFG BUFG_inst (
.O(clkbuf),// 1-bit output: Clock output.
.I(clk)// 1-bit input: Clock input.
);


//例化PLL,產(chǎn)生100MHz和75MHz時(shí)鐘
clk_wiz_0 fifo_pll
(
// Clock out ports
.clk_out1(clk_100M),		// output clk_out1
.clk_out2(clk_75M),		// output clk_out2
// Status and control signals
.reset(~rst_n),				// input reset
.locked(locked),		// output locked
// Clock in ports
.clk_in1(clkbuf)					// input clk_in1
);			

assign fifo_rst_n 	= locked	;	//將PLL的LOCK信號(hào)賦值給fifo的復(fù)位信號(hào)
assign wr_clk 		= clk_100M 	;	//將100MHz時(shí)鐘賦值給寫(xiě)時(shí)鐘
assign rd_clk 		= clk_75M 	;	//將75MHz時(shí)鐘賦值給讀時(shí)鐘


/* 寫(xiě)FIFO狀態(tài)機(jī) */
localparam      W_IDLE      =1	;
localparam      W_FIFO     	=2	;

reg[2:0]  write_state;
reg[2:0]  next_write_state;

always@(posedge wr_clk ornegedge fifo_rst_n)
begin
	if(!fifo_rst_n)
		write_state <= W_IDLE;
	else
		write_state <= next_write_state;
end

always@(*)
begin
	case(write_state)
		W_IDLE:
			begin
				if(wcnt ==8'd79)//復(fù)位后等待一定時(shí)間,safety circuit模式下的最慢時(shí)鐘60個(gè)周期
					next_write_state <= W_FIFO;
				else
					next_write_state <= W_IDLE;
			end
		W_FIFO:
			next_write_state <= W_FIFO;			//一直在寫(xiě)FIFO狀態(tài)
		default:
			next_write_state <= W_IDLE;
	endcase
end
//在IDLE狀態(tài)下,也就是復(fù)位之后,計(jì)數(shù)器計(jì)數(shù)
always@(posedge wr_clk ornegedge fifo_rst_n)
begin
	if(!fifo_rst_n)
		wcnt <=8'd0;
	elseif(write_state == W_IDLE)
		wcnt <= wcnt +1'b1;
	else
		wcnt <=8'd0;
end
//在寫(xiě)FIFO狀態(tài)下,如果不滿(mǎn)就向FIFO中寫(xiě)數(shù)據(jù)
assign wr_en =(write_state == W_FIFO)?~full :1'b0;
//在寫(xiě)使能有效情況下,寫(xiě)數(shù)據(jù)值加1
always@(posedge wr_clk ornegedge fifo_rst_n)
begin
	if(!fifo_rst_n)
		w_data <=16'd1;
	elseif(wr_en)
		w_data <= w_data +1'b1;
end

/* 讀FIFO狀態(tài)機(jī) */

localparam      R_IDLE      =1	;
localparam      R_FIFO     	=2	;
reg[2:0]  read_state;
reg[2:0]  next_read_state;

///產(chǎn)生FIFO讀的數(shù)據(jù)
always@(posedge rd_clk ornegedge fifo_rst_n)
begin
	if(!fifo_rst_n)
		read_state <= R_IDLE;
	else
		read_state <= next_read_state;
end

always@(*)
begin
	case(read_state)
		R_IDLE:
			begin
				if(rcnt ==8'd59)	//復(fù)位后等待一定時(shí)間,safety circuit模式下的最慢時(shí)鐘60個(gè)周期
					next_read_state <= R_FIFO;
				else
					next_read_state <= R_IDLE;
			end
		R_FIFO:	
			next_read_state <= R_FIFO ;			//一直在讀FIFO狀態(tài)
		default:
			next_read_state <= R_IDLE;
	endcase
end

//在IDLE狀態(tài)下,也就是復(fù)位之后,計(jì)數(shù)器計(jì)數(shù)
always@(posedge rd_clk ornegedge fifo_rst_n)
begin
	if(!fifo_rst_n)
		rcnt <=8'd0;
	elseif(write_state == W_IDLE)
		rcnt <= rcnt +1'b1;
	else
		rcnt <=8'd0;
end
//在讀FIFO狀態(tài)下,如果不空就從FIFO中讀數(shù)據(jù)
assign rd_en =(read_state == R_FIFO)?~empty :1'b0;

//-----------------------------------------------------------
//實(shí)例化FIFO
fifo_ip fifo_ip_inst 
(
.rst            (~fifo_rst_n    	),// input rst
.wr_clk         (wr_clk          	),// input wr_clk
.rd_clk         (rd_clk          	),// input rd_clk
.din            (w_data       	),// input [15 : 0] din
.wr_en          (wr_en        	),// input wr_en
.rd_en          (rd_en        	),// input rd_en
.dout           (r_data       	),// output [15 : 0] dout
.full           (full         	),// output full
.empty          (empty        	),// output empty
.rd_data_count  (rd_data_count	),// output [8 : 0] rd_data_count
.wr_data_count  (wr_data_count	)// output [8 : 0] wr_data_count
);

//寫(xiě)通道邏輯分析儀
ila_m0 ila_wfifo (
	.clk		(wr_clk			),
	.probe0		(w_data			),	
	.probe1		(wr_en			),	
	.probe2		(full			),		
	.probe3		(wr_data_count	)
);
//讀通道邏輯分析儀
ila_m0 ila_rfifo (
	.clk		(rd_clk			),
	.probe0		(r_data			),	
	.probe1		(rd_en			),	
	.probe2		(empty			),		
	.probe3		(rd_data_count	)
);
	
endmodule

在程序中采用PLL的lock信號(hào)作為fifo的復(fù)位,同時(shí)將100MHz時(shí)鐘賦值給寫(xiě)時(shí)鐘,75MHz時(shí)鐘賦值給讀時(shí)鐘。

有一點(diǎn)需要注意的是,F(xiàn)IFO設(shè)置默認(rèn)為采用safety circuit,此功能是保證到達(dá)內(nèi)部RAM的輸入信號(hào)是同步的,在這種情況下,如果異步復(fù)位后,則需要等待60個(gè)最慢時(shí)鐘周期,在本實(shí)驗(yàn)中也就是75MHz的60個(gè)周期,那么100MHz時(shí)鐘大概需要(100/75)x60=80個(gè)周期。

因此在寫(xiě)狀態(tài)機(jī)中,等待80個(gè)周期進(jìn)入寫(xiě)FIFO狀態(tài)

在讀狀態(tài)機(jī)中,等待60個(gè)周期進(jìn)入讀狀態(tài)

如果FIFO不滿(mǎn),就一直向FIFO寫(xiě)數(shù)據(jù)

如果FIFO不空,就一直從FIFO讀數(shù)據(jù)

例化兩個(gè)邏輯分析儀,分別連接寫(xiě)通道和讀通道的信號(hào)

4. 仿真

以下為仿真結(jié)果,可以看到寫(xiě)使能wr_en有效后開(kāi)始寫(xiě)數(shù)據(jù),初始值為0001,從開(kāi)始寫(xiě)到empty不空,是需要一定周期的,因?yàn)閮?nèi)部還要做同步處理。在不空后,開(kāi)始讀數(shù)據(jù),讀出的數(shù)據(jù)相對(duì)于rd_en滯后一個(gè)周期。

在后面可以看到如果FIFO滿(mǎn)了,根據(jù)程序的設(shè)計(jì),滿(mǎn)了就不向FIFO寫(xiě)數(shù)據(jù)了,wr_en也就拉低了。為什么會(huì)滿(mǎn)呢,就是因?yàn)閷?xiě)時(shí)鐘比讀時(shí)鐘快。如果將寫(xiě)時(shí)鐘與讀時(shí)鐘調(diào)換,也就是讀時(shí)鐘快,就會(huì)出現(xiàn)讀空的情況,大家可以試一下。

如果將FIFO的Read Mode改成First Word Fall Through

仿真結(jié)果如下,可以看到rd_en有效的時(shí)候數(shù)據(jù)也有效,沒(méi)有相差一個(gè)周期

5. 板上驗(yàn)證

生成好bit文件,下載bit文件,會(huì)出現(xiàn)兩個(gè)ila,先來(lái)看寫(xiě)通道的,可以看到full信號(hào)為高電平時(shí),wr_en為低電平,不再向里面寫(xiě)數(shù)據(jù)。

而讀通道也與仿真一致

如果以rd_en上升沿作為觸發(fā)條件,點(diǎn)擊運(yùn)行,然后按下復(fù)位,也就是我們綁定的PL KEY1,會(huì)出現(xiàn)下面的結(jié)果,與仿真一致,標(biāo)準(zhǔn)FIFO模式下,數(shù)據(jù)滯后rd_en一個(gè)周期。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1DC電源插座圖紙
  2. 0.67 MB   |  3次下載  |  免費(fèi)
  3. 2AN-1267: 使用ADSP-CM408F ADC控制器的電機(jī)控制反饋采樣時(shí)序
  4. 1.41MB   |  3次下載  |  免費(fèi)
  5. 3AN158 GD32VW553 Wi-Fi開(kāi)發(fā)指南
  6. 1.51MB   |  2次下載  |  免費(fèi)
  7. 4AN148 GD32VW553射頻硬件開(kāi)發(fā)指南
  8. 2.07MB   |  1次下載  |  免費(fèi)
  9. 5AN111-LTC3219用戶(hù)指南
  10. 84.32KB   |  次下載  |  免費(fèi)
  11. 6AN153-用于電源系統(tǒng)管理的Linduino
  12. 1.38MB   |  次下載  |  免費(fèi)
  13. 7AN-283: Σ-Δ型ADC和DAC[中文版]
  14. 677.86KB   |  次下載  |  免費(fèi)
  15. 8SM2018E 支持可控硅調(diào)光線性恒流控制芯片
  16. 402.24 KB  |  次下載  |  免費(fèi)

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  450次下載  |  免費(fèi)
  3. 2免費(fèi)開(kāi)源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  138次下載  |  1 積分
  5. 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
  6. 0.10 MB   |  130次下載  |  免費(fèi)
  7. 4使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
  8. 2.96 MB   |  44次下載  |  免費(fèi)
  9. 5美的電磁爐維修手冊(cè)大全
  10. 1.56 MB   |  24次下載  |  5 積分
  11. 6如何正確測(cè)試電源的紋波
  12. 0.36 MB   |  18次下載  |  免費(fèi)
  13. 7感應(yīng)筆電路圖
  14. 0.06 MB   |  10次下載  |  免費(fèi)
  15. 8萬(wàn)用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
主站蜘蛛池模板: 日韩毛片网 | 性夜影院爽黄a爽免费看网站 | dvd碟片色爱 | 一级在线观看视频 | 黄色片免费看视频 | 免费观看老外特级毛片 | 六月丁香中文字幕 | 日本www色视频 | 国产成人啪精品午夜在线观看 | 特黄特色的大片观看免费视频 | a级毛片毛片免费很很综合 a级男女性高爱潮高清试 | 99精品国产第一福利网站 | 色综合成人 | 五月婷婷激情五月 | 国产精品资源网站在线观看 | 天堂在线最新资源 | 黄色avav| 午夜色a大片在线观看免费 午夜色大片在线观看 | 色五月激情五月 | 日本特级视频 | 久久综合九色综合欧美狠狠 | 免费色在线 | 国产男人女人做性全过程视频 | 五月天婷婷导航 | 天天做天天爱天天综合网 | 97天天操 | 伊人久久大香线蕉电影院 | 天天操狠狠操 | 全免费一级毛片在线播放 | 欧美成人鲁丝片在线观看 | 亚洲成a人片毛片在线 | 日本一区二区视频在线观看 | 国产成人精品免费视频大全可播放的 | 国产女人和拘做受视频免费 | 在线亚洲精品中文字幕美乳 | 99热这里精品 | 亚洲欧美一区二区三区另类 | 美女被免费视频网站九色 | 天天操天天操天天干 | 国产大乳喷奶水在线看 | 91日本在线观看亚洲精品 |