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

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

?? bit_align_machine.v

?? FPGA之間的LVDS傳輸
?? V
字號:
///////////////////////////////////////////////////////////////////////////////
//
//    File Name:  BIT_ALIGN_MACHINE.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 BIT_ALIGN_MACHINE module analyzes the data input of a single channel
// to determine the optimal clock/data relationship for that channel.  By
// dynamically changing the delay of the data channel (with respect to the 
// sampling clock), the machine places the sampling point at the center of
// the data eye.
//  
//----------------------------------------------------------------

module BIT_ALIGN_MACHINE
	(
	RXCLKDIV,
	RXDATA,
	RST,
	USE_BITSLIP,
	SAP,
	INC,
	ICE,
	BITSLIP,
	DATA_ALIGNED
	);
	
input		RXCLKDIV;	//RX PARALLEL SIDE CLOCK
input	[5:0]	RXDATA;		//DATA FROM ONE CHANNEL ONLY
input		RST;		//RESET ALL CIRCUITRY IN MACHINE
input		USE_BITSLIP;	//OPTION TO BYPASS/INCLUDE BITSLIP FUNCTION
input		SAP;		//INDICATES THAT DATA IS STABLE AFTER CHANNEL TRANSITION
				//E.G. MACHINE FINISHES CHANNEL 12 AND GOES ON TO 13
output		INC;		//MACHINE ISSUES DELAY INCREMENT TO APPROPRIATE DATA CHANNEL
output		ICE;		//MACHINE ISSUES DELAY DECREMENT TO APPROPRIATE DATA CHANNEL
output		BITSLIP;	//MACHINE ISSUES BITSLIP COMMAND TO APPROPRIATE DATA CHANNEL
output		DATA_ALIGNED;	//FLAG INDICATING ALIGNMENT COMPLETE ON THIS CHANNEL

reg		INC; 
reg		ICE; 
reg		BITSLIP;
reg		COUNT; 
reg		UD; 
reg		STORE;
reg		STORE_DATA_PREV; 
reg		COUNT_SAMPLE;
reg		UD_SAMPLE;
reg	[4:0] 	CURRENT_STATE;
reg	[4:0]	NEXT_STATE;

wire	[6:0]	COUNT_VALUE; 
wire	[6:0]	HALF_DATA_EYE;
wire	[5:0]	RXDATA_PREV;
wire	[6:0]	COUNT_VALUE_SAMPLE;
wire	[6:0]	CVS;
wire	[6:0]	CVS_ADJUSTED;
wire	[5:0]	CHECK_PATTERN;

count_to_128 machine_counter_total(.clk(RXCLKDIV), .rst(RST), .count(COUNT_SAMPLE), .ud(UD_SAMPLE), .counter_value(COUNT_VALUE_SAMPLE));
count_to_128 machine_counter(.clk(RXCLKDIV), .rst(RST), .count(COUNT), .ud(UD), .counter_value(COUNT_VALUE));
seven_bit_reg_w_ce tap_reserve(.Q(CVS), .CLK(RXCLKDIV), .CE(STORE), .D(COUNT_VALUE), .RST(RST));  

FDR count_reg(.Q(DATA_ALIGNED), .C(RXCLKDIV), .D(DATA_ALIGNEDx), .R(RST));

//STORE ENTIRE DATA BUS FOR COMPARISON AFTER CHANGING DELAY
FDRE bit0(.Q(RXDATA_PREV[0]), .C(RXCLKDIV), .CE(STORE_DATA_PREV), .D(RXDATA[0]), .R(RST));
FDRE bit1(.Q(RXDATA_PREV[1]), .C(RXCLKDIV), .CE(STORE_DATA_PREV), .D(RXDATA[1]), .R(RST));
FDRE bit2(.Q(RXDATA_PREV[2]), .C(RXCLKDIV), .CE(STORE_DATA_PREV), .D(RXDATA[2]), .R(RST));
FDRE bit3(.Q(RXDATA_PREV[3]), .C(RXCLKDIV), .CE(STORE_DATA_PREV), .D(RXDATA[3]), .R(RST));
FDRE bit4(.Q(RXDATA_PREV[4]), .C(RXCLKDIV), .CE(STORE_DATA_PREV), .D(RXDATA[4]), .R(RST));
FDRE bit5(.Q(RXDATA_PREV[5]), .C(RXCLKDIV), .CE(STORE_DATA_PREV), .D(RXDATA[5]), .R(RST));

assign DATA_ALIGNEDx = (~CURRENT_STATE[4] & ~CURRENT_STATE[3] & CURRENT_STATE[2] & CURRENT_STATE[1] & CURRENT_STATE[0]);
assign CHECK_PATTERN = 6'b101100;

//CVS IS A SNAPSHOT OF THE TAP COUNTER.  IT'S VALUE IS THE SIZE OF THE DATA VALID WINDOW
//OUR INTENTION IS TO DECREMENT THE DELAY TO 1/2 THIS VALUE TO BE AT THE CENTER OF THE EYE.
//SINCE IT MAY BE POSSIBLE TO HAVE AN ODD COUNTER VALUE, THE HALVED VALUE WILL BE A DECIMAL.
//IN CASES WHERE CVS IS A DECIMAL, WE WILL ROUND UP.  E.G CVS = 4.5, SO DECREMENT 5 TAPS.
//CVS_ADJUSTED AND HALF_DATA_EYE ARE FINE TUNED ADJUSTMENTS FOR OPTIMAL OPERATION AT HIGH RATES

assign CVS_ADJUSTED	= CVS - 1;			//THE ALGORITHM COUNTS ONE TAP BEYOND EYE, MUST BE REMOVED
assign HALF_DATA_EYE	= {1'b0,CVS_ADJUSTED[6:1]} + CVS_ADJUSTED[0];	//THE CVS[0] FACTOR CAUSES A ROUND-UP

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

//NEXT_STATE LOGIC
always @(CURRENT_STATE or COUNT_VALUE or USE_BITSLIP or RXDATA or CHECK_PATTERN or RXDATA_PREV or COUNT_VALUE_SAMPLE or SAP or HALF_DATA_EYE)
begin
	case(CURRENT_STATE)
	5'b00000:	if (SAP == 1'b0)	//RST STATE
				NEXT_STATE <= 5'b00001;
			else
				NEXT_STATE <= 5'b00000; 	
			
	5'b00001:	begin	//INITIAL STATE, SAMPLE TRAINING BIT
			if (RXDATA_PREV != RXDATA)
				NEXT_STATE <= 5'b01111;
			else
				NEXT_STATE <= 5'b01000;
			end
			
	5'b01000:	begin	//CHECK SAMPLE TO SEE IF IT IS ON A TRANSITION
			if (RXDATA_PREV != RXDATA)
				NEXT_STATE <= 5'b01111;
			else
			if (COUNT_VALUE_SAMPLE > 7'b0001111)
				NEXT_STATE <= 5'b01011;
			else
				NEXT_STATE <= 5'b01000;
			end
			
	5'b01111:	begin	//IF SAMPLED POINT IS TRANSITION, EDGE IS FOUND, SO INC DELAY TO EXIT TRANSITION
				NEXT_STATE <= 5'b01101;
			end

	5'b01101:	begin	//WAIT 16 CYCLES WHILE APPLYING BITSLIP TO FIND CHECK_PATTERN
			if (COUNT_VALUE_SAMPLE > 7'b0001110)
				NEXT_STATE <= 5'b01111;
			else 
			if (RXDATA == CHECK_PATTERN) //IF CHECK_PATTERN IS FOUND, WE ARE CLOSE TO END OF TRANSITION
				NEXT_STATE <= 5'b01100;
			else
				NEXT_STATE <= 5'b01101;
			end
	
	5'b01100:	begin	//IDLE (NEEDED FOR COUNTER RESET BEFORE NEXT STATE)
				NEXT_STATE <= 5'b10000;
			end
			
	5'b10000:	begin	//IDLE (NEEDED FOR STABILIZATION)
				NEXT_STATE <= 5'b00010;
			end
			
	5'b00010:	begin	//CHECK SAMPLE AGAIN TO SEE IF WE HAVE EXITED TRANSITION
			if (COUNT_VALUE_SAMPLE < 7'b0000011) //ALLOW TIME FOR BITSLIP OP TO STABILIZE
				NEXT_STATE <= 5'b00010;
			else
			if (RXDATA_PREV != RXDATA)
				NEXT_STATE <= 5'b01111;
			else
			if (COUNT_VALUE_SAMPLE > 7'b1111110) //SCAN FOR STABILITY FOR 128 CYCLES
				NEXT_STATE <= 5'b01110;
			else
				NEXT_STATE <= 5'b00010;
			end
			
	5'b01011:	begin	//INITIAL STATE WAS STABLE, SO INC ONCE TO SEARCH FOR TRANS
				NEXT_STATE <= 5'b00100;
			end
			
	5'b00100:	begin	//WAIT 8 CYCLES, COMPARE RXDATA WITH PREVIOUS DATA
			if (COUNT_VALUE_SAMPLE < 7'b0000111)
				NEXT_STATE <= 5'b00100;
			else
			if(RXDATA_PREV != RXDATA)
				NEXT_STATE <= 5'b01111;
			else
				NEXT_STATE <= 5'b01011;
			end
	
	5'b01110:	begin	//DATA IS STABLE AFTER FINDING 1ST TRANS, COUNT 1 TO INCLUDE LAST INC
				NEXT_STATE <= 5'b01001;
			end
			
	5'b01001:	begin	//INC ONCE TO LOOK FOR 2ND TRANS
				NEXT_STATE <= 5'b00011;
			end

	5'b00011:	begin	//WAIT 8 CYCLES, COMPARE RXDATA WITH PREVIOUS DATA
			if (COUNT_VALUE_SAMPLE < 7'b0000111)
				NEXT_STATE <= 5'b00011;
			else
			if(RXDATA_PREV != RXDATA)
				NEXT_STATE <= 5'b10010;
			else
				NEXT_STATE <= 5'b01001;
			end
			
	5'b10010:	begin	//IDLE (NEEDED FOR COUNTER RESET BEFORE NEXT STATE)
				NEXT_STATE <= 5'b01010;
			end
			
	5'b01010:	begin	//DECREMENT TO MIDDLE OF DATA EYE
			if (COUNT_VALUE_SAMPLE < HALF_DATA_EYE-1)
				NEXT_STATE <= 5'b01010;
			else
				NEXT_STATE <= 5'b00101;
			end
	
	5'b00101:	begin	//SAMPLE PATTERN 16 TIMES TO SEE IF WORD ALIGNMENT NEEDED
			if(USE_BITSLIP == 1'b0)
    				NEXT_STATE <= 5'b00111;
    			else
    			if(COUNT_VALUE < 7'h0F)
    				NEXT_STATE <= 5'b00101;
    			else
    			if (RXDATA == CHECK_PATTERN)
    				NEXT_STATE <= 5'b00111;
   			else
    			//if(COUNT_VALUE == 7'h0F)
    				NEXT_STATE <= 5'b00110;
			end
	
	5'b00110:	begin	//INITIATE 1 BITSLIP
			NEXT_STATE <= 5'b00101;
			end
	
	5'b00111:	if (SAP == 1'b0)	//TRAINING COMPLETE FOR THIS CHANNEL
				NEXT_STATE <= 5'b00111;  			
    			else
    				NEXT_STATE <= 5'b00000;  			
    				
    	default:	NEXT_STATE <= 5'b00000;
	endcase
end

//OUTPUT LOGIC

always @(CURRENT_STATE)
begin
	case(CURRENT_STATE)
	5'b00000:	begin	//RST STATE
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
	
	5'b00001:	begin	//INITIAL STATE, SAMPLE TRAINING BIT
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
			
	5'b01000:	begin	//CHECK SAMPLE TO SEE IF IT IS ON A TRANSITION
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b1;
			UD_SAMPLE = 1'b1;
			end
			
	5'b01111:	begin	//IF SAMPLED POINT IS TRANSITION, EDGE IS FOUND, SO INC DELAY TO EXIT TRANSITION
			INC = 1'b1;
  			ICE = 1'b1;
			COUNT = 1'b0;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0; 
			UD_SAMPLE = 1'b0;
			end
	
	5'b01101:	begin	//WAIT 16 CYCLES WHILE APPLYING BITSLIP TO FIND CHECK_PATTERN
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b1;
			COUNT_SAMPLE = 1'b1;
			UD_SAMPLE = 1'b1;
			end
			
	5'b01100:	begin	//IDLE (NEEDED FOR COUNTER RESET BEFORE NEXT STATE)
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
	
	5'b10000:	begin	//IDLE (NEEDED FOR STABILIZATION)
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
	
	5'b00010:	begin	//CHECK SAMPLE AGAIN TO SEE IF WE HAVE EXITED TRANSITION
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b1;
			UD_SAMPLE = 1'b1;
			end

	5'b01011:	begin	//INITIAL STATE WAS STABLE, SO INC ONCE TO SEARCH FOR TRANS
			INC = 1'b1;
  			ICE = 1'b1;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
	
	5'b00100:	begin	//WAIT 8 CYCLES, COMPARE RXDATA WITH PREVIOUS DATA
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b0;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b1;
			UD_SAMPLE = 1'b1;
			end
	
	5'b01110:	begin	//DATA IS STABLE AFTER FINDING 1ST TRANS, COUNT 1 TO INCLUDE LAST INC
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b1;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
				
	5'b01001:	begin	//INC ONCE TO LOOK FOR 2ND TRANS
			INC = 1'b1;
  			ICE = 1'b1;
			COUNT = 1'b1;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end

	5'b00011:	begin	//WAIT 8 CYCLES, COMPARE RXDATA WITH PREVIOUS DATA
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b1;			
			STORE = 1'b1;
			STORE_DATA_PREV = 1'b0;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b1;
			UD_SAMPLE = 1'b1;
			end	
			
	5'b10010:	begin	//IDLE (NEEDED FOR COUNTER RESET BEFORE NEXT STATE)
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
			
	5'b01010:	begin	//DECREMENT TO CENTER OF DATA EYE
			INC = 1'b0;
  			ICE = 1'b1;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b1;
			UD_SAMPLE = 1'b1;
			end	
	
	5'b00101:	begin	//SAMPLE PATTERN 16 TIMES TO SEE IF WORD ALIGNMENT NEEDED
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b1;
			UD = 1'b1;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
			
	5'b00110:	begin	//INITIATE 1 BITSLIP
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b1;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
			
	5'b00111:	begin	//TRAINING COMPLETE ON THIS CHANNEL
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
			
	default:	begin	
			INC = 1'b0;
  			ICE = 1'b0;
			COUNT = 1'b0;
			UD = 1'b0;			
			STORE = 1'b0;
			STORE_DATA_PREV = 1'b1;
			BITSLIP = 1'b0;
			COUNT_SAMPLE = 1'b0;
			UD_SAMPLE = 1'b0;
			end
	endcase
end
        
endmodule


`timescale  1 ns / 10 ps
module seven_bit_reg_w_ce(Q, CLK, CE, D, RST);

input	[6:0]	D;
input		CLK, CE, RST;

output	[6:0]	Q;	

FDRE bit0(.Q(Q[0]), .C(CLK), .CE(CE), .D(D[0]), .R(RST));
FDRE bit1(.Q(Q[1]), .C(CLK), .CE(CE), .D(D[1]), .R(RST));
FDRE bit2(.Q(Q[2]), .C(CLK), .CE(CE), .D(D[2]), .R(RST));
FDRE bit3(.Q(Q[3]), .C(CLK), .CE(CE), .D(D[3]), .R(RST));
FDRE bit4(.Q(Q[4]), .C(CLK), .CE(CE), .D(D[4]), .R(RST));
FDRE bit5(.Q(Q[5]), .C(CLK), .CE(CE), .D(D[5]), .R(RST));
FDRE bit6(.Q(Q[6]), .C(CLK), .CE(CE), .D(D[6]), .R(RST));

endmodule


`timescale  1 ns / 10 ps
module count_to_128(clk, rst, count, ud, counter_value);

//This module counts up/down between 0 to 128

input clk, rst, count, ud;
output [6:0] counter_value;

wire [6:0] counter_value_preserver;
reg [6:0] counter_value/*synthesis syn_noprune = 1*/;

always@(posedge clk or posedge rst)
begin
if(rst == 1'b1)
 counter_value = 7'h00;
else
 begin
  case({count,ud})
   2'b00: counter_value = 7'h00;
   2'b01: counter_value = counter_value_preserver;
   2'b10: counter_value = counter_value_preserver - 1;
   2'b11: counter_value = counter_value_preserver + 1;
   default: counter_value = 7'h00;
  endcase
 end
end

assign counter_value_preserver = counter_value;

endmodule
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人污污视频在线观看| 日韩久久精品一区| 精品乱人伦一区二区三区| 欧美激情在线一区二区| 美女性感视频久久| 色综合久久久久久久久久久| 久久久久久久网| 日本va欧美va欧美va精品| 91麻豆国产香蕉久久精品| 国产亚洲欧洲997久久综合| 亚洲电影第三页| 91影院在线观看| 欧美激情一区三区| 久久国产欧美日韩精品| 欧美性高清videossexo| 欧美国产精品中文字幕| 久久国产精品色婷婷| 欧美精品自拍偷拍| 午夜亚洲国产au精品一区二区| 不卡视频在线观看| 国产精品国产三级国产普通话三级| 国产一区视频在线看| 欧美一区二区三区在线| 丝袜亚洲另类欧美| 欧美日韩aaa| 无码av中文一区二区三区桃花岛| 91电影在线观看| 一区二区三区美女| 欧美视频一区二| 亚洲va韩国va欧美va精品| 欧日韩精品视频| 亚洲成人在线免费| 欧美日韩成人激情| 麻豆精品新av中文字幕| 精品久久久久久久久久久久包黑料 | 欧美精品一区二区三区蜜桃| 五月天亚洲精品| 日韩一区二区三区观看| 麻豆成人免费电影| 久久综合久久综合九色| 国产福利一区在线| 国产精品久久久久久妇女6080| 国产99一区视频免费 | 国产高清一区日本| 国产欧美日韩精品一区| 不卡的av网站| 亚洲成av人片一区二区| 日韩一本二本av| 国产美女精品一区二区三区| 国产女主播视频一区二区| 91视频在线观看免费| 亚洲v中文字幕| 久久伊人中文字幕| 色哟哟精品一区| 美女视频免费一区| 国产欧美日韩三区| 欧美亚洲图片小说| 久久99国产精品尤物| 国产欧美精品一区| 欧美色成人综合| 国产一区二区在线影院| 亚洲丝袜精品丝袜在线| 91精品国产综合久久福利软件 | 亚洲成人你懂的| 精品成人a区在线观看| 97精品久久久久中文字幕 | 欧美一区二区三区在| 国产成人av一区二区三区在线 | 国产精品视频在线看| 色噜噜久久综合| 精品一区二区三区久久| 亚洲色欲色欲www| 日韩一卡二卡三卡国产欧美| 成人国产精品免费观看动漫| 亚洲一区视频在线| 久久久精品tv| 欧美日本一道本在线视频| 国产一区二区主播在线| 亚洲国产三级在线| 国产欧美日韩综合| 日韩一级高清毛片| 91论坛在线播放| 国产伦精品一区二区三区免费| 亚洲免费伊人电影| 国产亚洲综合性久久久影院| 欧美日韩aaa| 欧美亚洲综合另类| 丁香啪啪综合成人亚洲小说 | 成人理论电影网| 久久精品国产精品青草| 一区二区三区在线观看网站| 国产午夜亚洲精品理论片色戒| 欧美一卡二卡在线| 欧美日韩一区二区三区四区| 成人精品免费网站| 国产老妇另类xxxxx| 蜜臀av一区二区在线免费观看| 一二三四社区欧美黄| 中文字幕一区二区三区不卡在线 | 亚洲色图20p| 国产精品久久久久久一区二区三区| 日韩欧美专区在线| 日韩一区二区影院| 3atv在线一区二区三区| 欧美日韩在线亚洲一区蜜芽| 91麻豆视频网站| 94色蜜桃网一区二区三区| 成人免费福利片| av电影在线观看一区| 成人中文字幕在线| 懂色av噜噜一区二区三区av| 国产91丝袜在线播放| 国产精品夜夜爽| 国产精品一区二区在线观看网站 | 中文字幕精品一区二区三区精品| 精品日韩99亚洲| 26uuu欧美日本| 国产视频亚洲色图| 国产精品久久久久影院老司| 欧美激情一区二区三区蜜桃视频 | 97久久精品人人做人人爽 | 日韩一区国产二区欧美三区| 91精品欧美综合在线观看最新 | 美国一区二区三区在线播放| 久热成人在线视频| 国产精品18久久久久久久久久久久| 国内偷窥港台综合视频在线播放| 久久精品久久综合| 丁香五精品蜜臀久久久久99网站| 成人av资源网站| 色素色在线综合| 日韩视频免费观看高清完整版在线观看| 7777精品伊人久久久大香线蕉的| 欧美一级搡bbbb搡bbbb| 精品国产乱码久久久久久影片| 久久久久久久久免费| 国产精品久久久久久户外露出| 亚洲激情男女视频| 青青草一区二区三区| 国产iv一区二区三区| 色一区在线观看| 91精品在线一区二区| 久久久亚洲欧洲日产国码αv| 亚洲欧美怡红院| 亚洲福利一二三区| 国产精品 日产精品 欧美精品| 不卡一卡二卡三乱码免费网站| 在线观看日韩一区| 欧美精品一区二区不卡| 自拍视频在线观看一区二区| 午夜久久久久久| 国产91富婆露脸刺激对白| 欧美日韩一区小说| 国产欧美精品一区二区色综合 | 狠狠色综合日日| 在线一区二区视频| 久久综合九色综合欧美98 | 久草中文综合在线| 欧美亚一区二区| 久久久国产精品麻豆| 亚洲成年人网站在线观看| 国产精品综合在线视频| 欧美久久久一区| 国产精品美女久久久久久| 男人的天堂久久精品| 91视视频在线观看入口直接观看www | 天天影视色香欲综合网老头| 国产剧情一区二区| 欧美一区二区人人喊爽| 亚洲卡通欧美制服中文| 国产一区二区三区免费播放 | 日韩影视精彩在线| 91天堂素人约啪| 国产精品久久久久一区二区三区共| 免播放器亚洲一区| 欧美午夜电影在线播放| 欧美激情中文字幕| 激情图区综合网| 在线播放91灌醉迷j高跟美女| 中文字幕在线一区| 国产精品123| 久久久久88色偷偷免费| 老汉av免费一区二区三区 | 日本不卡中文字幕| 欧美日韩久久久| 亚洲第一福利视频在线| 一本色道久久综合亚洲精品按摩 | 色哟哟欧美精品| 日韩美女啊v在线免费观看| 国产成人午夜99999| 精品99一区二区| 另类小说视频一区二区| 91精品国产综合久久精品性色| 一级中文字幕一区二区| 91蝌蚪porny| 亚洲另类一区二区| 欧美午夜片在线看| 日韩精品国产精品| 日韩欧美在线123| 激情综合网最新|