<table id="jn53i"></table>
    <table id="jn53i"></table>
      <table id="jn53i"><code id="jn53i"><menu id="jn53i"></menu></code></table><output id="jn53i"></output>
      <table id="jn53i"><code id="jn53i"></code></table><input id="jn53i"></input>
    1. <var id="jn53i"></var>
      電子工程師的短視頻社區
      500萬+工程師都在用
      直播中

      Vivado使用技巧時鐘的基礎知識

      FPGA設計論壇

      描述

      時鐘的基礎知識

      數字設計中,“時鐘”表示在寄存器之間可靠地傳輸數據所需的參考時間;Vivado的時序引擎利用時鐘特征來計算時序路徑需求,通過計算時間裕量(Slack)的方法報告設計的時序空余;時鐘必須被正確定義以最佳精度獲得最大的時序路徑覆蓋范圍,包含如下特性:

      定義在時鐘樹的驅動管腳或端口,通常稱作根或源點;

      通過周期和波形屬性來描述時鐘邊沿;

      周期(period)以ns為單位進行設定,與波形重復率相關;

      波形(waveform)以列表的形式給出,表中包含上升沿和下降沿在周期中的絕對時間,以ns為單位;第一個上升沿對應于第一個值,第一個下降沿對應第二個值;默認情況下,相位偏移從0ns開始,占空比為50%;

      如下圖給出了兩個時鐘Clk0: period=10, waveform={0 5}、Clk1: period=8, waveform = {2 8};?

      538e4738-f8f3-11ec-ba43-dac502259ad0.png

      上述給出的只是時鐘的理想特征。當時鐘進入了FPGA器件,通過時鐘樹傳遞時,時鐘邊沿會有延時,通常稱作時鐘網絡延遲;噪聲或硬件表現會導致時鐘隨時可能發生變化,通常稱作時鐘不確定性,包括時鐘抖動(Clock jitter)、相位錯位(Phase error)等等, Vivado在時序分析時會考慮這些非理想因素以得到精確的時序裕量;

      通常板子上有一個外部組件(如有源晶振)產生時鐘信號,通過輸入端口進入器件內部;外部時鐘可以通過MMCM、PLL、BUFR等特殊原語生成其它時鐘,也可以由LUT、寄存器等常規單元進行轉換(通常稱作門控時鐘);接下來的部分將講述如何由源時鐘定義成其他類型的時鐘;

      主時鐘Primary Clock

      主時鐘通常由兩個來源:(1)板級時鐘通過輸入端口進入設計;(2)GT收發器的輸出管腳(如恢復時鐘);

      主時鐘必須與一個網表對象相連,該對象代表了所有時鐘邊沿的開始點,并且在時鐘樹中向下傳遞;也可以說,主時鐘的源點定義了0時刻,Vivado靠此來計算時鐘延遲和不確定性 ;vivado會忽略所有時鐘樹上從主時鐘上游的單元到主時鐘之間的延時!

      主時鐘只能通過create_clock命令來定義,且必須放在約束的開始,這是因為其它時序約束幾乎都要參考主時鐘;下面給出幾個主時鐘的例子,第一個例子如下圖所示,采用單端時鐘輸入:

      53b4898e-f8f3-11ec-ba43-dac502259ad0.png

      板級時鐘通過sysclk端口進入FPGA,通過一個輸入緩沖器和一個時鐘緩沖器后到達寄存器,使用如下命令定義:

      create_clock -period 10 [get_ports sysclk]? #10ns周期,50%占空比,無相移

      create_clock -name devclk -period 10 -wavefor {2.5 5} [get_ports sysclk]? #板級時鐘名稱devclk,10ns周期,25%占空比,90°相移

      第二個例子,時鐘源由高速收發器gt0提供,如下圖所示:

      53d0854e-f8f3-11ec-ba43-dac502259ad0.png

      通過sysclk端口進入FPGA,之后經過混合時鐘管理單元MMCM生成其他時鐘,以gt0發出的時鐘為主時鐘,其他生成時鐘都有一個共同的時鐘源,使用如下命令定義:

      create_clock -name rxclk -period 3.33 [get_pins gt0/RXOUTCLK]

      第三個例子如下圖所示,采用差分時鐘輸入,這也是高速時鐘的輸入方式:

      53e4b97e-f8f3-11ec-ba43-dac502259ad0.png

      上圖中差分時鐘驅動一個PLL,定義主時鐘時必須只創建差分緩沖器的正極輸入;如果同時創建了正極、負極輸入,將會導致錯誤的CDC路徑;使用如下命令定義:

      create_clock -name sysclk -period 3.33 [get_ports SYS_CLK_clk_p]

      虛擬時鐘Virtual Clock

      虛擬時鐘通常用于設定對輸入和輸出的延遲約束,之所以稱為“虛擬”,是因為這種時鐘在物理上沒有與設計中的任何網表對象相連;定義時使用create_clock命令,但無需指定源對象 ,在下列情況需要用到虛擬時鐘:

      所有的設計時鐘都不是外部器件I/O的參考時鐘;

      FPGA的I/O路徑與一個內部生成的時鐘相關,但是該時鐘不能合適地通過對板級時鐘計時來生成(如兩個周期的比不是整數);

      希望為與I/O延遲約束相關的時鐘設定不同的抖動和延遲,但是不希望修改內部時鐘的特征 ;

      比如時鐘clk_virt的周期為10ns,且不與任何網表對象相連,可以這樣定義“create_clock -name clk_virt –period 10”,沒有指定objects參數;注意,虛擬時鐘必須在使用之前便定義好 ;

      生成時鐘Generated Clock

      生成時鐘是指在設計內部由特殊單元(如MMCM、PLL)或用戶邏輯驅動的時鐘;生成時鐘與一個上級時鐘(注:官方稱作master clock,為與primary clock作區分,這里稱作上級時鐘)相關,其屬性也是直接由上級時鐘派生而來;上級時鐘可以是一個主時鐘,也可以是另一個生成時鐘;

      生成時鐘使用create_generated_clock命令定義,該命令不是設定周期或波形,而是描述時鐘電路如何對上級時鐘進行轉換。這種轉換可以是下面的關系:

      Vivado計算生成時鐘的延遲時,會追蹤生成時鐘的源管腳與上級時鐘的源管腳之間的所有組合和時序路徑。某些情況下可能只希望考慮組合邏輯路徑,在命令行后添加-combinational選項即可;

      這里先解釋一下本文甚至本系列大量使用的兩個詞,端口(Port)和管腳(Pin)。端口通常用get_ports命令獲取,管腳使用get_pins命令獲取。二者的含義是不同的,但管腳的范圍更廣泛,比如設計中用到的一個寄存器都有3個管腳:clk、D和Q;下面給出幾個定義生成時鐘的例子:

      簡單的頻率分頻

      簡單的頻率倍頻

      頻率倍頻與分頻的組合,獲得一個非整數的比例,通常由MMCM或PLL完成

      相移或波形反相

      占空比改變

      上述所有關系的組合

      1.簡單的2分頻

      540bf03e-f8f3-11ec-ba43-dac502259ad0.png

      可以采用如下兩種方法對生成時鐘進行約束:

      #定義主時鐘,周期10ns,50%占空比

      create_clock -name clkin -period 10 [get_ports clkin]

      #約束方法1,主時鐘作為源點

      create_generated_clock -name clkdiv2 -source [get_ports clkin] -divide_by 2 [get_pins REGA/Q]?

      #約束方法2,REGA的始終管腳作為源點

      create_generated_clock -name clkdiv2 -source [get_pins REGA/C] -divide_by 2 [get_pins REGA/Q]

      約束命令中使用**-source選項來設定上級時鐘,但如上所示,該選項只能設定為一個端口或管腳類型的網表對象,不能直接設置為時鐘類型對象。上面約束使用-divide_by選項設置分頻系數,此外還可以使用-edges**選項,如下所示:

      #該約束與上面等效

      create_generated_clock -name clkdiv2 -source [get_pins REGA/C] -eedges {1 3 5} [get_pins REGA/Q]

      #1 3 5 分別為生成時鐘一個周期的三個沿對應master clock的上升沿的位置

      -edges的參數為一個列表,該列表通過主時鐘的邊沿來描述生成時鐘的波形;列表中的值為主時鐘邊沿的序號(注意觀察上圖),由時鐘上升沿開始,定義了生成時鐘邊沿的時間點;

      2.改變占空比與相移

      如果僅需要改變時鐘的相移,使用**-edge_shift**選項可以正向或反向設定每一個生成時鐘波形的相移量;注意,-edge_shift選項不能與-devide_by、-multiply_by、-invert選項同時使用;下圖中上級時鐘為clkin,進入mmcm0單元,產生一個25%占空比、相移90°的時鐘:

      541b2414-f8f3-11ec-ba43-dac502259ad0.png

      可以采用如下方法對生成時鐘進行約束:使用上級時鐘的1、2、3標號邊沿(即0ns、5ns、10ns)定義生成時鐘,為了得到預期波形,1和3標號邊沿要分別移動2.5ns,得到2.5ns、5ns、12.5ns的波形:?

      #定義主時鐘,周期10ns,50%占空比

      create_clock -name clkin -period 10 [get_ports clkin]

      #定義生成時鐘,周期10ns,25%占空比,90°相移

      create_generated_clock -name clkshift -source [get_pins mmcm0/CLKIN] -edges {1 2 3}

      -edge_shift {2.5 0 2.5} [get_pins mmcm0/CLKOUT]

      3.同時倍頻與分頻

      這種情況通常用于定義MMCM或PLL的輸出,一般使用這些IP核時會自動創建相應約束;考慮上例中的圖,假設MMCM將上級時鐘倍頻到4/3倍,無法直接倍頻,需要同時使用-divede_by和-multiply_by選項來實現:

      create_generated_clock -name clk43 -source [get_pins mmcm0/CLKIN] -multiply_by 4

      -divide_by 3 [get_pins mmcm0/CLKOUT]

      4.僅通過組合路徑追蹤上級時鐘

      前面簡單介紹了-combinational選項的使用,為了更好理解,這里舉一個具體例子;下圖中,上級時鐘同時傳遞到寄存器和多路選擇器中,寄存器對時鐘進行2分頻,多路選擇器從寄存器的2分頻時鐘和上級時鐘中選擇一個作為生成時鐘輸出 :

      542dad32-f8f3-11ec-ba43-dac502259ad0.png

      顯而易見,從上級時鐘到生成時鐘有兩條路徑,一條為時序路徑,一條為組合路徑;如果我們只希望考慮組合路徑上的延遲時,定義生成時鐘時就需要使用-combinational選項 :

      create_generated_clock -name clkout -source [get_pins mmcm0/CLKIN] -combinational

      [get_pins MUX/O]

      自動生成時鐘 Automatically Derived Clocks

      這種類型時鐘算是生成時鐘的一種特例,“自動”是指在已經定義了上級時鐘的情況下,Vivado會自動為時鐘管理單元CMBs(Clock Modifying Blocks)的輸出管腳創建約束,官方稱作Automatically Derived Clocks或Auto-generated Clock;

      如果約束中已經存在用戶在某一網表對象上定義的時鐘,則不會創建相同對象上的自動生成時鐘;

      下面給出一個具體例子,下圖中上級時鐘clkin驅動clkip/mmcm0單元的CLKIN輸入,該單元是一個MMCME2資源的實例,則自動生成時鐘的定義源點為clkip/mmcm0/CLKOUT,頂層與此源點連接的網絡名為clkip/cpuClk,自動生成時鐘的名字便是cpuClk:

      54521bfe-f8f3-11ec-ba43-dac502259ad0.png

      如上所述,Vivado會自動創建自動生成時鐘的名稱(Name),如果兩個名稱發生沖突也會自動添加后綴,如usrclk、usrclk_1等等;

      時鐘組Clock Group

      默認情況下,Vivado會測量設計中所有時鐘之間的路徑時序,添加如下兩種約束可以控制該功能:

      劃分時鐘組通常有兩個依據:

      (1)原理圖或時鐘網絡報告中的時鐘樹拓撲圖,判斷哪些時鐘不應該放在一起做時序分析;

      (2)時鐘交互報告查看兩個時鐘間存在的約束,判斷它們是否有共享的主時鐘(代表是否有已知的相位關系)或者是否有公共周期 ;

      但要明白,我們設定時鐘組的目的還是為了保證設計在硬件中能正常工作,因此我們必須確保這些忽略了時序分析的路徑有合適的再同步電路或異步數據傳輸協議;

      set_clock_groups:建立時鐘組,Vivado不會對不同時鐘組的時鐘之間進行時序分析;

      set_false_path:將兩個時鐘之間的路徑設置為false path后,不會對該路徑進行任何時序分析;

      根據時鐘間的關系,可以做如下分類:

      同步時鐘:即兩個時鐘間有可預知的相對相位,通常它們的時鐘樹源自網表中的同一個根,且有一個公共周期;

      異步時鐘:兩個時鐘間有無法預知的相對相位。比如兩個獨立的晶振信號通過兩個輸入端口進入FPGA中,生成兩個時鐘。由于兩個主時鐘沒有明確的相位關系,兩個生成時鐘間便是異步的;

      不可擴展時鐘:官方稱作Unexpandable Clocks,是指時序引擎在1000個周期內無法判斷兩個時鐘是否有公共周期。這種情況通常發生在兩個時鐘周期比是一個特殊的分數,比如一個主時鐘通過MMCM生成一個周期為5.125ns的時鐘clk1和一個周期為6.666ns的時鐘clk2,盡管它們在時鐘樹的根上有一個確定的相位關系,但是在1000個周期內時鐘上升沿無法再次對齊;

      1.異步時鐘組?

      同步時鐘可以安全地進行時序分析,異步時鐘和不可擴展時鐘雖然通過時序分析也會得到一個裕量值,但這個值不可作為可靠結果;從這個角度出發,不可擴展時鐘也可以視作一種特殊的異步時鐘;這就需要通過設置時鐘組來忽略異步時鐘的時序路徑上的時序分析 ;

      這里舉個例子,一個主時鐘clk0通過MMCM生成兩個時鐘usrclk和itfclk;另一個主時鐘clk1通過另一個MMCM生成兩個時鐘clkrx和clktx,用如下命令創建異步時鐘組:?

      set_clock_groups -name async_clk0_clk1 -asynchronous -group {clk0 usrclk itfclk}

      -group {clk1 gtclkrx gtclktx}

      #如果時鐘名稱事先不知道,可以用如下寫法

      set_clock_groups -name async_clk0_clk1 -asynchronous -group [get_clocks -include_generated_clocks clk0] -group [get_clocks -include_generated_clocks clk1]

      2.互斥時鐘組 Exclusive Clock Groups

      下面再介紹另一種會用到時鐘組的情況:某些設計會有幾個操作模式,不同操作模式使用不同的時鐘,這些時鐘通常由專用的時鐘選擇器進行選擇,如BUFGMUX和BUFGCTRL,最好不要用LUT作時鐘選擇器;

      這些單元都是組合邏輯單元,Vivado會將所有輸入傳遞到輸出;在Vivado IDE中,幾個時序時鐘可以同時存在時鐘樹上,方便地同時報告所有操作模式,但是在硬件中這是不可能的,它們之間是互斥的,這些時鐘便稱作互斥時鐘;

      舉個例子,一個MMCM實例生成的兩個時鐘clk0和clk1,與一BUFGMUX實例clkmux相連,clkmux的輸出驅動設計時鐘樹;默認情況下,雖然clk0和clk1共享同一時鐘樹,且不能同時存在,Vivado還是會分析clk0和clk1之間的路徑,這個問題要通過設置互斥時鐘組來解決,達到禁止分析這兩個時鐘間路徑 的目的。約束如下:

      set_clock_groups -name exclusive_clk0_clk1 -physically_exclusive

      -group clk0 -group clk1

      在ASIC工藝中使用-physically_exclusive和-logically_exclusive代表不同的信號完整性分析模式,但對于Xilinx FPGA而言,二者是等價的,都可以使用;?

      時鐘延遲、抖動與不確定性

      本文的上述約束可以說都是對時鐘的理想特征進行約束,為了更精確地進行時序分析,設計者還必須設定一些與運行環境相關的可預測變量和隨機變量,這部分也稱作時鐘的不確定性特征;

      1.時鐘延遲latency

      經過板子上和FPGA器件內部的傳輸,時鐘邊沿到達目的地后會有一個確定的延遲,這個延遲可以分為兩個部分看待:

      網絡延遲:也稱作插入延遲,指在FPGA內部傳輸帶來的延遲;Vivado會自動分析計算該延遲,布線過程前只是一個粗略的估計,布線后便可以得到一個精確的值;對于生成時鐘,包含其本身的網絡延遲和上級時鐘的網絡延遲兩部分;

      源端延遲:通常指FPGA器件外,時鐘進入源點前的傳輸延遲,這部分延遲與PCB設計相關,需要用set_clock_latency命令進行約束;

      下面給出一個約束源端時鐘延遲的例子:

      # Minimum source latency value for clock sysClk (for both Slow and Fast corners)

      set_clock_latency -source -early 0.2 [get_clocks sysClk]

      # Maximum source latency value for clock sysClk (for both Slow and Fast corners)

      set_clock_latency -source -late 0.5 [get_clocks sysClk]

      2.時鐘抖動jitter?

      對于ASIC器件來說,時鐘抖動通常代表了時鐘不確定性特征;但對于Xilinx FPGA而言,抖動屬性被當作可預測變量看待;抖動有的需要單獨設置,有的在時序分析過程中自動計算,抖動分為兩種:

      輸入抖動:指實際時鐘邊沿與理想時鐘邊沿到達時刻之間的差值,使用set_iput_jitter命令為每個主時鐘單獨設置輸入抖動;但是不能直接為生成時鐘設置輸入抖動,這部分由工具自動計算,如果(1).生成時鐘由一個組合或時序單元創建,生成時鐘的抖動與上級時鐘相同;(2).生成時鐘由 MMCM或PLL驅動,生成時鐘的抖動為一個自動計算的值;

      系統抖動:指電源噪聲、板級噪聲或其它原因引起的整體的抖動,對于整個設計,使用set_system_jitter命令設置一個值即可,會應用到所有時鐘;

      下面給出一個約束輸入抖動的例子:

      #主時鐘傳輸過程中有±100ps的抖動

      set_input_jitter [get_clocks -of_objects [get_clocks sysclk]] 0.1

      不過,時鐘抖動對整個時鐘不確定性計算的影響不是太大。計算時鐘不確定性時對每條路徑都是獨立的,且主要依賴于時鐘拓撲結構、路徑上的時鐘對、時鐘樹上是否存在MMCM/PLL單元等其它因素;

      3.附加的時鐘不確定性 Additional Clock Uncertainty

      使用set_clock_uncertainty命令可以根據需要為特定的時鐘關系定義附加的時鐘不確定性,這樣在時序分析時,可以為設計中的某些部分增加額外裕量?

      看下面的例子:

      set_clock_uncertainty 2.0 -from [get_clocks clk1] -to [get_clocks clk2]?

      set_clock_uncertainty 1.0 [get_clocks clk1]

      這里首先約束從clk1到clk2有一個2ns的時鐘不確定性,接著又約束clk1有1ns的時鐘不確定性,但是后面這條約束不會改動從clk1到clk2之間的關系;同時,要注意clk1到clk2有時鐘間的不確定性,clk2到clk1也有時鐘間的不確定性,所以要約束完整!?

      審核編輯 :李倩

      原文標題:Vivado使用技巧時鐘的約束方法

      文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

      ?

      打開APP閱讀更多精彩內容

      免費PCB檢查工具!一鍵分析設計隱患!

      Altium Designer超全封裝庫(帶3D模型)

      全部0條評論

      快來發表一下你的評論吧 !

      日本人妻不卡一区二区三区中文字幕,国色天香一卡二卡二卡四卡,人妻无码av一区二区三区精品,毛1卡2卡3卡4卡免费视频,一卡二卡三卡免费播放在线观看 成年片黄网站色大全免费的| 中年夫妇大白天啪啪| 成年美女黄网站色大免费全看| 亚洲国产日韩a在线欧美| 无双影视在线视频免费观看| 18禁止观看美女脱裤子男生桶| 暖暖视频免费视频播放中文| 一卡二卡三卡四卡日韩| 亚洲国产精品久久艾草| 婷婷丁香五月天综合东京热| YW193 福利 18禁| 高清日韩AV在线影院| 国产欧美日韩精品专区| 香蕉人在线香蕉人在线| 人妻AV无码专区HD| 99热99这里只有精品6国产| 18进禁男女爱免费视频| 亚洲成AV人在线视达达兔| 日本高清色倩视频在线观看| 偷拍两口中年夫妇也疯狂| 国语自产拍学生在线观看| 中国熟妇牲交405060| 国产一卡二卡三卡四卡高清免费| 超乳爆乳中文字幕无码| 十分钟免费视频大全| 中文字字幕码一二三区| 11—15萝自慰喷水| 欧美可以直接看的A片| AV东京热无码专区| 6080YY在线理论片手机| 女生一卡二卡三卡| 山东熟女啪啪哦哦叫| 日本十八禁黄无遮挡禁视频| 老头挺进娇妻身体| 偷看农村妇女作爱全过程| 卡1卡2卡3卡4免费视频| CHINESE野外男女FREE| 午夜福利YW在线观看2020| 免费A片在线观看全网站| 仙子玉臀翘起迎合巨龙| 开小花苞好爽紧嫩| 九九漫画网_韩漫无遮免费| 抖音在线解析下载视频| 国产在线视精品在亚洲_欧美| 成年片黄网站色大全WWW| 好男人影视在线观看完整版| 岳两女共夫并一起怀孕| 黑森林精品AV导航| 真人做受120分钟小视频| 无敌神马在线观看高清视频动漫| 欧美人妻在线一区二区| A片无限看| 日本高清色本在线WWW| 亚洲国产欧美在线人成| 亚洲V日本在线电影| 人妻无码中文视频播放| 亚洲国产精品VA在线观看| 色戒无删除158分钟完整版| 欧美性色黄大片| AV国产片处破国语在线观看| 日本公妇中字在线观看| 韩国高清| 三级视频日本不卡在线观看| 三次高潮SPA按摩在线观看| 成年无码AV片| 10000部无码免费视频拍拍拍| 日本JAPANESE丰满| 免费啪视频观试看视频软件| 欧美 亚洲 国产 日韩 综合AⅤ| 亚洲AV最新在线网址| 男同同性视频CHINA69| 苍井空视频| 欧美泑泑1500部| 五月天丁香婷深爱综合网| 无码AV天天AV天天爽| 国色天香小说| 免费的污污的网站在线观看| 午夜少妇高潮.在线看| 漂亮人妻当面被黑人玩弄| 日本AV亚洲色在线观看| 男女做受A片| 十八禁女性裸体啪啪漫画网| 高清无码日本一区二区| 一 级 黄 色 片| 抖音解析视频网站链接| 亚洲AV欧美AV片| 一品道门免费视频韩国| 日本无码 中文字幕 在线| 午夜亚洲国产理论片中文| xiaav| 韩国三级高潮爽| 18禁中文无码AV在线看| 女人与狥交下配A级| 亚洲 欧洲 日产 韩国 综合| 亚洲日本欧美天堂在线| 孕妇被强奷到高潮| 国产永久免费观看视频| 看全色黄大色黄大片 视频| 国产孕妇A片全部精品 | 无敌神马在线完整视频| K19寡妇制造者电影完整版| 国产00高中生在线视频| 国产电影一卡二卡三卡四卡| 野外性XXXXFREEXXXXX| 粉嫩虎白女18P| 美女扒开尿眼无遮挡免费视频| 少妇被黑人4P到惨叫在线观看| 93影视| 两个人的房间在线观看完整版| 无遮爆乳喷汁无遮掩动漫漫画| 99精品热视频30在线热视频| GOGO人体大胆高清啪啪| 国产亚洲精品国产福利你懂的| 国产按摩xxxx| 真实国产乱子伦对白视频| 69日本人XXXX学生| 朋友的朋友4线观高清| 色中涩AV男人的天堂| 中文娱乐网| 少妇高潮惨叫正在播放| 亚洲欧美国产日韩天堂区| 免费古装A级毛片无码| 男人又硬又粗桶女人免费视频| 婷婷久久综合九色综合88| 沟厕欣赏女尿高清| 人妻少妇一区二区三区| 抖音全集在线观看| 同性男男黄网站在线观看| 伊人久久精品无码二区| 经典千人斩| 极品 在线 视频 大陆 国产| BBWW性欧美| 欧美熟妇的性裸交 | 免费网站看V片在线无遮挡| 丰满少妇大力进入| 熟妇丰满大屁股在线播放| 亚洲色拍自偷自拍欧美| 在线观看免费人成视频色| 亚洲成av人片在线观看天堂无码| 日日摸夜夜添夜夜添高潮出水| 亚洲AV电影院在线观看| 毛片卡1卡2卡3卡4| 欧美大屁BBW| 日本公共厕所WWW撒尿| 日韩视频无码中字免费观| 肥婆与小伙子牲交| 国色天香免费影院| 国产午夜激无码AV毛片| 国模吧双双大尺度炮交GOGO| 老熟女老太婆爽兰州露脸| 香港经典三级片| 被强奷到舒服的视频| CAOPORON_最新公开免费| 仑乱老女人在线观看| 亚洲精品国产成人| 啦啦啦高清在线看免费观看| 薰衣草免费观看全集在线| 暖暖视频在线观看免费中文字幕| YELLOW高清在线观看免费| 美女胸禁止18以下看免费网站| 亚洲色中文字幕在线播放| 日本一卡二卡三卡四卡网| 女友在工地被灌满精| 女人国产裸体舞在线播放|
      ×
      20
      完善資料,
      賺取積分