《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > CAN總線控制器IP核代碼分析
CAN總線控制器IP核代碼分析
摘要: include"timescale.v"//synopsystranslate_on`include"can_defines.v"modulecan_top(`ifdefCAN_WISHBONE_IFwb_clk_i,wb_rst_i,wb_dat_i,wb_dat_o,wb_cyc_i,wb_stb_i,wb_we_i,
關鍵詞: SoPC IP核 CAN總線
Abstract:
Key words :

include "timescale.v"

// synopsys translate_on

`include "can_defines.v"

 

module can_top

(

  `ifdef CAN_WISHBONE_IF

    wb_clk_i,

    wb_rst_i,

    wb_dat_i,

    wb_dat_o,

    wb_cyc_i,

    wb_stb_i,

    wb_we_i,

    wb_adr_i,

    wb_ack_o,

  `else

    rst_i,

    ale_i,

    rd_i,

    wr_i,

    port_0_io,

  `endif

  cs_can_i,

  clk_i,

  rx_i,

  tx_o,

  irq_on,

  clkout_o

);

 

parameter Tp = 1;

 

`ifdef CAN_WISHBONE_IF

  input        wb_clk_i;

  input        wb_rst_i;

  input  [7:0] wb_dat_i;

  output [7:0] wb_dat_o;

  input        wb_cyc_i;

  input        wb_stb_i;

  input        wb_we_i;

  input  [7:0] wb_adr_i;

  output       wb_ack_o;

 

  reg          wb_ack_o;

  reg          cs_sync1;

  reg          cs_sync2;

  reg          cs_sync3;

 

  reg          cs_ack1;

  reg          cs_ack2;

  reg          cs_ack3;

  reg          cs_sync_rst1;

  reg          cs_sync_rst2;

`else

  input        rst_i;

  input        ale_i;

  input        rd_i;

  input        wr_i;

  inout  [7:0] port_0_io;

 

  reg    [7:0] addr_latched;

  reg          wr_i_q;

  reg          rd_i_q;

`endif

 

input        cs_can_i;

input        clk_i;

input        rx_i;

output       tx_o;

output       irq_on;

output       clkout_o;

 

reg          data_out_fifo_selected;

 

 

wire         irq_o;

wire   [7:0] data_out_fifo;

wire   [7:0] data_out_regs;

 

 

/* Mode register */

wire         reset_mode;

wire         listen_only_mode;

wire         acceptance_filter_mode;

wire         self_test_mode;

 

/* Command register */

wire         release_buffer;

wire         tx_request;

wire         abort_tx;

wire         self_rx_request;

wire         single_shot_transmission;

 

/* Arbitration Lost Capture Register */

wire         read_arbitration_lost_capture_reg;

 

/* Error Code Capture Register */

wire         read_error_code_capture_reg;

wire   [7:0] error_capture_code;

 

/* Bus Timing 0 register */

wire   [5:0] baud_r_presc;

wire   [1:0] sync_jump_width;

 

/* Bus Timing 1 register */

wire   [3:0] time_segment1;

wire   [2:0] time_segment2;

wire         triple_sampling;

 

/* Error Warning Limit register */

wire   [7:0] error_warning_limit;

 

/* Rx Error Counter register */

wire         we_rx_err_cnt;

 

/* Tx Error Counter register */

wire         we_tx_err_cnt;

 

/* Clock Divider register */

wire         extended_mode;

 

/* This section is for BASIC and EXTENDED mode */

/* Acceptance code register */

wire   [7:0] acceptance_code_0;

 

/* Acceptance mask register */

wire   [7:0] acceptance_mask_0;

/* End: This section is for BASIC and EXTENDED mode */

 

 

/* This section is for EXTENDED mode */

/* Acceptance code register */

wire   [7:0] acceptance_code_1;

wire   [7:0] acceptance_code_2;

wire   [7:0] acceptance_code_3;

 

/* Acceptance mask register */

wire   [7:0] acceptance_mask_1;

wire   [7:0] acceptance_mask_2;

wire   [7:0] acceptance_mask_3;

/* End: This section is for EXTENDED mode */

 

/* Tx data registers. Holding identifier (basic mode), tx frame information (extended mode) and data */

wire   [7:0] tx_data_0;

wire   [7:0] tx_data_1;

wire   [7:0] tx_data_2;

wire   [7:0] tx_data_3;

wire   [7:0] tx_data_4;

wire   [7:0] tx_data_5;

wire   [7:0] tx_data_6;

wire   [7:0] tx_data_7;

wire   [7:0] tx_data_8;

wire   [7:0] tx_data_9;

wire   [7:0] tx_data_10;

wire   [7:0] tx_data_11;

wire   [7:0] tx_data_12;

/* End: Tx data registers */

wire         cs;

 

/* Output signals from can_btl module */

wire         clk_en;

wire         sample_point;

wire         sampled_bit;

wire         sampled_bit_q;

wire         tx_point;

wire         hard_sync;

wire         resync;

 

 

/* output from can_bsp module */

wire         rx_idle;

wire         transmitting;

wire         last_bit_of_inter;

wire         set_reset_mode;

wire         node_bus_off;

wire         error_status;

wire   [7:0] rx_err_cnt;

wire   [7:0] tx_err_cnt;

wire         rx_err_cnt_dummy;  // The MSB is not displayed. It is just used for easier calculation (no counter overflow).

wire         tx_err_cnt_dummy;  // The MSB is not displayed. It is just used for easier calculation (no counter overflow).

wire         transmit_status;

wire         receive_status;

wire         tx_successful;

wire         need_to_tx;

wire         overrun;

wire         info_empty;

wire         set_bus_error_irq;

wire         set_arbitration_lost_irq;

wire   [4:0] arbitration_lost_capture;

wire         node_error_passive;

wire         node_error_active;

wire   [6:0] rx_message_counter;

wire         tx_out;

wire         tx_oen;

 

wire         rst;

wire         we;

wire   [7:0] addr;

wire   [7:0] data_in;

reg    [7:0] data_out;

 

 

/* Connecting can_registers module */

can_registers i_can_registers

(

  .clk(clk_i),

  .rst(rst),

  .cs(cs),

  .we(we),

  .addr(addr),

  .data_in(data_in),

  .data_out(data_out_regs),

  .irq(irq_o),

 

  .sample_point(sample_point),

  .transmitting(transmitting),

  .set_reset_mode(set_reset_mode),

  .node_bus_off(node_bus_off),

  .error_status(error_status),

  .rx_err_cnt(rx_err_cnt),

  .tx_err_cnt(tx_err_cnt),

  .transmit_status(transmit_status),

  .receive_status(receive_status),

  .tx_successful(tx_successful),

  .need_to_tx(need_to_tx),

  .overrun(overrun),

  .info_empty(info_empty),

  .set_bus_error_irq(set_bus_error_irq),

  .set_arbitration_lost_irq(set_arbitration_lost_irq),

  .arbitration_lost_capture(arbitration_lost_capture),

  .node_error_passive(node_error_passive),

  .node_error_active(node_error_active),

  .rx_message_counter(rx_message_counter),

 

 

  /* Mode register */

  .reset_mode(reset_mode),

  .listen_only_mode(listen_only_mode),

  .acceptance_filter_mode(acceptance_filter_mode),

  .self_test_mode(self_test_mode),

 

  /* Command register */

  .clear_data_overrun(),

  .release_buffer(release_buffer),

  .abort_tx(abort_tx),

  .tx_request(tx_request),

  .self_rx_request(self_rx_request),

  .single_shot_transmission(single_shot_transmission),

 

  /* Arbitration Lost Capture Register */

  .read_arbitration_lost_capture_reg(read_arbitration_lost_capture_reg),

 

  /* Error Code Capture Register */

  .read_error_code_capture_reg(read_error_code_capture_reg),

  .error_capture_code(error_capture_code),

 

  /* Bus Timing 0 register */

  .baud_r_presc(baud_r_presc),

  .sync_jump_width(sync_jump_width),

 

  /* Bus Timing 1 register */

  .time_segment1(time_segment1),

  .time_segment2(time_segment2),

  .triple_sampling(triple_sampling),

 

  /* Error Warning Limit register */

  .error_warning_limit(error_warning_limit),

 

  /* Rx Error Counter register */

  .we_rx_err_cnt(we_rx_err_cnt),

 

  /* Tx Error Counter register */

  .we_tx_err_cnt(we_tx_err_cnt),

 

  /* Clock Divider register */

  .extended_mode(extended_mode),

  .clkout(clkout_o),

 

  /* This section is for BASIC and EXTENDED mode */

  /* Acceptance code register */

  .acceptance_code_0(acceptance_code_0),

 

  /* Acceptance mask register */

  .acceptance_mask_0(acceptance_mask_0),

  /* End: This section is for BASIC and EXTENDED mode */

 

  /* This section is for EXTENDED mode */

  /* Acceptance code register */

  .acceptance_code_1(acceptance_code_1),

  .acceptance_code_2(acceptance_code_2),

  .acceptance_code_3(acceptance_code_3),

 

  /* Acceptance mask register */

  .acceptance_mask_1(acceptance_mask_1),

  .acceptance_mask_2(acceptance_mask_2),

  .acceptance_mask_3(acceptance_mask_3),

  /* End: This section is for EXTENDED mode */

 

  /* Tx data registers. Holding identifier (basic mode), tx frame information (extended mode) and data */

  .tx_data_0(tx_data_0),

  .tx_data_1(tx_data_1),

  .tx_data_2(tx_data_2),

  .tx_data_3(tx_data_3),

  .tx_data_4(tx_data_4),

  .tx_data_5(tx_data_5),

  .tx_data_6(tx_data_6),

  .tx_data_7(tx_data_7),

  .tx_data_8(tx_data_8),

  .tx_data_9(tx_data_9),

  .tx_data_10(tx_data_10),

  .tx_data_11(tx_data_11),

  .tx_data_12(tx_data_12)

  /* End: Tx data registers */

);

 

 

assign irq_on = ~irq_o;

 

 

/* Connecting can_btl module */

can_btl i_can_btl

(

  .clk(clk_i),

  .rst(rst),

  .rx(rx_i),

 

  /* Mode register */

  .reset_mode(reset_mode),

 

  /* Bus Timing 0 register */

  .baud_r_presc(baud_r_presc),

  .sync_jump_width(sync_jump_width),

 

  /* Bus Timing 1 register */

  .time_segment1(time_segment1),

  .time_segment2(time_segment2),

  .triple_sampling(triple_sampling),

 

  /* Output signals from this module */

  .clk_en(clk_en),

  .sample_point(sample_point),

  .sampled_bit(sampled_bit),

  .sampled_bit_q(sampled_bit_q),

  .tx_point(tx_point),

  .hard_sync(hard_sync),

  .resync(resync),

 

 

  /* output from can_bsp module */

  .rx_idle(rx_idle),

  .transmitting(transmitting),

  .last_bit_of_inter(last_bit_of_inter)

 

 

 

);

 

 

 

can_bsp i_can_bsp

(

  .clk(clk_i),

  .rst(rst),

 

  /* From btl module */

  .sample_point(sample_point),

  .sampled_bit(sampled_bit),

  .sampled_bit_q(sampled_bit_q),

  .tx_point(tx_point),

  .hard_sync(hard_sync),

 

  .addr(addr),

  .data_in(data_in),

  .data_out(data_out_fifo),

  .fifo_selected(data_out_fifo_selected),/* Mode register */

  .reset_mode(reset_mode),

  .listen_only_mode(listen_only_mode),

  .acceptance_filter_mode(acceptance_filter_mode),

  .self_test_mode(self_test_mode),

 

  /* Command register */

  .release_buffer(release_buffer),

  .tx_request(tx_request),

  .abort_tx(abort_tx),

  .self_rx_request(self_rx_request),

  .single_shot_transmission(single_shot_transmission),

 

  /* Arbitration Lost Capture Register */

  .read_arbitration_lost_capture_reg(read_arbitration_lost_capture_reg),

 

  /* Error Code Capture Register */

  .read_error_code_capture_reg(read_error_code_capture_reg),

  .error_capture_code(error_capture_code),

 

  /* Error Warning Limit register */

  .error_warning_limit(error_warning_limit),

 

  /* Rx Error Counter register */

  .we_rx_err_cnt(we_rx_err_cnt),

 

  /* Tx Error Counter register */

  .we_tx_err_cnt(we_tx_err_cnt),

 

  /* Clock Divider register */

  .extended_mode(extended_mode),

 

  /* output from can_bsp module */

  .rx_idle(rx_idle),

  .transmitting(transmitting),

  .last_bit_of_inter(last_bit_of_inter),

  .set_reset_mode(set_reset_mode),

  .node_bus_off(node_bus_off),

  .error_status(error_status),

  .rx_err_cnt({rx_err_cnt_dummy, rx_err_cnt[7:0]}),   // The MSB is not displayed. It is just used for easier calculation (no counter overflow).

  .tx_err_cnt({tx_err_cnt_dummy, tx_err_cnt[7:0]}),   // The MSB is not displayed. It is just used for easier calculation (no counter overflow).

  .transmit_status(transmit_status),

  .receive_status(receive_status),

  .tx_successful(tx_successful),

  .need_to_tx(need_to_tx),

  .overrun(overrun),

  .info_empty(info_empty),

  .set_bus_error_irq(set_bus_error_irq),

  .set_arbitration_lost_irq(set_arbitration_lost_irq),

  .arbitration_lost_capture(arbitration_lost_capture),

  .node_error_passive(node_error_passive),

  .node_error_active(node_error_active),

  .rx_message_counter(rx_message_counter),

 

  /* This section is for BASIC and EXTENDED mode */

  /* Acceptance code register */

  .acceptance_code_0(acceptance_code_0),

 

  /* Acceptance mask register */

  .acceptance_mask_0(acceptance_mask_0),

  /* End: This section is for BASIC and EXTENDED mode */

 

  /* This section is for EXTENDED mode */

  /* Acceptance code register */

  .acceptance_code_1(acceptance_code_1),

  .acceptance_code_2(acceptance_code_2),

  .acceptance_code_3(acceptance_code_3),

 

  /* Acceptance mask register */

  .acceptance_mask_1(acceptance_mask_1),

  .acceptance_mask_2(acceptance_mask_2),

  .acceptance_mask_3(acceptance_mask_3),

  /* End: This section is for EXTENDED mode */

 

  /* Tx data registers. Holding identifier (basic mode), tx frame information (extended mode) and data */

  .tx_data_0(tx_data_0),

  .tx_data_1(tx_data_1),

  .tx_data_2(tx_data_2),

  .tx_data_3(tx_data_3),

  .tx_data_4(tx_data_4),

  .tx_data_5(tx_data_5),

  .tx_data_6(tx_data_6),

  .tx_data_7(tx_data_7),

  .tx_data_8(tx_data_8),

  .tx_data_9(tx_data_9),

  .tx_data_10(tx_data_10),

  .tx_data_11(tx_data_11),

  .tx_data_12(tx_data_12),

  /* End: Tx data registers */

 

  /* Tx signal */

  .tx(tx_out),

  .tx_oen(tx_oen)

);

 

assign tx_o = tx_oen? 1'bz : tx_out;

 

 

// Multiplexing wb_dat_o from registers and rx fifo

always @ (extended_mode or addr or reset_mode)

begin

  if (extended_mode & (~reset_mode) & ((addr >= 8'd16) && (addr <= 8'd28)) | (~extended_mode) & ((addr >= 8'd20) && (addr <= 8'd29)))

    data_out_fifo_selected <= 1'b1;

  else

    data_out_fifo_selected <= 1'b0;

end

 

 

always @ (posedge clk_i)

begin

//  if (wb_cyc_i & (~wb_we_i))

  if (cs & (~we))

    begin

      if (data_out_fifo_selected)

        data_out <=#Tp data_out_fifo;

      else

        data_out <=#Tp data_out_regs;

    end

end

 

 

 

`ifdef CAN_WISHBONE_IF

  // Combining wb_cyc_i and wb_stb_i signals to cs signal. Than synchronizing to clk_i clock domain.

  always @ (posedge clk_i or posedge rst)

  begin

    if (rst)

      begin

        cs_sync1     <= 1'b0;

        cs_sync2     <= 1'b0;

        cs_sync3     <= 1'b0;

        cs_sync_rst1 <= 1'b0;

        cs_sync_rst2 <= 1'b0;

      end

    else

      begin

        cs_sync1     <=#Tp wb_cyc_i & wb_stb_i & (~cs_sync_rst2) & cs_can_i;

        cs_sync2     <=#Tp cs_sync1            & (~cs_sync_rst2);

        cs_sync3     <=#Tp cs_sync2            & (~cs_sync_rst2);

        cs_sync_rst1 <=#Tp cs_ack3;

        cs_sync_rst2 <=#Tp cs_sync_rst1;

      end

  end

 

 

  assign cs = cs_sync2 & (~cs_sync3);

 

 

  always @ (posedge wb_clk_i)

  begin

    cs_ack1 <=#Tp cs_sync3;

    cs_ack2 <=#Tp cs_ack1;

    cs_ack3 <=#Tp cs_ack2;

  end

 

 

 

  // Generating acknowledge signal

  always @ (posedge wb_clk_i)

  begin

    wb_ack_o <=#Tp (cs_ack2 & (~cs_ack3));

  end

 

 

  assign rst      = wb_rst_i;

  assign we       = wb_we_i;

  assign addr     = wb_adr_i;

  assign data_in  = wb_dat_i;

  assign wb_dat_o = data_out;

 

 

`else

 

  // Latching address

  always @ (negedge clk_i or posedge rst)

  begin

    if (rst)

      addr_latched <= 8'h0;

    else if (ale_i)

      addr_latched <=#Tp port_0_io;

  end

 

 

  // Generating delayed wr_i and rd_i signals

  always @ (posedge clk_i or posedge rst)

  begin

    if (rst)

      begin

        wr_i_q <= 1'b0;

        rd_i_q <= 1'b0;

      end

    else

      begin

        wr_i_q <=#Tp wr_i;

        rd_i_q <=#Tp rd_i;

      end

  end

 

 

  assign cs = ((wr_i & (~wr_i_q)) | (rd_i & (~rd_i_q))) & cs_can_i;

 

 

  assign rst       = rst_i;

  assign we        = wr_i;

  assign addr      = addr_latched;

  assign data_in   = port_0_io;

  assign port_0_io = (cs_can_i & rd_i)? data_out : 8'hz;

 

`endif

 

endmodule

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲欧美日韩在线不卡| 亚洲欧洲精品一区二区精品久久久| 国产精品视频自拍| 欧美日韩在线直播| 久久影视三级福利片| 激情自拍一区| 亚洲精品日韩综合观看成人91| 欧美日韩不卡合集视频| 国产精品日韩精品欧美在线| 欧美精品免费在线观看| 亚洲精品极品| 久久人人97超碰人人澡爱香蕉| 国产精品免费看片| 日韩午夜在线观看视频| 亚洲美女精品成人在线视频| 国产精品美女| 欧美与欧洲交xxxx免费观看| 激情婷婷久久| 亚洲精选成人| 国产精品一区二区久久| 久久精品日韩欧美| 久久精品国产亚洲一区二区三区| 亚洲图片欧美午夜| 欧美精品在欧美一区二区少妇| 一本色道久久综合亚洲精品高清| 久久久久久成人| 国产视频在线观看一区二区三区| 欧美精品系列| 欧美成年人视频| 欧美一区二区三区免费大片| 亚洲国产导航| 在线成人www免费观看视频| 国产一区视频在线观看免费| 亚洲欧美在线视频观看| 欧美风情在线| 亚洲黄色成人| 亚洲精品一二三区| 亚洲精品欧美极品| 国产日韩欧美在线视频观看| 亚洲影视在线播放| 亚洲欧美一区二区三区久久| 这里只有精品视频在线| 欧美精品一区二| 亚洲欧美日本国产专区一区| 欧美激情综合五月色丁香| 亚洲高清视频一区二区| 永久免费毛片在线播放不卡| 欧美二区在线观看| 亚洲欧美综合网| 妖精成人www高清在线观看| 久久久久成人网| 亚洲电影成人| 欧美激情综合五月色丁香| 欧美国产国产综合| 欧美日韩精品在线视频| 欧美多人爱爱视频网站| 亚洲视频免费看| 国产精品免费视频观看| 日韩视频在线免费观看| 国产精品欧美经典| 久久亚洲免费| 亚洲激情网站免费观看| 国产主播在线一区| 亚洲高清在线观看一区| 久久久不卡网国产精品一区| 欧美成人精品一区| 国产欧美一区二区视频| 亚洲免费婷婷| 亚洲私人影院在线观看| 亚洲日本在线视频观看| 亚洲在线成人精品| 欧美影视一区| 欧美三区在线| 国产精品一区二区女厕厕| 亚洲在线成人| 欧美精品日韩www.p站| 久久九九国产精品怡红院| 久久综合色天天久久综合图片| 欧美在线视频不卡| 国产精品三级视频| 亚洲欧美激情四射在线日| 欧美精品亚洲二区| 亚洲大片av| 欧美日韩大陆在线| 亚洲欧美精品中文字幕在线| 欧美精品免费播放| 国产亚洲第一区| 久久综合九色99| 一本色道久久加勒比88综合| 精品88久久久久88久久久| 国模私拍视频一区| 亚洲第一网站| 亚洲激情一区二区三区| 久久久亚洲人| 欧美日本乱大交xxxxx| 久久久久一区二区三区| 欧美高清视频一区| 国产精品亚洲综合| 亚洲理论在线| 奶水喷射视频一区| 亚洲欧美日韩直播| 亚洲免费视频一区二区| 国产一区二区三区奇米久涩| 国内成+人亚洲| 亚洲欧美一区二区激情| 伊人精品在线| 欧美精品在线一区二区| 黄色日韩精品| 国产日韩欧美不卡| 欧美三级午夜理伦三级中文幕| 亚洲国内欧美| 欧美视频在线一区二区三区| 欧美伦理在线观看| 国产情侣久久| 国产亚洲精品美女| 亚洲免费影视第一页| 国产亚洲精品久久飘花| 99香蕉国产精品偷在线观看| 久久亚洲欧美| 国产免费观看久久黄| 欧美一级片在线播放| 欧美日韩国产综合视频在线观看| 亚洲精品一区二区三区在线观看| 欧美午夜无遮挡| 国产一区二区精品| 欧美天堂亚洲电影院在线播放| 国外视频精品毛片| 国产精品成人aaaaa网站| 欧美成人精品三级在线观看| 久久精品五月婷婷| 亚洲精品孕妇| 欧美日韩一卡| 国产精品热久久久久夜色精品三区| 国产一区二区按摩在线观看| 国内视频一区| 免费在线欧美视频| 国产一区美女| 亚洲三级电影全部在线观看高清| 亚洲日本无吗高清不卡| 最新中文字幕亚洲| 亚洲女与黑人做爰| 美国十次了思思久久精品导航| 欧美国产一区二区在线观看| 欧美视频一区| 中国亚洲黄色| 国产精品区一区二区三| 久久久99久久精品女同性| 亚洲国产精品日韩| 亚洲精品久久久久久久久久久久| 国产欧美亚洲一区| 欧美日韩一二三区| 国内精品一区二区三区| 欧美精品在线免费观看| 亚洲日本成人在线观看| 国产亚洲一区二区在线观看| ●精品国产综合乱码久久久久| 国产欧美亚洲一区| 伊人久久婷婷| 欧美在线视频免费| 国产欧美日韩在线| 国产精品久久久久aaaa九色| 日韩一区二区精品| 欧美暴力喷水在线| 亚洲欧美卡通另类91av| 国产区精品视频| 亚洲福利在线视频| 蜜桃av一区二区在线观看| 欧美国产日韩精品免费观看| 麻豆国产精品va在线观看不卡| 亚洲成人自拍视频| 久久精品国产91精品亚洲| 欧美色播在线播放| 欧美系列精品| 国内精品免费在线观看| 一区二区三区高清不卡| 欧美欧美全黄| 国产女人18毛片水18精品| 欧美激情视频一区二区三区不卡| 一区二区日韩欧美| 欧美激情亚洲自拍| 欧美激情aⅴ一区二区三区| 亚洲欧美日韩精品久久| 久久久91精品国产一区二区精品| 欧美在线视频免费播放| 国产精品卡一卡二| 国产精品国产三级国产专播精品人| 国产精品videosex极品| 国内精品**久久毛片app| 男人的天堂亚洲在线| 国产精品入口日韩视频大尺度| 黄色成人在线网站| 亚洲激情成人在线| **网站欧美大片在线观看| 亚洲第一主播视频| 亚洲精品在线观看视频| 99视频一区二区三区| 欧美小视频在线| 亚洲电影天堂av| 欧美日本网站| 欧美日韩一区二区欧美激情| 亚洲国产美国国产综合一区二区| 蜜臀久久99精品久久久画质超高清| 亚洲精品1区2区| 99热这里只有精品8| 亚洲视频免费在线观看| 国产精品久久久久久久第一福利| 亚洲国产精品国自产拍av秋霞| 亚洲第一综合天堂另类专| 久久精品国产一区二区三区| 欧美日韩一区二区视频在线观看| 99在线观看免费视频精品观看| 久久久久成人精品免费播放动漫| 国产一区亚洲一区| 亚洲人成人一区二区在线观看| 欧美在线精品免播放器视频| 国产欧美日韩综合一区在线播放| 欧美亚州韩日在线看免费版国语版| 欧美国产一区二区在线观看| 免费中文字幕日韩欧美| 欧美午夜电影在线| 国产精品中文字幕欧美| 欧美va亚洲va日韩∨a综合色| 亚洲国产精品精华液2区45| 国内精品久久久久影院 日本资源| 极品尤物久久久av免费看| 一区在线免费观看| 国产精品影片在线观看| 亚洲一区久久| 欧美日韩亚洲视频| 美女免费视频一区| aaa亚洲精品一二三区| 亚洲日本免费电影| 欧美精品v日韩精品v韩国精品v| 国产亚洲日本欧美韩国| 欧美日韩ab片| 国产综合久久久久久鬼色| 亚洲精品综合在线| 欧美精品日韩精品| 美女脱光内衣内裤视频久久影院| 欧美精品一区二区在线播放| 久久久久久久久久久一区| 国产精品入口福利| 午夜精品久久久久| 欧美精品免费看| 欧美三区免费完整视频在线观看| 久久久噜噜噜久久| 亚洲天堂免费在线观看视频| 久久一二三区| 午夜精品三级视频福利| 亚洲精品欧美一区二区三区| 亚洲婷婷综合色高清在线| 一区二区欧美日韩| 狼狼综合久久久久综合网| 久久只精品国产| 一区二区三区免费观看| 久久亚洲一区二区三区四区| 国产在线视频不卡二| 国产精品一卡| 日韩一级网站| 欧美一区影院| 欧美成人精品一区二区| 久久国产精品99国产| 亚洲娇小video精品| 一本色道久久88精品综合| 老司机精品视频一区二区三区| 国产亚洲激情在线| 国产欧美一区二区精品秋霞影院| 在线成人中文字幕| 性做久久久久久久免费看| 夜夜嗨av色一区二区不卡| 亚洲精品乱码久久久久久| 久久久噜噜噜| 欧美日韩国产区一| 国产日韩欧美三区| 欧美日韩成人一区二区| 伊人夜夜躁av伊人久久| 欧美日韩成人在线| 欧美在线观看一区| 1000部精品久久久久久久久| 久久动漫亚洲| 性高湖久久久久久久久| 黄色影院成人| 老牛国产精品一区的观看方式| 国产精品丝袜白浆摸在线| 亚洲视频免费看| 亚洲一区欧美一区| 久久久久久久久久久一区| 激情伊人五月天久久综合| 欧美视频一区二区三区在线观看| 国产欧美精品xxxx另类| 亚洲东热激情| 激情欧美丁香| 免费亚洲电影在线观看| 国产精品久久九九| 国产精品v亚洲精品v日韩精品| 亚洲一区二区久久| 久久成人精品视频| 久久精品视频播放| 国产精品日韩欧美一区二区三区| 欧美亚洲午夜视频在线观看| 亚洲国产91精品在线观看| 国产日韩欧美视频在线| 欧美激情一区二区在线| 午夜视频精品| 国产区二精品视| 亚洲永久免费av| 亚洲免费网址| 亚洲图片欧美日产| 欧美精品三区| 极品日韩av| 狠狠色狠狠色综合系列| 国产日韩欧美综合精品| 在线日韩中文| 小黄鸭视频精品导航| 久久久久久久久久看片| 亚洲一区视频在线| 欧美大片一区| 国产精品久久久久久久app| 亚洲免费av观看| 欧美精品在线免费播放| 在线视频日韩| 欧美午夜www高清视频| 国产精品综合不卡av| 日韩一级在线| 国产欧美日韩综合| 亚洲欧美日韩中文播放| 久久精品国产91精品亚洲| 亚洲精品欧美日韩专区|