亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rt_window_monitor.v

?? FPGA之間的LVDS傳輸
?? V
?? 第 1 頁 / 共 2 頁
字號:
///////////////////////////////////////////////////////////////////////////////
//
//    File Name:  RT_WINDOW_MONITOR.v
//      Version:  1.0
//         Date:  08/07/06
//        Model:  Channel Alignment Module
//
//      Company:  Xilinx, Inc.
//  Contributor:  APD Applications Group
//
//   Disclaimer:  XILINX IS PROVIDING THIS DESIGN, CODE, OR
//                INFORMATION "AS IS" SOLELY FOR USE IN DEVELOPING
//                PROGRAMS AND SOLUTIONS FOR XILINX DEVICES.  BY
//                PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
//                ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,
//                APPLICATION OR STANDARD, XILINX IS MAKING NO
//                REPRESENTATION THAT THIS IMPLEMENTATION IS FREE
//                FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE
//                RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY
//                REQUIRE FOR YOUR IMPLEMENTATION.  XILINX
//                EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH
//                RESPECT TO THE ADEQUACY OF THE IMPLEMENTATION,
//                INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
//                REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE
//                FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES
//                OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
//                PURPOSE.
//
//                (c) Copyright 2006 Xilinx, Inc.
//                All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
// 
// Summary:
//
// The RT_WINDOW_MONITOR module adjusts the data sampling window in real-time
// to constantly keep the sampling point at the center of the data eye. To do this,
// every data channel has two parallel (and ideally identical) paths in the receiver.
// One of the paths is the master path carrying user data; the other path is a monitor
// that can be interrogated to determine the position of the sampling point. If the monitor
// shows that the window has drifted toward the hold edge, then the master can be 
// adjusted accordingly.  
//
//----------------------------------------------------------------

module RT_WINDOW_MONITOR
	(
	CLOCK,
	RESET,
	TRAINING_DONE,
	START,
	DATA_MASTER,
	DATA_MONITOR,
	
	INC_MONITOR,
	ICE_MONITOR,
	INC_DATABUS,
	ICE_DATABUS,
	
	DATA_ALIGNED_RT
	);

input		CLOCK;			//RECEIVER CLOCK DOMAIN
input		RESET;			//RESET
input		START;			//FLAG INDICATING THAT CHANNEL SWITCH HAS BEEN MADE
input		TRAINING_DONE;		//FLAG INDICATING THAT INITIAL ALIGNMENT IS COMPLETE
input	[5:0]	DATA_MASTER;		//USER DATA CHANNEL
input	[5:0]	DATA_MONITOR;		//MONITOR DATA CHANNEL

output		INC_MONITOR;		//INCREMENT/DECREMENT DELAY CONTROL FOR MONITOR DATA CHANNEL 
output		ICE_MONITOR;            //INCREMENT/DECREMENT DELAY CONTROL FOR MONITOR DATA CHANNEL
output		INC_DATABUS;		//INCREMENT/DECREMENT DELAY CONTROL FOR USER DATA CHANNEL
output		ICE_DATABUS;            //INCREMENT/DECREMENT DELAY CONTROL FOR USER DATA CHANNEL
output		DATA_ALIGNED_RT;	//FLAG INDICATING THAT PROCEDURE ON CURRENT CHANNEL COMPLETED 

wire	[6:0]	COUNT_VALUE0;
wire	[6:0]	COUNT_VALUE1;
wire	[4:0]	SAMPLE_WINDOW;		//{-2, -1, CENTER, +1, +2}, WHERE "0" IS ERRORS AND "1" IS ERROR FREE AT THAT POSITION
wire		DATA_ALIGNED_RTx;	

reg	[4:0] 	CURRENT_STATE;
reg	[4:0]	NEXT_STATE;
reg		INC_MONITOR;
reg		ICE_MONITOR;
reg		INC_DATABUS;	
reg		ICE_DATABUS;
reg		COUNT0; 
reg		UD0; 
reg		COUNT1; 
reg		UD1; 
reg	[4:0]	STORE_STATUS;
reg		STATUS;


parameter	INIT		= 5'b00000;
parameter	WAIT128		= 5'b00001;
parameter	COMPARE_0	= 5'b00010;
parameter	RECORD_0_0	= 5'b00011;
parameter	RECORD_1_0	= 5'b00100;
parameter	DEC_1_0		= 5'b00101;
parameter	WAIT7_0		= 5'b00110;
parameter	COMPARE_MINUS1	= 5'b00111;
parameter	RECORD_0_1	= 5'b01000;
parameter	RECORD_1_1	= 5'b01001;
parameter	DEC_1_1		= 5'b01010;
parameter	WAIT7_1		= 5'b01011;
parameter	COMPARE_MINUS2	= 5'b01100;
parameter	RECORD_0_2	= 5'b01101;
parameter	RECORD_1_2	= 5'b01110;
parameter	INC_3		= 5'b01111;
parameter	WAIT7_2		= 5'b10000;
parameter	COMPARE_PLUS1	= 5'b10001;
parameter	RECORD_0_3	= 5'b10010;
parameter	RECORD_1_3	= 5'b10011;
parameter	INC_1		= 5'b10100;
parameter	WAIT7_3		= 5'b10101;
parameter	COMPARE_PLUS2	= 5'b10110;
parameter	RECORD_0_4	= 5'b10111;
parameter	RECORD_1_4	= 5'b11000;
parameter	IDLE		= 5'b11001;
parameter	BEGIN_ADJUST	= 5'b11010; 
parameter	INC_ALL		= 5'b11011;
parameter	DEC_ALL		= 5'b11100;
parameter	DEC_2		= 5'b11101;
parameter	DONE		= 5'b11110;

assign 		DATA_ALIGNED_RTx = CURRENT_STATE[4] & CURRENT_STATE[3] & CURRENT_STATE[2] & CURRENT_STATE[1] & ~CURRENT_STATE[0];

FDR count_reg(.Q(DATA_ALIGNED_RT), .C(CLOCK), .D(DATA_ALIGNED_RTx), .R(RESET));
count_to_128 counter0(.clk(CLOCK), .rst(RESET), .count(COUNT0), .ud(UD0), .counter_value(COUNT_VALUE0));
count_to_128 counter1(.clk(CLOCK), .rst(RESET), .count(COUNT1), .ud(UD1), .counter_value(COUNT_VALUE1));

FDRE bit2(.Q(SAMPLE_WINDOW[0]), .C(CLOCK), .CE(STORE_STATUS[0]), .D(STATUS), .R(RESET));
FDRE bit1(.Q(SAMPLE_WINDOW[1]), .C(CLOCK), .CE(STORE_STATUS[1]), .D(STATUS), .R(RESET));
FDRE bit0(.Q(SAMPLE_WINDOW[2]), .C(CLOCK), .CE(STORE_STATUS[2]), .D(STATUS), .R(RESET));
FDRE bitN1(.Q(SAMPLE_WINDOW[3]), .C(CLOCK), .CE(STORE_STATUS[3]), .D(STATUS), .R(RESET));
FDRE bitN2(.Q(SAMPLE_WINDOW[4]), .C(CLOCK), .CE(STORE_STATUS[4]), .D(STATUS), .R(RESET));

//CURRENT STATE LOGIC
always@(posedge CLOCK or posedge RESET)
begin
if(RESET == 1'b1)
	CURRENT_STATE = 5'b00000;
else
	CURRENT_STATE = NEXT_STATE;
end

//NEXT STATE LOGIC
//NOTE: DATA_MONITOR IS INVERTED WITH RESPECT TO DATA_MASTER, SO DURING COMPARISONS
//IN THE NEXT STATE LOGIC, DATA_MONITOR IS ALWAYS USED AS (~DATA_MONITOR) 
always@(CURRENT_STATE or DATA_MASTER or DATA_MONITOR or START or COUNT_VALUE0 or COUNT_VALUE1 or SAMPLE_WINDOW or TRAINING_DONE)
begin
	case (CURRENT_STATE)
	
	INIT:		begin					//REMAIN HERE UNTIL TRAINING COMPLETES
			if (TRAINING_DONE == 1'b0)
				NEXT_STATE <= INIT;
			else if (START == 1'b0)
				NEXT_STATE <= WAIT128;
			else
				NEXT_STATE <= INIT;
			end
	
	WAIT128:	begin					//WAIT 128 CYCLES BEFORE BEGINNING COMPARISON
			if (COUNT_VALUE0 > 7'b1111100)
				NEXT_STATE <= COMPARE_0;
			else
				NEXT_STATE <= WAIT128;
			end 	
	
	COMPARE_0:	begin					//COMPARE THE INITIAL POSITION (0)
			if (DATA_MASTER != (~DATA_MONITOR))
				NEXT_STATE <= RECORD_0_0;
			else
			if (COUNT_VALUE1 < 7'b1111110)
				NEXT_STATE <= COMPARE_0; 
			else
			if (DATA_MASTER == (~DATA_MONITOR))
				NEXT_STATE <= RECORD_1_0;
			else	
				NEXT_STATE <= RECORD_0_0;
			end
	
	RECORD_0_0:	NEXT_STATE <= DEC_1_0;			//INITIAL POSITION HAD ERRORS
	RECORD_1_0:	NEXT_STATE <= DEC_1_0;			//INITIAL POSITION WAS ERROR FREE
	
	DEC_1_0:	NEXT_STATE <= WAIT7_0;			//DECREMENT THE MONITOR TO ONE IDELAY TAP LESS (-1)
	
	WAIT7_0:	begin					//WAIT FOR LATENCY TO SETTLE
			if (COUNT_VALUE0 > 7'b0000111)
				NEXT_STATE <= COMPARE_MINUS1;
			else
				NEXT_STATE <= WAIT7_0;
			end

	COMPARE_MINUS1:	begin					//COMPARE THE -1 POSITION
			if (DATA_MASTER != (~DATA_MONITOR))
				NEXT_STATE <= RECORD_0_1;
			else
			if (COUNT_VALUE1 < 7'b1111110)
				NEXT_STATE <= COMPARE_MINUS1; 
			else
			if (DATA_MASTER == (~DATA_MONITOR))
				NEXT_STATE <= RECORD_1_1;
			else	
				NEXT_STATE <= RECORD_0_1;
			end

	RECORD_0_1:	NEXT_STATE <= DEC_1_1;			// -1 POSITION HAD ERRORS    
	RECORD_1_1:	NEXT_STATE <= DEC_1_1;                  // -1 POSITION WAS ERROR FREE
	
	DEC_1_1:	NEXT_STATE <= WAIT7_1;			//DECREMENT THE MONITOR TO ONE IDELAY TAP LESS (-2)
	
	WAIT7_1:	begin					
			if (COUNT_VALUE0 > 7'b0000111)		//WAIT FOR LATENCY TO SETTLE
				NEXT_STATE <= COMPARE_MINUS2;
			else
				NEXT_STATE <= WAIT7_1;
			end	

	COMPARE_MINUS2:	begin					//COMPARE THE -2 POSITION
			if (DATA_MASTER != (~DATA_MONITOR))
				NEXT_STATE <= RECORD_0_2;
			else
			if (COUNT_VALUE1 < 7'b1111110)
				NEXT_STATE <= COMPARE_MINUS2; 
			else
			if (DATA_MASTER == (~DATA_MONITOR))
				NEXT_STATE <= RECORD_1_2;
			else	
				NEXT_STATE <= RECORD_0_2;
			end
	
	RECORD_0_2:	NEXT_STATE <= INC_3;			// -2 POSITION HAD ERRORS    
	RECORD_1_2:	NEXT_STATE <= INC_3;                    // -2 POSITION WAS ERROR FREE
	
	INC_3:		begin					//INCREMENT THE MONITOR TO THREE IDELAY TAPS MORE (+1)
			if (COUNT_VALUE1 == 7'b0000010)
				NEXT_STATE <= WAIT7_2;
			else 
				NEXT_STATE <= INC_3;
			end
	
	WAIT7_2:	begin					//WAIT FOR LATENCY TO SETTLE 
			if (COUNT_VALUE0 > 7'b0000111)
				NEXT_STATE <= COMPARE_PLUS1;
			else
				NEXT_STATE <= WAIT7_2;
			end
	
	COMPARE_PLUS1:	begin					//COMPARE THE +1 POSITION
			if (DATA_MASTER != (~DATA_MONITOR))
				NEXT_STATE <= RECORD_0_3;
			else
			if (COUNT_VALUE1 < 7'b1111110)
				NEXT_STATE <= COMPARE_PLUS1; 
			else
			if (DATA_MASTER == (~DATA_MONITOR))
				NEXT_STATE <= RECORD_1_3;
			else	
				NEXT_STATE <= RECORD_0_3;
			end
	
	RECORD_0_3:	NEXT_STATE <= INC_1;			// +1 POSITION HAD ERRORS    
	RECORD_1_3:	NEXT_STATE <= INC_1;                    // +1 POSITION WAS ERROR FREE
	
	INC_1:		NEXT_STATE <= WAIT7_3;			//INCREMENT THE MONITOR TO 1 IDELAY TAP MORE (+2)
	
	WAIT7_3:	begin					//WAIT FOR LATENCY TO SETTLE
			if (COUNT_VALUE0 > 7'b0000111)
				NEXT_STATE <= COMPARE_PLUS2;
			else
				NEXT_STATE <= WAIT7_3;
			end
	
	COMPARE_PLUS2:	begin					//COMPARE THE +2 POSITION
			if (DATA_MASTER != (~DATA_MONITOR))
				NEXT_STATE <= RECORD_0_4;
			else
			if (COUNT_VALUE1 < 7'b1111110)
				NEXT_STATE <= COMPARE_PLUS2; 
			else
			if (DATA_MASTER == (~DATA_MONITOR))
				NEXT_STATE <= RECORD_1_4;
			else	
				NEXT_STATE <= RECORD_0_4;
			end
	
	RECORD_0_4:	NEXT_STATE <= IDLE;			// +2 POSITION HAD ERRORS    
	RECORD_1_4:	NEXT_STATE <= IDLE;                     // +2 POSITION WAS ERROR FREE
	
	IDLE:		NEXT_STATE <= BEGIN_ADJUST;
	
	BEGIN_ADJUST:	begin					//BASED ON THE 5 POSITION SAMPLING WINDOW, ADJUST DATA CHANNEL
			case(SAMPLE_WINDOW)
				5'b00001:	NEXT_STATE <= INC_ALL;	//INCREMENT ENTIRE DATA BUS BY 1
				5'b00011:	NEXT_STATE <= INC_ALL;	//INCREMENT ENTIRE DATA BUS BY 1
				5'b00111:	NEXT_STATE <= INC_ALL;	//INCREMENT ENTIRE DATA BUS BY 1
				5'b01111:	NEXT_STATE <= INC_ALL;	//INCREMENT ENTIRE DATA BUS BY 1
				5'b10000:	NEXT_STATE <= DEC_ALL;	//DECREMENT ENTIRE DATA BUS BY 1
				5'b11000:	NEXT_STATE <= DEC_ALL;	//DECREMENT ENTIRE DATA BUS BY 1
				5'b11100:	NEXT_STATE <= DEC_ALL;	//DECREMENT ENTIRE DATA BUS BY 1
				5'b11110:	NEXT_STATE <= DEC_ALL;	//DECREMENT ENTIRE DATA BUS BY 1
				default:	NEXT_STATE <= DEC_2;	//DO NOT ADJUST DATA BUS AT ALL; RETURN MONITOR TO CENTER
			endcase
			end
				
	INC_ALL:	NEXT_STATE <= DEC_2;			//DATA AND MONITOR GET INCREMENTED BY 1
	DEC_ALL:	NEXT_STATE <= DEC_2;			//DATA AND MONITOR GET DECREMENTED BY 1	
	
	DEC_2:		begin					//MONITOR DECREMENTED BY 2 TO RETURN TO INITIAL STATE
			if (COUNT_VALUE1 == 7'b0000001)
				NEXT_STATE <= DONE;
			else 
				NEXT_STATE <= DEC_2;
			end
	
	DONE:		begin					//WAIT IN THIS STATE UNTIL NEXT CHANNEL CAN START
			if (START == 1'b0)
				NEXT_STATE <= DONE;
			else
				NEXT_STATE <= INIT;
			end
	
	default:	NEXT_STATE <= INIT;
	
	endcase
end	

//OUTPUT LOGIC
always@(CURRENT_STATE)
begin
	case(CURRENT_STATE)
	
	INIT:		begin
			COUNT0			<= 1'b0;
			UD0			<= 1'b0;
			COUNT1			<= 1'b0;
			UD1			<= 1'b0;	
			INC_MONITOR		<= 1'b0;
			ICE_MONITOR		<= 1'b0;
			INC_DATABUS		<= 1'b0;
			ICE_DATABUS		<= 1'b0;	
			STORE_STATUS[0]		<= 1'b1;	//+2
			STORE_STATUS[1]		<= 1'b1;	//+1
			STORE_STATUS[2]		<= 1'b1;	//0
			STORE_STATUS[3]		<= 1'b1;	//-1
			STORE_STATUS[4]		<= 1'b1;	//-2
			STATUS			<= 1'b0;	
			end

	WAIT128:	begin
			COUNT0			<= 1'b1;
			UD0			<= 1'b1;
			COUNT1			<= 1'b0;
			UD1			<= 1'b0;	
			INC_MONITOR		<= 1'b0;
			ICE_MONITOR		<= 1'b0;
			INC_DATABUS		<= 1'b0;
			ICE_DATABUS		<= 1'b0;	
			STORE_STATUS[0]		<= 1'b0;	//+2
			STORE_STATUS[1]		<= 1'b0;	//+1
			STORE_STATUS[2]		<= 1'b0;	//0
			STORE_STATUS[3]		<= 1'b0;	//-1
			STORE_STATUS[4]		<= 1'b0;	//-2
			STATUS			<= 1'b0;
			end
	
	COMPARE_0:	begin
			COUNT0			<= 1'b0;
			UD0			<= 1'b0;
			COUNT1			<= 1'b1;
			UD1			<= 1'b1;	
			INC_MONITOR		<= 1'b0;
			ICE_MONITOR		<= 1'b0;
			INC_DATABUS		<= 1'b0;
			ICE_DATABUS		<= 1'b0;	
			STORE_STATUS[0]		<= 1'b0;	//+2
			STORE_STATUS[1]		<= 1'b0;	//+1
			STORE_STATUS[2]		<= 1'b0;	//0
			STORE_STATUS[3]		<= 1'b0;	//-1
			STORE_STATUS[4]		<= 1'b0;	//-2
			STATUS			<= 1'b0;
			end

	RECORD_0_0:	begin
			COUNT0			<= 1'b0;
			UD0			<= 1'b0;
			COUNT1			<= 1'b0;
			UD1			<= 1'b0;	
			INC_MONITOR		<= 1'b0;
			ICE_MONITOR		<= 1'b0;
			INC_DATABUS		<= 1'b0;
			ICE_DATABUS		<= 1'b0;	
			STORE_STATUS[0]		<= 1'b0;	//+2
			STORE_STATUS[1]		<= 1'b0;	//+1
			STORE_STATUS[2]		<= 1'b1;	//0
			STORE_STATUS[3]		<= 1'b0;	//-1
			STORE_STATUS[4]		<= 1'b0;	//-2
			STATUS			<= 1'b0;	//ERRORS
			end
	
	RECORD_1_0:	begin
			COUNT0			<= 1'b0;
			UD0			<= 1'b0;
			COUNT1			<= 1'b0;
			UD1			<= 1'b0;	
			INC_MONITOR		<= 1'b0;
			ICE_MONITOR		<= 1'b0;
			INC_DATABUS		<= 1'b0;
			ICE_DATABUS		<= 1'b0;	
			STORE_STATUS[0]		<= 1'b0;	//+2
			STORE_STATUS[1]		<= 1'b0;	//+1
			STORE_STATUS[2]		<= 1'b1;	//0
			STORE_STATUS[3]		<= 1'b0;	//-1
			STORE_STATUS[4]		<= 1'b0;	//-2
			STATUS			<= 1'b1;	//ERROR FREE
			end
			
	DEC_1_0:	begin
			COUNT0			<= 1'b0;
			UD0			<= 1'b0;
			COUNT1			<= 1'b0;
			UD1			<= 1'b0;	
			INC_MONITOR		<= 1'b0;
			ICE_MONITOR		<= 1'b1;
			INC_DATABUS		<= 1'b0;
			ICE_DATABUS		<= 1'b0;	
			STORE_STATUS[0]		<= 1'b0;	//+2
			STORE_STATUS[1]		<= 1'b0;	//+1
			STORE_STATUS[2]		<= 1'b0;	//0
			STORE_STATUS[3]		<= 1'b0;	//-1
			STORE_STATUS[4]		<= 1'b0;	//-2
			STATUS			<= 1'b0;
			end
	
	WAIT7_0:	begin
			COUNT0			<= 1'b1;
			UD0			<= 1'b1;
			COUNT1			<= 1'b0;
			UD1			<= 1'b0;	
			INC_MONITOR		<= 1'b0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品成人在线| 日韩理论片网站| 久久国产福利国产秒拍| 777午夜精品免费视频| 免费成人你懂的| 久久综合狠狠综合久久综合88 | 中文字幕视频一区| 久久先锋影音av鲁色资源网| 国产一区二区三区av电影| 国产欧美一区二区精品秋霞影院| 风流少妇一区二区| 一区二区在线看| 欧美日本国产一区| 国产资源在线一区| 亚洲四区在线观看| 亚洲国产va精品久久久不卡综合| 欧美二区乱c少妇| 国产永久精品大片wwwapp| 国产精品成人一区二区三区夜夜夜 | 精品久久久久久久久久久久久久久久久 | 一片黄亚洲嫩模| 日韩美女主播在线视频一区二区三区| 国产麻豆精品在线观看| 亚洲女人****多毛耸耸8| 欧美一区二区视频观看视频| 国产精品一区不卡| 亚洲一级二级在线| 久久综合一区二区| 91福利国产成人精品照片| 琪琪久久久久日韩精品| 中文字幕一区av| 日韩一区二区精品| 99精品久久只有精品| 午夜精品免费在线| 日韩一区中文字幕| 久久在线观看免费| 欧美日韩国产经典色站一区二区三区| 国产精品一二三区在线| 亚洲妇女屁股眼交7| 国产精品美女久久久久久久| 欧美日韩精品一区二区在线播放| 成人一区二区三区中文字幕| 午夜精品久久久久久久99水蜜桃| 国产精品美女久久久久久久久久久 | 日韩精品一级二级| 亚洲日本青草视频在线怡红院| 欧美videossexotv100| 欧美三级一区二区| 99精品偷自拍| 国产91精品欧美| 久久99精品久久久久久久久久久久 | 国产精品一区免费在线观看| 日韩不卡免费视频| 亚洲一区日韩精品中文字幕| 国产精品美女久久久久久2018| 日韩免费观看2025年上映的电影| 精品视频色一区| 91高清视频在线| 色综合久久99| 91免费版在线| 99热精品国产| 国产高清在线观看免费不卡| 男女视频一区二区| 日韩精品一区第一页| 亚洲伊人伊色伊影伊综合网| 亚洲天堂免费看| 自拍偷拍国产亚洲| 中文字幕中文字幕中文字幕亚洲无线| 欧美电影免费观看高清完整版在| 欧美日韩激情一区| 91精品国产综合久久精品图片| 欧美曰成人黄网| 91国在线观看| 欧美色网站导航| 欧美日韩在线三级| 欧美精品777| 777亚洲妇女| 欧美mv日韩mv亚洲| 久久综合九色综合97婷婷女人| 精品奇米国产一区二区三区| 精品欧美乱码久久久久久| 日韩精品一区二区三区三区免费| 精品剧情在线观看| 国产婷婷色一区二区三区| 中国色在线观看另类| 国产在线精品一区二区夜色| 蓝色福利精品导航| 国产在线乱码一区二区三区| 国产高清亚洲一区| 91免费版在线看| 欧美日韩一区二区三区四区五区| 欧美日韩精品一区二区三区| 7777精品伊人久久久大香线蕉最新版| 91精品国产免费| 欧美精品一区二区三区蜜桃视频| 久久精品一二三| 亚洲精品日日夜夜| 日韩电影在线免费看| 狠狠色丁香婷综合久久| 粉嫩av一区二区三区在线播放| 成人av手机在线观看| 在线中文字幕不卡| 91精品国产全国免费观看 | 国产精品嫩草99a| 亚洲精品视频观看| 麻豆一区二区三| av亚洲产国偷v产偷v自拍| 日本韩国欧美一区二区三区| 51久久夜色精品国产麻豆| 久久综合色8888| 一区二区三区加勒比av| 麻豆精品国产91久久久久久| 成人黄动漫网站免费app| 日本精品视频一区二区三区| 欧美军同video69gay| 国产午夜精品久久久久久免费视 | 五月综合激情日本mⅴ| 乱中年女人伦av一区二区| jvid福利写真一区二区三区| 欧美日韩精品一区二区天天拍小说 | 欧美喷水一区二区| 国产欧美日韩综合| 亚洲成人久久影院| 成人高清视频在线| 日韩欧美三级在线| 亚洲精品成a人| 国产精品一区一区三区| 欧美久久一区二区| 亚洲欧美综合色| 国产精品中文字幕日韩精品| 在线观看免费一区| 国产精品久久久久久久久久久免费看| 日韩制服丝袜av| 在线观看日韩电影| 国产精品理伦片| 国产乱国产乱300精品| 欧美日产国产精品| 亚洲免费大片在线观看| 狂野欧美性猛交blacked| 色www精品视频在线观看| 国产欧美一区二区三区鸳鸯浴 | 日本成人在线不卡视频| 一本色道亚洲精品aⅴ| 久久久精品影视| 美国十次了思思久久精品导航| 在线精品视频免费观看| 国产精品热久久久久夜色精品三区| 日本不卡一二三| 欧美亚洲综合网| 一区二区三区在线视频观看| 成人v精品蜜桃久久一区| 精品国产凹凸成av人网站| 日韩高清在线一区| 欧美自拍丝袜亚洲| 亚洲视频一区在线| www.久久精品| 国产偷国产偷亚洲高清人白洁| 久久99国产精品免费| 欧美一区二区三区在线视频| 五月综合激情婷婷六月色窝| 欧美无人高清视频在线观看| 综合久久综合久久| 91一区二区在线| 亚洲色图.com| 91久久精品午夜一区二区| 亚洲欧美日韩人成在线播放| 99久久精品免费看| 亚洲天堂a在线| 欧美视频一区在线观看| 五月婷婷欧美视频| 欧美精品亚洲二区| 日本欧美一区二区在线观看| 777午夜精品视频在线播放| 免费成人在线观看视频| 精品欧美一区二区三区精品久久 | 欧美美女网站色| 丝袜美腿高跟呻吟高潮一区| 欧美亚洲动漫制服丝袜| 亚洲第一二三四区| 宅男噜噜噜66一区二区66| 欧美a一区二区| 久久久国产一区二区三区四区小说 | 国产欧美日韩卡一| 不卡一二三区首页| 一二三区精品福利视频| 欧美一a一片一级一片| 免费视频一区二区| 国产色一区二区| 色综合久久中文综合久久牛| 亚洲一区二区综合| www久久精品| 99精品久久99久久久久| 午夜免费欧美电影| 久久网这里都是精品| 成熟亚洲日本毛茸茸凸凹| 中文字幕在线不卡| 欧美一区三区四区| 成人免费观看av| 午夜电影网亚洲视频| 国产清纯在线一区二区www|