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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 66_signed.vhd

?? 有關(guān)于VHDL舉例,FPGA/CPLD的運(yùn)用方面的例子
?? VHD
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
--------------------------------------------------------------------------
--                                                                      --
-- Copyright (c) 1990, 1991 by Synopsys, Inc.  All rights reserved.     --
--                                                                      --
-- This source file may be used and distributed without restriction     --
-- provided that this copyright statement is not removed from the file  --
-- and that any derivative work contains this copyright notice.         --
--                                                                      --
--------------------------------------------------------------------------
--------------------------------------------------------------------------
-- Package name: SIGNED_ARITH                                           --
--                                                                      --
-- Purpose:                                                             --
-- A set of arithemtic, conversion, and comparison functions            --
-- for SIGNED, UNSIGNED, SMALL_INT, INTEGER,                            --
-- STD_ULOGIC, STD_LOGIC, and STD_LOGIC_VECTOR.                         --
--                                                                      --
--------------------------------------------------------------------------

library IEEE;
use IEEE.std_logic_1164.all;

package SIGNED_ARITH is

    type UNSIGNED is array (NATURAL range <>) of STD_LOGIC;
    type SIGNED is array (NATURAL range <>) of STD_LOGIC;
    subtype SMALL_INT is INTEGER range 0 to 1;

    function "+"(L: UNSIGNED; R: UNSIGNED) return UNSIGNED;
    function "+"(L: SIGNED; R: SIGNED) return SIGNED;
    function "+"(L: UNSIGNED; R: SIGNED) return SIGNED;
    function "+"(L: SIGNED; R: UNSIGNED) return SIGNED;
    function "+"(L: UNSIGNED; R: INTEGER) return UNSIGNED;
    function "+"(L: INTEGER; R: UNSIGNED) return UNSIGNED;
    function "+"(L: SIGNED; R: INTEGER) return SIGNED;
    function "+"(L: INTEGER; R: SIGNED) return SIGNED;
    function "+"(L: UNSIGNED; R: STD_ULOGIC) return UNSIGNED;
    function "+"(L: STD_ULOGIC; R: UNSIGNED) return UNSIGNED;
    function "+"(L: SIGNED; R: STD_ULOGIC) return SIGNED;
    function "+"(L: STD_ULOGIC; R: SIGNED) return SIGNED;

    function "+"(L: UNSIGNED; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "+"(L: SIGNED; R: SIGNED) return STD_LOGIC_VECTOR;
    function "+"(L: UNSIGNED; R: SIGNED) return STD_LOGIC_VECTOR;
    function "+"(L: SIGNED; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "+"(L: UNSIGNED; R: INTEGER) return STD_LOGIC_VECTOR;
    function "+"(L: INTEGER; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "+"(L: SIGNED; R: INTEGER) return STD_LOGIC_VECTOR;
    function "+"(L: INTEGER; R: SIGNED) return STD_LOGIC_VECTOR;
    function "+"(L: UNSIGNED; R: STD_ULOGIC) return STD_LOGIC_VECTOR;
    function "+"(L: STD_ULOGIC; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "+"(L: SIGNED; R: STD_ULOGIC) return STD_LOGIC_VECTOR;
    function "+"(L: STD_ULOGIC; R: SIGNED) return STD_LOGIC_VECTOR;

    function "-"(L: UNSIGNED; R: UNSIGNED) return UNSIGNED;
    function "-"(L: SIGNED; R: SIGNED) return SIGNED;
    function "-"(L: UNSIGNED; R: SIGNED) return SIGNED;
    function "-"(L: SIGNED; R: UNSIGNED) return SIGNED;
    function "-"(L: UNSIGNED; R: INTEGER) return UNSIGNED;
    function "-"(L: INTEGER; R: UNSIGNED) return UNSIGNED;
    function "-"(L: SIGNED; R: INTEGER) return SIGNED;
    function "-"(L: INTEGER; R: SIGNED) return SIGNED;
    function "-"(L: UNSIGNED; R: STD_ULOGIC) return UNSIGNED;
    function "-"(L: STD_ULOGIC; R: UNSIGNED) return UNSIGNED;
    function "-"(L: SIGNED; R: STD_ULOGIC) return SIGNED;
    function "-"(L: STD_ULOGIC; R: SIGNED) return SIGNED;

    function "-"(L: UNSIGNED; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "-"(L: SIGNED; R: SIGNED) return STD_LOGIC_VECTOR;
    function "-"(L: UNSIGNED; R: SIGNED) return STD_LOGIC_VECTOR;
    function "-"(L: SIGNED; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "-"(L: UNSIGNED; R: INTEGER) return STD_LOGIC_VECTOR;
    function "-"(L: INTEGER; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "-"(L: SIGNED; R: INTEGER) return STD_LOGIC_VECTOR;
    function "-"(L: INTEGER; R: SIGNED) return STD_LOGIC_VECTOR;
    function "-"(L: UNSIGNED; R: STD_ULOGIC) return STD_LOGIC_VECTOR;
    function "-"(L: STD_ULOGIC; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "-"(L: SIGNED; R: STD_ULOGIC) return STD_LOGIC_VECTOR;
    function "-"(L: STD_ULOGIC; R: SIGNED) return STD_LOGIC_VECTOR;

    function "+"(L: UNSIGNED) return UNSIGNED;
    function "+"(L: SIGNED) return SIGNED;
    function "-"(L: SIGNED) return SIGNED;
    function "ABS"(L: SIGNED) return SIGNED;

    function "+"(L: UNSIGNED) return STD_LOGIC_VECTOR;
    function "+"(L: SIGNED) return STD_LOGIC_VECTOR;
    function "-"(L: SIGNED) return STD_LOGIC_VECTOR;
    function "ABS"(L: SIGNED) return STD_LOGIC_VECTOR;

    function "*"(L: UNSIGNED; R: UNSIGNED) return UNSIGNED;
    function "*"(L: SIGNED; R: SIGNED) return SIGNED;
    function "*"(L: SIGNED; R: UNSIGNED) return SIGNED;
    function "*"(L: UNSIGNED; R: SIGNED) return SIGNED;

    function "*"(L: UNSIGNED; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "*"(L: SIGNED; R: SIGNED) return STD_LOGIC_VECTOR;
    function "*"(L: SIGNED; R: UNSIGNED) return STD_LOGIC_VECTOR;
    function "*"(L: UNSIGNED; R: SIGNED) return STD_LOGIC_VECTOR;

    function "<"(L: UNSIGNED; R: UNSIGNED) return BOOLEAN;
    function "<"(L: SIGNED; R: SIGNED) return BOOLEAN;
    function "<"(L: UNSIGNED; R: SIGNED) return BOOLEAN;
    function "<"(L: SIGNED; R: UNSIGNED) return BOOLEAN;
    function "<"(L: UNSIGNED; R: INTEGER) return BOOLEAN;
    function "<"(L: INTEGER; R: UNSIGNED) return BOOLEAN;
    function "<"(L: SIGNED; R: INTEGER) return BOOLEAN;
    function "<"(L: INTEGER; R: SIGNED) return BOOLEAN;

    function "<="(L: UNSIGNED; R: UNSIGNED) return BOOLEAN;
    function "<="(L: SIGNED; R: SIGNED) return BOOLEAN;
    function "<="(L: UNSIGNED; R: SIGNED) return BOOLEAN;
    function "<="(L: SIGNED; R: UNSIGNED) return BOOLEAN;
    function "<="(L: UNSIGNED; R: INTEGER) return BOOLEAN;
    function "<="(L: INTEGER; R: UNSIGNED) return BOOLEAN;
    function "<="(L: SIGNED; R: INTEGER) return BOOLEAN;
    function "<="(L: INTEGER; R: SIGNED) return BOOLEAN;

    function ">"(L: UNSIGNED; R: UNSIGNED) return BOOLEAN;
    function ">"(L: SIGNED; R: SIGNED) return BOOLEAN;
    function ">"(L: UNSIGNED; R: SIGNED) return BOOLEAN;
    function ">"(L: SIGNED; R: UNSIGNED) return BOOLEAN;
    function ">"(L: UNSIGNED; R: INTEGER) return BOOLEAN;
    function ">"(L: INTEGER; R: UNSIGNED) return BOOLEAN;
    function ">"(L: SIGNED; R: INTEGER) return BOOLEAN;
    function ">"(L: INTEGER; R: SIGNED) return BOOLEAN;

    function ">="(L: UNSIGNED; R: UNSIGNED) return BOOLEAN;
    function ">="(L: SIGNED; R: SIGNED) return BOOLEAN;
    function ">="(L: UNSIGNED; R: SIGNED) return BOOLEAN;
    function ">="(L: SIGNED; R: UNSIGNED) return BOOLEAN;
    function ">="(L: UNSIGNED; R: INTEGER) return BOOLEAN;
    function ">="(L: INTEGER; R: UNSIGNED) return BOOLEAN;
    function ">="(L: SIGNED; R: INTEGER) return BOOLEAN;
    function ">="(L: INTEGER; R: SIGNED) return BOOLEAN;

    function "="(L: UNSIGNED; R: UNSIGNED) return BOOLEAN;
    function "="(L: SIGNED; R: SIGNED) return BOOLEAN;
    function "="(L: UNSIGNED; R: SIGNED) return BOOLEAN;
    function "="(L: SIGNED; R: UNSIGNED) return BOOLEAN;
    function "="(L: UNSIGNED; R: INTEGER) return BOOLEAN;
    function "="(L: INTEGER; R: UNSIGNED) return BOOLEAN;
    function "="(L: SIGNED; R: INTEGER) return BOOLEAN;
    function "="(L: INTEGER; R: SIGNED) return BOOLEAN;

    function "/="(L: UNSIGNED; R: UNSIGNED) return BOOLEAN;
    function "/="(L: SIGNED; R: SIGNED) return BOOLEAN;
    function "/="(L: UNSIGNED; R: SIGNED) return BOOLEAN;
    function "/="(L: SIGNED; R: UNSIGNED) return BOOLEAN;
    function "/="(L: UNSIGNED; R: INTEGER) return BOOLEAN;
    function "/="(L: INTEGER; R: UNSIGNED) return BOOLEAN;
    function "/="(L: SIGNED; R: INTEGER) return BOOLEAN;
    function "/="(L: INTEGER; R: SIGNED) return BOOLEAN;
    -------Boolean functions below  ADDED in SEPT 1995 ----------------
    function "not" (L: SIGNED) return SIGNED;
    function "not" (L: SIGNED) return UNSIGNED;
    function "not" (L: UNSIGNED) return SIGNED;
    function "not" (L: UNSIGNED) return UNSIGNED;

    function "or" (L: SIGNED; R: SIGNED) return SIGNED;
    function "or" (L: SIGNED; R: SIGNED) return UNSIGNED;
    function "or" (L: SIGNED; R: UNSIGNED) return SIGNED;
    function "or" (L: SIGNED; R: UNSIGNED) return UNSIGNED;
    function "or" (L: UNSIGNED; R: SIGNED) return SIGNED;
    function "or" (L: UNSIGNED; R: SIGNED) return UNSIGNED;
    function "or" (L: UNSIGNED; R: UNSIGNED) return SIGNED;
    function "or" (L: UNSIGNED; R: UNSIGNED) return UNSIGNED;

    function "and" (L: SIGNED; R: SIGNED) return SIGNED;
    function "and" (L: SIGNED; R: SIGNED) return UNSIGNED;
    function "and" (L: SIGNED; R: UNSIGNED) return SIGNED;
    function "and" (L: SIGNED; R: UNSIGNED) return UNSIGNED;
    function "and" (L: UNSIGNED; R: SIGNED) return SIGNED;
    function "and" (L: UNSIGNED; R: SIGNED) return UNSIGNED;
    function "and" (L: UNSIGNED; R: UNSIGNED) return SIGNED;
    function "and" (L: UNSIGNED; R: UNSIGNED) return UNSIGNED;

    function "xor" (L: SIGNED; R: SIGNED) return SIGNED;
    function "xor" (L: SIGNED; R: SIGNED) return UNSIGNED;
    function "xor" (L: SIGNED; R: UNSIGNED) return SIGNED;
    function "xor" (L: SIGNED; R: UNSIGNED) return UNSIGNED;
    function "xor" (L: UNSIGNED; R: SIGNED) return SIGNED;
    function "xor" (L: UNSIGNED; R: SIGNED) return UNSIGNED;
    function "xor" (L: UNSIGNED; R: UNSIGNED) return SIGNED;
    function "xor" (L: UNSIGNED; R: UNSIGNED) return UNSIGNED;

    function "nor" (L: SIGNED; R: SIGNED) return SIGNED;
    function "nor" (L: SIGNED; R: SIGNED) return UNSIGNED;
    function "nor" (L: SIGNED; R: UNSIGNED) return SIGNED;
    function "nor" (L: SIGNED; R: UNSIGNED) return UNSIGNED;
    function "nor" (L: UNSIGNED; R: SIGNED) return SIGNED;
    function "nor" (L: UNSIGNED; R: SIGNED) return UNSIGNED;
    function "nor" (L: UNSIGNED; R: UNSIGNED) return SIGNED;
    function "nor" (L: UNSIGNED; R: UNSIGNED) return UNSIGNED;

    function "nand" (L: SIGNED; R: SIGNED) return SIGNED;
    function "nand" (L: SIGNED; R: SIGNED) return UNSIGNED;
    function "nand" (L: SIGNED; R: UNSIGNED) return SIGNED;
    function "nand" (L: SIGNED; R: UNSIGNED) return UNSIGNED;
    function "nand" (L: UNSIGNED; R: SIGNED) return SIGNED;
    function "nand" (L: UNSIGNED; R: SIGNED) return UNSIGNED;
    function "nand" (L: UNSIGNED; R: UNSIGNED) return SIGNED;
    function "nand" (L: UNSIGNED; R: UNSIGNED) return UNSIGNED;
    ----------------------------------------------------------

    function SHL(ARG: UNSIGNED; COUNT: UNSIGNED) return UNSIGNED;
    function SHL(ARG: SIGNED; COUNT: UNSIGNED) return SIGNED;
    function SHR(ARG: UNSIGNED; COUNT: UNSIGNED) return UNSIGNED;
    function SHR(ARG: SIGNED; COUNT: UNSIGNED) return SIGNED;

    function CONV_INTEGER(ARG: INTEGER) return INTEGER;
    function CONV_INTEGER(ARG: UNSIGNED) return INTEGER;
    function CONV_INTEGER(ARG: SIGNED) return INTEGER;
    function CONV_INTEGER(ARG: STD_ULOGIC) return SMALL_INT;

    function CONV_UNSIGNED(ARG: INTEGER; SIZE: INTEGER) return UNSIGNED;
    function CONV_UNSIGNED(ARG: UNSIGNED; SIZE: INTEGER) return UNSIGNED;
    function CONV_UNSIGNED(ARG: SIGNED; SIZE: INTEGER) return UNSIGNED;
    function CONV_UNSIGNED(ARG: STD_ULOGIC; SIZE: INTEGER) return UNSIGNED;
    function CONV_UNSIGNED(ARG: STD_LOGIC_VECTOR; SIZE: INTEGER) return UNSIGNED;

    function CONV_SIGNED(ARG: INTEGER; SIZE: INTEGER) return SIGNED;
    function CONV_SIGNED(ARG: UNSIGNED; SIZE: INTEGER) return SIGNED;
    function CONV_SIGNED(ARG: SIGNED; SIZE: INTEGER) return SIGNED;
    function CONV_SIGNED(ARG: STD_ULOGIC; SIZE: INTEGER) return SIGNED;
    function CONV_SIGNED(ARG: STD_LOGIC_VECTOR; SIZE: INTEGER) return SIGNED;

    function CONV_STD_LOGIC_VECTOR(ARG: INTEGER; SIZE: INTEGER) 
						       return STD_LOGIC_VECTOR;
    function CONV_STD_LOGIC_VECTOR(ARG: UNSIGNED; SIZE: INTEGER) 
						       return STD_LOGIC_VECTOR;
    function CONV_STD_LOGIC_VECTOR(ARG: SIGNED; SIZE: INTEGER) 
						       return STD_LOGIC_VECTOR;
    function CONV_STD_LOGIC_VECTOR(ARG: STD_ULOGIC; SIZE: INTEGER) 
						       return STD_LOGIC_VECTOR;
    -- zero extend STD_LOGIC_VECTOR (ARG) to SIZE, 
    -- SIZE < 0 is same as SIZE = 0
    -- returns STD_LOGIC_VECTOR(SIZE-1 downto 0)
    function EXT(ARG: STD_LOGIC_VECTOR; SIZE: INTEGER) return STD_LOGIC_VECTOR;

    -- sign extend STD_LOGIC_VECTOR (ARG) to SIZE, 
    -- SIZE < 0 is same as SIZE = 0
    -- return STD_LOGIC_VECTOR(SIZE-1 downto 0)
    function SXT(ARG: STD_LOGIC_VECTOR; SIZE: INTEGER) return STD_LOGIC_VECTOR;

    function TO_BOOLEAN(OPER: STD_ULOGIC) return BOOLEAN;
    function TO_MVL9(OPER: BOOLEAN) return STD_ULOGIC;
    function MVL9_TO_BIT(OPER: STD_ULOGIC) return BIT;
    function MVL9_TO_BITV(OPER: STD_LOGIC_VECTOR)  return BIT_VECTOR;

end SIGNED_ARITH;



library IEEE;
use IEEE.std_logic_1164.all;

package body SIGNED_ARITH is

    ------------- next part for Boolean functions ----
  TYPE stdlogic_1d IS ARRAY (std_logic) of std_logic;
  TYPE stdlogic_table is ARRAY (std_logic,std_logic) of std_logic;


    -- truth table for "and" function
    CONSTANT and_table : stdlogic_table := (
    --      ----------------------------------------------------
    --      |  U    X    0    1    Z    W    L    H    -         |   |  
    --      ----------------------------------------------------
            ( 'U', 'U', '0', 'U', 'U', 'U', '0', 'U', 'U' ),  -- | U |
            ( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ),  -- | X |
            ( '0', '0', '0', '0', '0', '0', '0', '0', '0' ),  -- | 0 |
            ( 'U', 'X', '0', '1', 'X', 'X', '0', '1', 'X' ),  -- | 1 |
            ( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ),  -- | Z |
            ( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ),  -- | W |
            ( '0', '0', '0', '0', '0', '0', '0', '0', '0' ),  -- | L |
            ( 'U', 'X', '0', '1', 'X', 'X', '0', '1', 'X' ),  -- | H |
            ( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' )   -- | - |
    );

    -- truth table for "or" function
    CONSTANT or_table : stdlogic_table := (
    --      ----------------------------------------------------
    --      |  U    X    0    1    Z    W    L    H    -         |   |  
    --      ----------------------------------------------------
            ( 'U', 'U', 'U', '1', 'U', 'U', 'U', '1', 'U' ),  -- | U |
            ( 'U', 'X', 'X', '1', 'X', 'X', 'X', '1', 'X' ),  -- | X |
            ( 'U', 'X', '0', '1', 'X', 'X', '0', '1', 'X' ),  -- | 0 |
            ( '1', '1', '1', '1', '1', '1', '1', '1', '1' ),  -- | 1 |
            ( 'U', 'X', 'X', '1', 'X', 'X', 'X', '1', 'X' ),  -- | Z |
            ( 'U', 'X', 'X', '1', 'X', 'X', 'X', '1', 'X' ),  -- | W |
            ( 'U', 'X', '0', '1', 'X', 'X', '0', '1', 'X' ),  -- | L |
            ( '1', '1', '1', '1', '1', '1', '1', '1', '1' ),  -- | H |
            ( 'U', 'X', 'X', '1', 'X', 'X', 'X', '1', 'X' )   -- | - |
    );

    -- truth table for "xor" function
    CONSTANT xor_table : stdlogic_table := (
    --      ----------------------------------------------------
    --      |  U    X    0    1    Z    W    L    H    -         |   |  
    --      ----------------------------------------------------
            ( 'U', 'U', 'U', 'U', 'U', 'U', 'U', 'U', 'U' ),  -- | U |
            ( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ),  -- | X |
            ( 'U', 'X', '0', '1', 'X', 'X', '0', '1', 'X' ),  -- | 0 |
            ( 'U', 'X', '1', '0', 'X', 'X', '1', '0', 'X' ),  -- | 1 |
            ( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ),  -- | Z |
            ( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ),  -- | W |
            ( 'U', 'X', '0', '1', 'X', 'X', '0', '1', 'X' ),  -- | L |
            ( 'U', 'X', '1', '0', 'X', 'X', '1', '0', 'X' ),  -- | H |
            ( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' )   -- | - |
    );


  -- truth table for "not" function
    CONSTANT not_table: stdlogic_1d := 
    --  -------------------------------------------------
    --  |   U    X    0    1    Z    W    L    H    -   |
    --  -------------------------------------------------
         ( 'U', 'X', '1', '0', 'X', 'X', '1', '0', 'X' ); 



    ---------------------
    function "not" (L:SIGNED) return SIGNED is
      variable result : SIGNED (L'range);
    begin
	   for i in result'range loop
	       result(i) := not_table(L(i));
           end loop;
	   return result;
    end "not";
    ---------------------
    ---------------------
    function "not" (L:SIGNED) return UNSIGNED is
      variable result : UNSIGNED (L'range);
    begin
	   for i in result'range loop
	       result(i) := not_table(L(i));
           end loop;
	   return result;
    end "not";
    ---------------------
    ---------------------
    function "not" (L:UNSIGNED) return SIGNED is
      variable result : SIGNED (L'range);
    begin
	   for i in result'range loop
	       result(i) := not_table(L(i));
           end loop;
	   return result;
    end "not";
    ---------------------
    ---------------------
    function "not" (L:UNSIGNED) return UNSIGNED is
      variable result : UNSIGNED (L'range);
    begin
	   for i in result'range loop
	       result(i) := not_table(L(i));
           end loop;
	   return result;
    end "not";
    ---------------------
    ---------------------
    function "or" (L: SIGNED; R: SIGNED) return SIGNED is
	 variable result : SIGNED (L'range);
    begin
	if (L'length /= R'length) then
	     assert false
	     report "arguments of overloaded or operator have different length"
	     severity error;
        else
	   for i in result'range loop
	       result(i) := or_table(L(i) , R(i));
           end loop;
        end if;
	return result;
    end "or";
    ---------------------
    ---------------------
    function "or" (L: SIGNED; R: SIGNED) return UNSIGNED is
	 variable result : UNSIGNED (L'range);
    begin
	if (L'length /= R'length) then
	     assert false
	     report "arguments of overloaded or operator have different length"
	     severity error;
        else
	   for i in result'range loop
	       result(i) := or_table(L(i) , R(i));
           end loop;
        end if;
	return result;
    end "or";
    ---------------------

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线亚洲精品福利网址导航| 中文字幕亚洲一区二区va在线| 中文字幕一区日韩精品欧美| 亚洲精品视频在线| 成人精品亚洲人成在线| 久久天天做天天爱综合色| 国产精品成人一区二区艾草| 亚洲美女免费视频| 久久色中文字幕| 亚洲最大成人综合| 一本色道久久综合精品竹菊| 国产精品久久看| 97se亚洲国产综合自在线观| 国产精品国产精品国产专区不蜜| 国产激情视频一区二区在线观看 | 久久久久久久久久久久久女国产乱 | 国产91在线观看| 日本一区二区免费在线观看视频| 天堂一区二区在线免费观看| 337p亚洲精品色噜噜狠狠| 视频一区二区国产| 日韩欧美一级二级| 国产制服丝袜一区| 欧洲亚洲精品在线| 日本伊人色综合网| 337p日本欧洲亚洲大胆精品| 国产一区二区三区黄视频| 国产日韩av一区| 99精品久久免费看蜜臀剧情介绍| 久久精品亚洲麻豆av一区二区 | 91福利在线播放| 性感美女久久精品| 精品国产精品网麻豆系列| 国产乱色国产精品免费视频| 国产欧美一区二区在线观看| 欧美日韩国产在线播放网站| 久久男人中文字幕资源站| 不卡视频免费播放| 日韩精品一区第一页| 久久久99久久| 欧美高清视频一二三区 | 色国产精品一区在线观看| 麻豆国产91在线播放| 亚洲欧美电影院| www.99精品| 亚洲色图欧美激情| 欧美高清在线精品一区| 狠狠狠色丁香婷婷综合激情| 亚洲欧美一区二区三区极速播放 | 国产毛片精品视频| 91精品一区二区三区在线观看| 国产原创一区二区三区| 欧美一激情一区二区三区| 欧美挠脚心视频网站| 国产精品国产精品国产专区不蜜| 午夜激情久久久| 91免费观看在线| 国产精品免费久久| 久久国产尿小便嘘嘘| 欧美伊人精品成人久久综合97| 日韩成人av影视| 亚洲亚洲人成综合网络| 欧美疯狂做受xxxx富婆| 中文字幕人成不卡一区| 国产精品99久久久| 精品国免费一区二区三区| 午夜欧美电影在线观看| 色婷婷综合在线| 中文字幕一区二区三区色视频| 国内成人免费视频| 久久夜色精品国产欧美乱极品| 免费在线欧美视频| 日韩欧美一级片| 青草av.久久免费一区| 欧美在线你懂得| 亚洲午夜久久久久中文字幕久| 色久综合一二码| 一级中文字幕一区二区| 91国产精品成人| 亚洲二区在线观看| 欧美丰满一区二区免费视频| 亚洲一区二区三区激情| 亚洲人吸女人奶水| 久久精品这里都是精品| 一级特黄大欧美久久久| 一区二区三区蜜桃网| 日韩欧美国产1| 久久只精品国产| 黄色精品一二区| 精品欧美久久久| 国产真实乱偷精品视频免| 国产欧美一区二区精品久导航| 成人小视频在线观看| 中文字幕在线不卡视频| 欧美三级电影在线看| 三级欧美韩日大片在线看| 欧美电影免费观看高清完整版在线观看 | 国产日产精品1区| 97超碰欧美中文字幕| 一区二区三区四区在线| 欧美精品免费视频| 国产精品一级在线| 亚洲一区二区四区蜜桃| 日韩一区二区影院| 成人av在线观| 天天av天天翘天天综合网| 日韩欧美的一区二区| 丁香六月久久综合狠狠色| 樱花影视一区二区| 精品日韩99亚洲| 91免费观看在线| 精品系列免费在线观看| 国产精品欧美一区喷水| 欧美日韩高清一区二区三区| 国产成人在线视频免费播放| 亚洲不卡一区二区三区| 欧美激情一区二区三区全黄| 777xxx欧美| aaa欧美日韩| 久久精品国产99国产精品| 亚洲另类中文字| 精品福利二区三区| 欧美伊人久久久久久久久影院| 国产综合一区二区| 亚洲国产乱码最新视频| 欧美激情一区二区三区四区| 在线播放/欧美激情| 91麻豆免费观看| 国产一区二区免费视频| 日韩高清一区二区| 亚洲第一福利一区| 国产精品国产三级国产普通话蜜臀| 欧美精品vⅰdeose4hd| 丁香婷婷综合激情五月色| 麻豆视频观看网址久久| 亚洲激情图片qvod| 中文字幕在线不卡一区二区三区 | 国产女人水真多18毛片18精品视频 | 亚洲视频 欧洲视频| 久久亚洲影视婷婷| 欧美羞羞免费网站| 免费高清在线一区| 亚洲欧洲韩国日本视频| 欧美一级生活片| 在线一区二区三区| 国产在线一区二区| 日韩精品一区二区三区swag| 欧美在线视频你懂得| 色av成人天堂桃色av| 色婷婷精品久久二区二区蜜臀av| 岛国一区二区三区| 国产成人一区在线| 国产91精品精华液一区二区三区 | 久久影院视频免费| 精品裸体舞一区二区三区| 欧美一区二区三区电影| 日韩一区二区电影网| 5858s免费视频成人| 欧美精品色综合| 亚洲制服丝袜av| 亚洲一区二区三区四区中文字幕| 久久亚洲捆绑美女| 9i看片成人免费高清| 99麻豆久久久国产精品免费优播| 成人app下载| 成人精品国产福利| 91精品国产一区二区三区蜜臀| 欧美亚洲国产bt| 欧美精品丝袜中出| 日韩精品一区二区三区视频播放 | 精品精品国产高清一毛片一天堂| 日韩一区二区不卡| 久久久精品黄色| 综合自拍亚洲综合图不卡区| 亚洲乱码一区二区三区在线观看| 亚洲精品自拍动漫在线| 亚洲超碰97人人做人人爱| 美女mm1313爽爽久久久蜜臀| 国产精品亚洲第一区在线暖暖韩国| 久久99久久99精品免视看婷婷 | 国产精品色呦呦| 国产精品久久久久久户外露出| 综合久久一区二区三区| 亚洲免费在线电影| 免费一区二区视频| 成人免费av资源| 欧美亚日韩国产aⅴ精品中极品| 91麻豆精品国产自产在线| 久久久无码精品亚洲日韩按摩| 中文字幕一区av| 欧美a一区二区| 91麻豆swag| 久久久久久久久久看片| 亚洲影视在线播放| 国产精品456| 3atv在线一区二区三区| 国产精品嫩草影院av蜜臀| 日欧美一区二区| 一本一道久久a久久精品| 亚洲精品在线一区二区|