在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內(nèi)不再提示

Verilog仿真激勵(lì)舉例

冬至子 ? 來(lái)源:數(shù)字IC與好好生活的兩居室 ? 作者:除夕之夜啊 ? 2023-06-02 11:35 ? 次閱讀

Verilog 代碼設(shè)計(jì)完成后,還需要進(jìn)行重要的步驟,即邏輯功能仿真。仿真激勵(lì)文件稱(chēng)之為 testbench,放在各設(shè)計(jì)模塊的頂層,以便對(duì)模塊進(jìn)行系統(tǒng)性的例化調(diào)用進(jìn)行仿真。

毫不夸張的說(shuō),對(duì)于稍微復(fù)雜的 Verilog 設(shè)計(jì),如果不進(jìn)行仿真,即便是經(jīng)驗(yàn)豐富的老手,99.9999% 以上的設(shè)計(jì)都不會(huì)正常的工作。不能說(shuō)仿真比設(shè)計(jì)更加的重要,但是一般來(lái)說(shuō),仿真花費(fèi)的時(shí)間會(huì)比設(shè)計(jì)花費(fèi)的時(shí)間要多。有時(shí)候,考慮到各種應(yīng)用場(chǎng)景,testbench 的編寫(xiě)也會(huì)比 Verilog 設(shè)計(jì)更加的復(fù)雜。所以,數(shù)字電路行業(yè)會(huì)具體劃分設(shè)計(jì)工程師和驗(yàn)證工程師。

下面,對(duì) testbench 做一個(gè)簡(jiǎn)單的學(xué)習(xí)。

testbench 結(jié)構(gòu)劃分

testbench 一般結(jié)構(gòu)如下。

圖片

其實(shí) testbench 最基本的結(jié)構(gòu)包括信號(hào)聲明、激勵(lì)和模塊例化。

根據(jù)設(shè)計(jì)的復(fù)雜度,需要引入時(shí)鐘和復(fù)位部分。當(dāng)然更為復(fù)雜的設(shè)計(jì),激勵(lì)部分也會(huì)更加復(fù)雜。根據(jù)自己的驗(yàn)證需求,選擇是否需要自校驗(yàn)和停止仿真部分。

當(dāng)然,復(fù)位和時(shí)鐘產(chǎn)生部分,也可以看做激勵(lì),所以它們都可以在一個(gè)語(yǔ)句塊中實(shí)現(xiàn)。也可以拿自校驗(yàn)的結(jié)果,作為結(jié)束仿真的條件。

實(shí)際仿真時(shí),可以根據(jù)自己的個(gè)人習(xí)慣來(lái)編寫(xiě) testbench,這里只是做一份個(gè)人的總結(jié)。

testbench 仿真舉例

前面的章節(jié)中,已經(jīng)寫(xiě)過(guò)很多的 testbench。其實(shí)它們的結(jié)構(gòu)也都大致相同。下面,列舉一個(gè)數(shù)據(jù)拼接的簡(jiǎn)單例子,對(duì) testbench 再做一個(gè)具體的分析。

◆ 一個(gè) 2bit 數(shù)據(jù)拼接成 8bit 數(shù)據(jù)的功能模塊描述如下。

module  data_consolidation
    (
        input           clk ,
        input           rstn ,
        input [1:0]     din ,          //data in
        input           din_en ,
        output [7:0]    dout ,
        output          dout_en        //data out
     );


   // data shift and counter
    reg [7:0]            data_r ;
    reg [1:0]            state_cnt ;
    always @(posedge clk or negedge rstn) begin
        if (!rstn) begin
            state_cnt     <= 'b0 ;
            data_r        <= 'b0 ;
        end
        else if (din_en) begin
            state_cnt     <= state_cnt + 1'b1 ;    //數(shù)據(jù)計(jì)數(shù)
            data_r        <= {data_r[5:0], din} ;  //數(shù)據(jù)拼接
        end
        else begin
            state_cnt <= 'b0 ;
        end
    end
    assign dout          = data_r ;


    // data output en
    reg                  dout_en_r ;
    always @(posedge clk or negedge rstn) begin
        if (!rstn) begin
            dout_en_r       <= 'b0 ;
        end
        //計(jì)數(shù)為 3 且第 4 個(gè)數(shù)據(jù)輸入時(shí),同步輸出數(shù)據(jù)輸出使能信號(hào)
        else if (state_cnt == 2'd3 & din_en) begin 
            dout_en_r       <= 1'b1 ;
        end
        else begin
            dout_en_r       <= 1'b0 ;
        end
    end
    //這里不直接聲明dout_en為reg變量,而是用相關(guān)寄存器對(duì)其進(jìn)行assign賦值
    assign dout_en       = dout_en_r;


endmodule

◆ 對(duì)應(yīng)的 testbench 描述如下,增加了文件讀寫(xiě)的語(yǔ)句。

`timescale 1ns/1ps


   //============== (1) ==================
   //signals declaration
module test ;
    reg          clk;
    reg          rstn ;
    reg [1:0]    din ;
    reg          din_en ;
    wire [7:0]   dout ;
    wire         dout_en ;


    //============== (2) ==================
    //clock generating
    real         CYCLE_200MHz = 5 ; //
    always begin
        clk = 0 ; #(CYCLE_200MHz/2) ;
        clk = 1 ; #(CYCLE_200MHz/2) ;
    end


    //============== (3) ==================
    //reset generating
    initial begin
        rstn      = 1'b0 ;
        #8 rstn      = 1'b1 ;
    end


    //============== (4) ==================
    //motivation
    int          fd_rd ;
    reg [7:0]    data_in_temp ;  //for self check
    reg [15:0]   read_temp ;     //8bit ascii data, 8bit \\n
    initial begin
        din_en    = 1'b0 ;        //(4.1)
        din       = 'b0 ;
        open_file("../tb/data_in.dat", "r", fd_rd); //(4.2)
        wait (rstn) ;    //(4.3)
        # CYCLE_200MHz ;


        //read data from file
        while (! $feof(fd_rd) ) begin  //(4.4)
            @(negedge clk) ;
            $fread(read_temp, fd_rd);
            din    = read_temp[9:8] ;
            data_in_temp = {data_in_temp[5:0], din} ;
            din_en = 1'b1 ;
        end


        //stop data
        @(posedge clk) ;  //(4.5)
        #2 din_en = 1'b0 ;
    end


    //open task
    task open_file;
        input string      file_dir_name ;
        input string      rw ;
        output int        fd ;


        fd = $fopen(file_dir_name, rw);
        if (! fd) begin
            $display("--- iii --- Failed to open file: %s", file_dir_name);
        end
        else begin
            $display("--- iii --- %s has been opened successfully.", file_dir_name);
        end
    endtask


    //============== (5) ==================
    //module instantiation
    data_consolidation    u_data_process
    (
      .clk              (clk),
      .rstn             (rstn),
      .din              (din),
      .din_en           (din_en),
      .dout             (dout),
      .dout_en          (dout_en)
     );


    //============== (6) ==================
    //auto check
    reg  [7:0]           err_cnt ;
    int                  fd_wr ;


    initial begin
        err_cnt   = 'b0 ;
        open_file("../tb/data_out.dat", "w", fd_wr);
        forever begin
            @(negedge clk) ;
            if (dout_en) begin
                $fdisplay(fd_wr, "%h", dout);
            end
        end
    end


    always @(posedge clk) begin
        #1 ;
        if (dout_en) begin
            if (data_in_temp != dout) begin
                err_cnt = err_cnt + 1'b1 ;
            end
        end
    end


    //============== (7) ==================
    //simulation finish
    always begin
        #100;
        if ($time >= 10000)  begin
            if (!err_cnt) begin
                $display("-------------------------------------");
                $display("Data process is OK!!!");
                $display("-------------------------------------");
            end
            else begin
                $display("-------------------------------------");
                $display("Error occurs in data process!!!");
                $display("-------------------------------------");
            end
            #1 ;
            $finish ;
        end
    end


endmodule // test

◆仿真結(jié)果如下。由圖可知,數(shù)據(jù)整合功能的設(shè)計(jì)符合要求。

圖片

testbench 具體分析

1)信號(hào)聲明

testbench 模塊聲明時(shí),一般不需要聲明端口。因?yàn)榧?lì)信號(hào)一般都在 testbench 模塊內(nèi)部,沒(méi)有外部信號(hào)。

聲明的變量應(yīng)該能全部對(duì)應(yīng)被測(cè)試模塊的端口。當(dāng)然,變量不一定要與被測(cè)試模塊端口名字一樣。但是被測(cè)試模塊輸入端對(duì)應(yīng)的變量應(yīng)該聲明為 reg 型,如 clk,rstn 等,輸出端對(duì)應(yīng)的變量應(yīng)該聲明為 wire 型,如 dout,dout_en。

2)時(shí)鐘生成

生成時(shí)鐘的方式有很多種,以下兩種生成方式可以借鑒。

initial clk = 0 ;
always #(CYCLE_200MHz/2) clk = ~clk;


initial begin
    clk = 0 ;
    forever begin
        #(CYCLE_200MHz/2) clk = ~clk;
    end
end

需要注意的是,利用取反方法產(chǎn)生時(shí)鐘時(shí),一定要給 clk 寄存器賦初值。

利用參數(shù)的方法去指定時(shí)間延遲時(shí),如果延時(shí)參數(shù)為浮點(diǎn)數(shù),該參數(shù)不要聲明為 parameter 類(lèi)型。例如實(shí)例中變量 CYCLE_200MHz 的值為 2.5。如果其變量類(lèi)型為 parameter,最后生成的時(shí)鐘周期很可能就是 4ns。當(dāng)然,timescale 的精度也需要提高,單位和精度不能一樣,否則小數(shù)部分的時(shí)間延遲賦值也將不起作用。

3)復(fù)位生成

復(fù)位邏輯比較簡(jiǎn)單,一般賦初值為 0,再經(jīng)過(guò)一段小延遲后,復(fù)位為 1 即可。

這里大多數(shù)的仿真都是用的低有效復(fù)位。

4)激勵(lì)部分

激勵(lì)部分該產(chǎn)生怎樣的輸入信號(hào),是根據(jù)被測(cè)模塊的需要來(lái)設(shè)計(jì)的。

本次實(shí)例中,(4.1) 對(duì)被測(cè)模塊的輸入信號(hào)進(jìn)行一個(gè)初始化,防止不確定值 X 的出現(xiàn)。

激勵(lì)數(shù)據(jù)的產(chǎn)生,需要從數(shù)據(jù)文件內(nèi)讀入。(4.2) 處利用一個(gè) task 去打開(kāi)一個(gè)文件,只要指定文件存在,就可以得到一個(gè)不為 0 的句柄信號(hào) fp_rd。fp_rd 指定了文件數(shù)據(jù)的起始地址。

(4.3) 的操作是為了等待復(fù)位后,系統(tǒng)有一個(gè)安全穩(wěn)定的可測(cè)試狀態(tài)。

(4.4) 開(kāi)始循環(huán)讀數(shù)據(jù)、給激勵(lì)。在時(shí)鐘下降沿送出數(shù)據(jù),是為了被測(cè)試模塊能更好的在上升沿采樣數(shù)據(jù)。

利用系統(tǒng)任務(wù) $fread ,通過(guò)句柄信號(hào) fd_rd 將讀取的 16bit 數(shù)據(jù)變量送入到 read_temp 變量進(jìn)行緩存。

輸入數(shù)據(jù)文件前幾個(gè)數(shù)據(jù)截圖如下。因?yàn)?$fread 只能讀取 2 進(jìn)制文件,所以輸入文件的第一行對(duì)應(yīng)的 ASCII 碼應(yīng)該是 330a,所以我們想要得到文件里的數(shù)據(jù) 3,應(yīng)該取變量 read_temp 的第 9 到第 8bit 位的數(shù)據(jù)。

圖片

信號(hào) data_in_temp 是對(duì)輸入數(shù)據(jù)信號(hào)的一個(gè)緊隨的整合,后面校驗(yàn)?zāi)K會(huì)以此為參考,來(lái)判斷仿真是否正常,模塊設(shè)計(jì)是否正確。

(4.5) 選擇在時(shí)鐘上升沿延遲 2 個(gè)周期后停止輸入數(shù)據(jù),是為了被測(cè)試模塊能夠正常的采樣到最后一個(gè)數(shù)據(jù)使能信號(hào),并對(duì)數(shù)據(jù)進(jìn)行正常的整合。

當(dāng)數(shù)據(jù)量相對(duì)較少時(shí),可以利用 Verilog 中的系統(tǒng)任務(wù) $readmemh 來(lái)按行直接讀取 16 進(jìn)制數(shù)據(jù)。保持文件 data_in.dat 內(nèi)數(shù)據(jù)和格式不變,則該激勵(lì)部分可以描述為:

reg [1:0]    data_mem [39:0] ;
    reg [7:0]    data_in_temp ;  //for self check
    integer      k1 ;
    initial begin
        din_en    = 1'b0 ;
        din       = 'b0 ;
        $readmemh("../tb/data_in.dat", data_mem);
        wait (rstn) ;
        # CYCLE_200MHz ;


        //read data from file
        for(k1=0; k1< 40; k1=k1+1)  begin
            @(negedge clk) ;
            din    = data_mem[k1] ;
            data_in_temp = {data_in_temp[5:0], din} ;
            din_en = 1'b1 ;
        end


        //stop data
        @(posedge clk) ;
        #2 din_en = 1'b0 ;
     end

5)模塊例化

這里利用 testbench 開(kāi)始聲明的信號(hào)變量,對(duì)被測(cè)試模塊進(jìn)行例化連接。

6)自校驗(yàn)

如果設(shè)計(jì)比較簡(jiǎn)單,完全可以通過(guò)輸入、輸出信號(hào)的波形來(lái)確定設(shè)計(jì)是否正確,此時(shí)可以不采用自校驗(yàn)部分。如果數(shù)據(jù)很多,有時(shí)候拿肉眼觀察并不能對(duì)設(shè)計(jì)的正確性進(jìn)行一個(gè)有效判定。此時(shí)加入一個(gè)自校驗(yàn)?zāi)K,會(huì)大大增加仿真的效率。

實(shí)例中,我們會(huì)在數(shù)據(jù)輸出使能 dout_en 有效時(shí),對(duì)輸出數(shù)據(jù) dout 與參考數(shù)據(jù) read_temp(激勵(lì)部分產(chǎn)生)做一個(gè)對(duì)比,并將對(duì)比結(jié)果置于信號(hào) err_cnt 中。最后就可以通過(guò)觀察 err_cnt 信號(hào)是否為 0 來(lái)直觀的對(duì)設(shè)計(jì)的正確性進(jìn)行判斷。

如實(shí)例中所示,也可以將數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)文件中,利用其他方式對(duì)兩個(gè)文件進(jìn)行對(duì)比。

7)結(jié)束仿真

如果我們不加入結(jié)束仿真部分,仿真就會(huì)無(wú)休止的運(yùn)行下去,波形太長(zhǎng)有時(shí)候并不方便分析。Verilog 中提供了系統(tǒng)任務(wù) $finish 來(lái)停止仿真。

停止仿真之前,可以將自校驗(yàn)的結(jié)果,通過(guò)系統(tǒng)任務(wù) $display 在終端進(jìn)行顯示。

文件讀寫(xiě)選項(xiàng)

用于打開(kāi)文件的系統(tǒng)任務(wù) $fopen 格式如下:

fd = $fopen("", "mode")

和 C 語(yǔ)言類(lèi)似,打開(kāi)方式的選項(xiàng) "mode" 意義如下:

1.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5425

    瀏覽量

    123644
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1366

    瀏覽量

    111966
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

    140680
  • ASCII碼
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    17503
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    [9.6.1]--9-6仿真激勵(lì)Verilog數(shù)字系統(tǒng)仿真

    EDA工具Verilog激勵(lì)數(shù)字系統(tǒng)
    李開(kāi)鴻
    發(fā)布于 :2022年11月12日 18:18:00

    如何對(duì)Verilog HDL的復(fù)位激勵(lì)進(jìn)行測(cè)試

    (70)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)21.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 02-23 06:29

    Verilog HDL的時(shí)鐘激勵(lì)簡(jiǎn)析

    (69)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)21.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 02-23 07:31

    Verilog HDL測(cè)試激勵(lì)之時(shí)鐘激勵(lì)

    (59)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)11.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 02-23 06:57

    Verilog HDL測(cè)試激勵(lì)之復(fù)位激勵(lì)簡(jiǎn)介

    (77)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)31.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 02-23 07:48

    Verilog HDL測(cè)試激勵(lì)之復(fù)位激勵(lì)相關(guān)資料分享

    (60)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)11.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 02-23 06:42

    淺談Verilog HDL測(cè)試激勵(lì)之時(shí)鐘激勵(lì)

    (76)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)31.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 02-23 07:33

    基于System Verilog中的隨機(jī)化激勵(lì)

    基于System Verilog中的隨機(jī)化激勵(lì)
    發(fā)表于 10-31 09:25 ?9次下載
    基于System <b class='flag-5'>Verilog</b>中的隨機(jī)化<b class='flag-5'>激勵(lì)</b>

    Verilog設(shè)計(jì)增加延時(shí)的仿真技術(shù)

    引起的差異,就可能產(chǎn)生錯(cuò)誤的激勵(lì),無(wú)法保證仿真結(jié)果的正確,本文就是區(qū)分各種延時(shí)賦值語(yǔ)句的差異,并給出比較結(jié)果。 1:阻塞式左延時(shí)賦值語(yǔ)句 舉例說(shuō)明如下: module adder_t1 (co, sum
    的頭像 發(fā)表于 11-25 15:29 ?2275次閱讀

    (70)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)2

    (70)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)21.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 12-29 19:42 ?2次下載
    (70)<b class='flag-5'>Verilog</b> HDL測(cè)試<b class='flag-5'>激勵(lì)</b>:復(fù)位<b class='flag-5'>激勵(lì)</b>2

    (69)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)2

    (69)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)21.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 12-29 19:42 ?0次下載
    (69)<b class='flag-5'>Verilog</b> HDL測(cè)試<b class='flag-5'>激勵(lì)</b>:時(shí)鐘<b class='flag-5'>激勵(lì)</b>2

    (59)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)1

    (59)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)11.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 12-29 19:42 ?1次下載
    (59)<b class='flag-5'>Verilog</b> HDL測(cè)試<b class='flag-5'>激勵(lì)</b>:時(shí)鐘<b class='flag-5'>激勵(lì)</b>1

    (77)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)3

    (77)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)31.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 12-29 19:42 ?1次下載
    (77)<b class='flag-5'>Verilog</b> HDL測(cè)試<b class='flag-5'>激勵(lì)</b>:復(fù)位<b class='flag-5'>激勵(lì)</b>3

    (60)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)1

    (60)Verilog HDL測(cè)試激勵(lì):復(fù)位激勵(lì)11.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 12-29 19:42 ?3次下載
    (60)<b class='flag-5'>Verilog</b> HDL測(cè)試<b class='flag-5'>激勵(lì)</b>:復(fù)位<b class='flag-5'>激勵(lì)</b>1

    (76)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)3

    (76)Verilog HDL測(cè)試激勵(lì):時(shí)鐘激勵(lì)31.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)Verilog HD
    發(fā)表于 12-29 19:43 ?2次下載
    (76)<b class='flag-5'>Verilog</b> HDL測(cè)試<b class='flag-5'>激勵(lì)</b>:時(shí)鐘<b class='flag-5'>激勵(lì)</b>3
    主站蜘蛛池模板: 夜夜夜夜夜操 | 井野雏田小樱天天被调教 | 欧美日韩一区二区视频图片 | 四虎精品影院永久在线播放 | 午夜无码国产理论在线 | 浓厚な接吻と肉体の交在线观看 | 三级在线观看国产 | 久久久精品免费 | 亚洲午夜久久久精品影院视色 | 黄色在线观看视频网站 | 欧美日韩亚洲一区 | 一区二区三区四区视频在线 | 免费视频你懂得 | 国产三级在线视频观看 | 午夜丁香影院 | 久久综合色婷婷 | 忘忧草爱网 | 1024视频色版在线网站 | 国外免费精品视频在线观看 | 一级做a爱片特黄在线观看免费看 | 娇妻被黑人蹂躏 | 欧美一级黄色片 | 奇米成人影视 | 4虎影院最近地址 | 亚洲乱码中文字幕综合 | 精品乩伦视频 | 老师受年下高h男 | 99久久婷婷免费国产综合精品 | 黄网站在线观看永久免费 | 看日本黄色大片 | 高清配种视频xxxxx | 美女网色 | 狠狠色噜噜狠狠狠狠97老肥女 | 27pao强力打造高清免费高 | 免费看大尺度视频在线观看 | 午夜一级精品免费毛片 | 欧美四虎影院 | 四虎永久精品免费观看 | 毛片不卡一区二区三区 | 国产美女精品久久久久久久免费 | 国产视频三级 |