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

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

?? can_bsp.v

?? USB_I2C_MAC_FPGA_Code.rar
?? V
?? 第 1 頁 / 共 4 頁
字號:

// synopsys translate_off
`include "timescale.v"
// synopsys translate_on
`include "can_defines.v"

module can_bsp
( 
  clk,
  rst,

  sample_point,
  sampled_bit,
  sampled_bit_q,
  tx_point,
  hard_sync,

  addr,
  data_in,
  data_out,
  fifo_selected,
  


  /* Mode register */
  reset_mode,
  listen_only_mode,
  acceptance_filter_mode,
  self_test_mode,

  /* Command register */
  release_buffer,
  tx_request,
  abort_tx,
  self_rx_request,
  single_shot_transmission,

  /* Arbitration Lost Capture Register */
  read_arbitration_lost_capture_reg,

  /* Error Code Capture Register */
  read_error_code_capture_reg,
  error_capture_code,

  /* Error Warning Limit register */
  error_warning_limit,

  /* Rx Error Counter register */
  we_rx_err_cnt,

  /* Tx Error Counter register */
  we_tx_err_cnt,

  /* Clock Divider register */
  extended_mode,

  rx_idle,
  transmitting,
  last_bit_of_inter,
  set_reset_mode,
  node_bus_off,
  error_status,
  rx_err_cnt,
  tx_err_cnt,
  transmit_status,
  receive_status,
  tx_successful,
  need_to_tx,
  overrun,
  info_empty,
  set_bus_error_irq,
  set_arbitration_lost_irq,
  arbitration_lost_capture,
  node_error_passive,
  node_error_active,
  rx_message_counter,



  /* This section is for BASIC and EXTENDED mode */
  /* Acceptance code register */
  acceptance_code_0,

  /* Acceptance mask register */
  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_2,
  acceptance_code_3,

  /* Acceptance mask register */
  acceptance_mask_1,
  acceptance_mask_2,
  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_1,
  tx_data_2,
  tx_data_3,
  tx_data_4,
  tx_data_5,
  tx_data_6,
  tx_data_7,
  tx_data_8,
  tx_data_9,
  tx_data_10,
  tx_data_11,
  tx_data_12,
  /* End: Tx data registers */
  
  /* Tx signal */
  tx,
  tx_oen

);

parameter Tp = 1;

input         clk;
input         rst;
input         sample_point;
input         sampled_bit;
input         sampled_bit_q;
input         tx_point;
input         hard_sync;
input   [7:0] addr;
input   [7:0] data_in;
output  [7:0] data_out;
input         fifo_selected;


input         reset_mode;
input         listen_only_mode;
input         acceptance_filter_mode;
input         extended_mode;
input         self_test_mode;


/* Command register */
input         release_buffer;
input         tx_request;
input         abort_tx;
input         self_rx_request;
input         single_shot_transmission;

/* Arbitration Lost Capture Register */
input         read_arbitration_lost_capture_reg;

/* Error Code Capture Register */
input         read_error_code_capture_reg;
output  [7:0] error_capture_code;

/* Error Warning Limit register */
input   [7:0] error_warning_limit;

/* Rx Error Counter register */
input         we_rx_err_cnt;

/* Tx Error Counter register */
input         we_tx_err_cnt;

output        rx_idle;
output        transmitting;
output        last_bit_of_inter;
output        set_reset_mode;
output        node_bus_off;
output        error_status;
output  [8:0] rx_err_cnt;
output  [8:0] tx_err_cnt;
output        transmit_status;
output        receive_status;
output        tx_successful;
output        need_to_tx;
output        overrun;
output        info_empty;
output        set_bus_error_irq;
output        set_arbitration_lost_irq;
output  [4:0] arbitration_lost_capture;
output        node_error_passive;
output        node_error_active;
output  [6:0] rx_message_counter;


/* This section is for BASIC and EXTENDED mode */
/* Acceptance code register */
input   [7:0] acceptance_code_0;

/* Acceptance mask register */
input   [7:0] acceptance_mask_0;

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


/* This section is for EXTENDED mode */
/* Acceptance code register */
input   [7:0] acceptance_code_1;
input   [7:0] acceptance_code_2;
input   [7:0] acceptance_code_3;

/* Acceptance mask register */
input   [7:0] acceptance_mask_1;
input   [7:0] acceptance_mask_2;
input   [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 */
input   [7:0] tx_data_0;
input   [7:0] tx_data_1;
input   [7:0] tx_data_2;
input   [7:0] tx_data_3;
input   [7:0] tx_data_4;
input   [7:0] tx_data_5;
input   [7:0] tx_data_6;
input   [7:0] tx_data_7;
input   [7:0] tx_data_8;
input   [7:0] tx_data_9;
input   [7:0] tx_data_10;
input   [7:0] tx_data_11;
input   [7:0] tx_data_12;
/* End: Tx data registers */

/* Tx signal */
output        tx;
output        tx_oen;

reg           reset_mode_q;
reg     [5:0] bit_cnt;

reg     [3:0] data_len;
reg    [28:0] id;
reg     [2:0] bit_stuff_cnt;
reg     [2:0] bit_stuff_cnt_tx;
reg           tx_point_q;

reg           rx_idle;
reg           rx_id1;
reg           rx_rtr1;
reg           rx_ide;
reg           rx_id2;
reg           rx_rtr2;
reg           rx_r1;
reg           rx_r0;
reg           rx_dlc;
reg           rx_data;
reg           rx_crc;
reg           rx_crc_lim;
reg           rx_ack;
reg           rx_ack_lim;
reg           rx_eof;
reg           rx_inter;
reg           go_early_tx_latched;

reg           rtr1;
reg           ide;
reg           rtr2;
reg    [14:0] crc_in;

reg     [7:0] tmp_data;
reg     [7:0] tmp_fifo [0:7];
reg           write_data_to_tmp_fifo;
reg     [2:0] byte_cnt;
reg           bit_stuff_cnt_en;
reg           bit_stuff_cnt_tx_en;
reg           crc_enable;

reg     [2:0] eof_cnt;
reg     [2:0] passive_cnt;

reg           transmitting;

reg           error_frame;
reg           error_frame_q;
reg           enable_error_cnt2;
reg     [2:0] error_cnt1;
reg     [2:0] error_cnt2;
reg     [2:0] delayed_dominant_cnt;
reg           enable_overload_cnt2;
reg           overload_frame;
reg           overload_frame_blocked;
reg     [2:0] overload_cnt1;
reg     [2:0] overload_cnt2;
reg           tx;
reg           crc_err;

reg           arbitration_lost;
reg           arbitration_lost_q;
reg     [4:0] arbitration_lost_capture;
reg           arbitration_cnt_en;
reg           arbitration_blocked;
reg           tx_q;

reg           need_to_tx;   // When the CAN core has something to transmit and a dominant bit is sampled at the third bit
reg     [3:0] data_cnt;     // Counting the data bytes that are written to FIFO
reg     [2:0] header_cnt;   // Counting header length
reg           wr_fifo;      // Write data and header to 64-byte fifo
reg     [7:0] data_for_fifo;// Multiplexed data that is stored to 64-byte fifo

reg     [5:0] tx_pointer;
reg           tx_bit;
reg           tx_state;
reg           transmitter;
reg           finish_msg;

reg     [8:0] rx_err_cnt;
reg     [8:0] tx_err_cnt;
reg           rx_err_cnt_blocked;
reg     [3:0] bus_free_cnt;
reg           bus_free_cnt_en;
reg           bus_free;
reg           waiting_for_bus_free;

reg           node_error_passive;
reg           node_bus_off;
reg           node_bus_off_q;
reg           ack_err_latched;
reg           bit_err_latched;
reg           stuff_err_latched;
reg           form_err_latched;
reg           rule3_exc1_1;
reg           rule3_exc1_2;
reg           rule3_exc2;
reg           suspend;
reg           susp_cnt_en;
reg     [2:0] susp_cnt;
reg           error_flag_over_blocked;

reg     [7:0] error_capture_code;
reg     [7:6] error_capture_code_type;
reg           error_capture_code_blocked;

wire    [4:0] error_capture_code_segment;
wire          error_capture_code_direction;

wire          bit_de_stuff;
wire          bit_de_stuff_tx;

wire          rule5;

/* Rx state machine */
wire          go_rx_idle;
wire          go_rx_id1;
wire          go_rx_rtr1;
wire          go_rx_ide;
wire          go_rx_id2;
wire          go_rx_rtr2;
wire          go_rx_r1;
wire          go_rx_r0;
wire          go_rx_dlc;
wire          go_rx_data;
wire          go_rx_crc;
wire          go_rx_crc_lim;
wire          go_rx_ack;
wire          go_rx_ack_lim;
wire          go_rx_eof;
wire          go_overload_frame;
wire          go_rx_inter;
wire          go_error_frame;

wire          go_crc_enable;
wire          rst_crc_enable;

wire          bit_de_stuff_set;
wire          bit_de_stuff_reset;

wire          go_early_tx;
wire          go_tx;

wire   [14:0] calculated_crc;
wire   [15:0] r_calculated_crc;
wire          remote_rq;
wire    [3:0] limited_data_len;
wire          form_err;

wire          error_frame_ended;
wire          overload_frame_ended;
wire          bit_err;
wire          ack_err;
wire          stuff_err;
                                    // of intermission, it starts reading the identifier (and transmitting its own).
wire          overload_needed = 0;  // When receiver is busy, it needs to send overload frame. Only 2 overload frames are allowed to
                                    // be send in a row. This is not implemented because host can not send an overload request.

wire          id_ok;                // If received ID matches ID set in registers
wire          no_byte0;             // There is no byte 0 (RTR bit set to 1 or DLC field equal to 0). Signal used for acceptance filter.
wire          no_byte1;             // There is no byte 1 (RTR bit set to 1 or DLC field equal to 1). Signal used for acceptance filter.

wire    [2:0] header_len;
wire          storing_header;
wire    [3:0] limited_data_len_minus1;
wire          reset_wr_fifo;
wire          err;

wire          arbitration_field;

wire   [18:0] basic_chain;
wire   [63:0] basic_chain_data;
wire   [18:0] extended_chain_std;
wire   [38:0] extended_chain_ext;
wire   [63:0] extended_chain_data;

wire          rst_tx_pointer;

wire    [7:0] r_tx_data_0;
wire    [7:0] r_tx_data_1;
wire    [7:0] r_tx_data_2;
wire    [7:0] r_tx_data_3;
wire    [7:0] r_tx_data_4;
wire    [7:0] r_tx_data_5;
wire    [7:0] r_tx_data_6;
wire    [7:0] r_tx_data_7;
wire    [7:0] r_tx_data_8;
wire    [7:0] r_tx_data_9;
wire    [7:0] r_tx_data_10;
wire    [7:0] r_tx_data_11;
wire    [7:0] r_tx_data_12;

wire          send_ack;
wire          bit_err_exc1;
wire          bit_err_exc2;
wire          bit_err_exc3;
wire          bit_err_exc4;
wire          bit_err_exc5;
wire          error_flag_over;
wire          overload_flag_over;


assign go_rx_idle     =                   sample_point &  sampled_bit & last_bit_of_inter | bus_free & (~node_bus_off);
assign go_rx_id1      =                   sample_point &  (~sampled_bit) & (rx_idle | last_bit_of_inter);
assign go_rx_rtr1     = (~bit_de_stuff) & sample_point &  rx_id1  & (bit_cnt == 10);
assign go_rx_ide      = (~bit_de_stuff) & sample_point &  rx_rtr1;
assign go_rx_id2      = (~bit_de_stuff) & sample_point &  rx_ide  &   sampled_bit;
assign go_rx_rtr2     = (~bit_de_stuff) & sample_point &  rx_id2  & (bit_cnt == 17);
assign go_rx_r1       = (~bit_de_stuff) & sample_point &  rx_rtr2;
assign go_rx_r0       = (~bit_de_stuff) & sample_point & (rx_ide  & (~sampled_bit) | rx_r1);
assign go_rx_dlc      = (~bit_de_stuff) & sample_point &  rx_r0;
assign go_rx_data     = (~bit_de_stuff) & sample_point &  rx_dlc  & (bit_cnt == 3) &  (sampled_bit   |   (|data_len[2:0])) & (~remote_rq);
assign go_rx_crc      = (~bit_de_stuff) & sample_point & (rx_dlc  & (bit_cnt == 3) & ((~sampled_bit) & (~(|data_len[2:0])) | remote_rq) |
                                                          rx_data & (bit_cnt == ((limited_data_len<<3) - 1'b1)));
assign go_rx_crc_lim  = (~bit_de_stuff) & sample_point &  rx_crc  & (bit_cnt == 14);
assign go_rx_ack      =                   sample_point &  rx_crc_lim;
assign go_rx_ack_lim  =                   sample_point &  rx_ack;
assign go_rx_eof      =                   sample_point &  rx_ack_lim;
assign go_rx_inter    =                 ((sample_point &  rx_eof  & (eof_cnt == 6)) | error_frame_ended | overload_frame_ended) & (~overload_needed);

assign go_error_frame = (form_err | stuff_err | bit_err | ack_err | (crc_err & go_rx_eof));
assign error_frame_ended = (error_cnt2 == 7) & tx_point;
assign overload_frame_ended = (overload_cnt2 == 7) & tx_point;

assign go_overload_frame = (   ((sample_point &  rx_eof  & (eof_cnt == 6)) | error_frame_ended | overload_frame_ended) & overload_needed | 
                               sample_point & (~sampled_bit) & rx_inter & (bit_cnt < 2)                                                  |
                               sample_point & (~sampled_bit) & ((error_cnt2 == 7) | (overload_cnt2 == 7))
                           )
                           & (~overload_frame_blocked)
                           ;


assign go_crc_enable  = hard_sync | go_tx;
assign rst_crc_enable = go_rx_crc;

assign bit_de_stuff_set   = go_rx_id1 & (~go_error_frame);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人综合在线| 欧美色综合天天久久综合精品| 波多野结衣中文字幕一区| 欧美影院精品一区| 欧美激情综合在线| 精品综合久久久久久8888| 欧洲精品一区二区| 日韩成人一区二区| 色偷偷88欧美精品久久久| 久久亚洲捆绑美女| 日韩精品午夜视频| 欧美性生活影院| 亚洲婷婷综合久久一本伊一区| 另类小说综合欧美亚洲| 欧美精品色综合| 亚洲精品中文在线| av爱爱亚洲一区| 国产精品日韩精品欧美在线| 国产精品影视网| 欧美精品一区二区三区在线播放| 午夜天堂影视香蕉久久| 色久综合一二码| 国产精品久久久久精k8| 国产精品系列在线观看| 久久精品一二三| 国产一区二区成人久久免费影院| 日韩精品一区二区三区在线| 美女高潮久久久| 日韩一区二区中文字幕| 日产精品久久久久久久性色| 666欧美在线视频| 香蕉成人啪国产精品视频综合网| 欧美日韩一卡二卡三卡| 午夜精品福利一区二区三区蜜桃| 欧美色图12p| 午夜精品久久久久久不卡8050| 欧美视频在线一区二区三区 | 成人免费av资源| 久久久精品国产免费观看同学| 极品销魂美女一区二区三区| 精品99一区二区三区| 国产精品一区二区黑丝| 国产精品无码永久免费888| 成人激情动漫在线观看| 亚洲美女在线一区| 制服.丝袜.亚洲.中文.综合| 麻豆国产91在线播放| 国产亚洲人成网站| eeuss鲁片一区二区三区| 亚洲激情图片一区| 欧美一区二区三区四区高清| 韩国成人福利片在线播放| 国产精品色在线| 色婷婷综合在线| 久久99精品国产麻豆婷婷| 国产欧美一区二区三区在线老狼| 91丨国产丨九色丨pron| 午夜精品久久久久久不卡8050| 欧美成人a视频| 不卡一二三区首页| 肉色丝袜一区二区| 国产日产精品一区| 欧美日韩精品专区| 国产在线视频不卡二| 亚洲精品视频一区二区| 欧美一区二区免费视频| bt欧美亚洲午夜电影天堂| 午夜精品久久久久久久久久| 久久久久国产免费免费| 欧美性猛片xxxx免费看久爱| 国产传媒一区在线| 亚洲二区视频在线| 欧美高清在线精品一区| 欧美精品 国产精品| 国产91综合一区在线观看| 午夜精品一区在线观看| 亚洲国产高清不卡| 日韩三级高清在线| 色素色在线综合| 国产精品一二三区在线| 天堂一区二区在线| 国产精品不卡在线| 精品播放一区二区| 欧美日韩国产中文| 91天堂素人约啪| 国产成人av电影在线| 日韩av电影天堂| 亚洲一区二区高清| 中文字幕一区在线观看| 2019国产精品| 日韩一区二区精品葵司在线| 欧亚洲嫩模精品一区三区| 成人午夜视频福利| 国模无码大尺度一区二区三区| 偷拍自拍另类欧美| 亚洲第一成人在线| 亚洲精品高清在线| 中文字幕一区二| 国产精品久久久99| 久久久国产午夜精品| 日韩视频免费观看高清完整版| 欧美性大战久久久久久久 | 国产精品久久久一本精品| 欧美r级在线观看| 欧美一区二区三区系列电影| 欧美日本一道本在线视频| 91精彩视频在线观看| 色一情一乱一乱一91av| 成人精品一区二区三区中文字幕| 国产一区二区h| 激情综合一区二区三区| 久久精品久久综合| 久久91精品久久久久久秒播| 免费久久精品视频| 裸体在线国模精品偷拍| 另类调教123区| 激情小说亚洲一区| 国产在线精品免费| 国产不卡在线播放| av中文字幕在线不卡| 99在线精品观看| 日本高清不卡视频| 欧美日韩三级一区二区| 欧美日韩一区二区在线观看| 在线综合视频播放| 日韩一本二本av| 久久久久久电影| 自拍偷拍欧美精品| 亚洲第一激情av| 久久综合综合久久综合| 国产成人综合在线播放| 色综合久久久久| 欧美伦理视频网站| 精品国产三级电影在线观看| 国产精品欧美久久久久一区二区| 亚洲人精品午夜| 日本特黄久久久高潮| 国产精品99精品久久免费| 91丨九色丨尤物| 欧美一区二区在线视频| 久久精品一区二区三区不卡| 一区二区三区日韩精品视频| 日韩精品成人一区二区三区| 国产精品一区在线观看你懂的| 99精品在线免费| 日韩一二三区不卡| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲精品国产精华液| 蜜桃久久久久久| 99re在线精品| 日韩欧美一区二区久久婷婷| 国产精品久久午夜夜伦鲁鲁| 亚洲成人www| 成人免费视频网站在线观看| 欧美挠脚心视频网站| 日本一区二区三区四区在线视频| 一卡二卡三卡日韩欧美| 国产美女主播视频一区| 欧美三级日韩三级| 久久久精品国产免大香伊| 午夜精品一区在线观看| 成人一级片在线观看| 制服丝袜亚洲精品中文字幕| 中文字幕亚洲综合久久菠萝蜜| 免播放器亚洲一区| 色94色欧美sute亚洲线路一ni | 国产老肥熟一区二区三区| 在线一区二区三区四区五区| 久久亚洲私人国产精品va媚药| 亚洲国产日日夜夜| 不卡的电视剧免费网站有什么| 日韩三级伦理片妻子的秘密按摩| 一区二区三区美女| 成人av动漫在线| 久久久久久久久久久久久久久99| 午夜精品久久久久久久久| 色综合网色综合| 国产精品国产三级国产aⅴ入口 | 欧美精品一区二区三区蜜桃视频| 亚洲va国产va欧美va观看| 色综合久久88色综合天天免费| 国产亚洲人成网站| 国产精品一区在线| 欧美成人猛片aaaaaaa| 日韩高清中文字幕一区| 欧美午夜片在线观看| 国产精品久久二区二区| 国产98色在线|日韩| 久久精品欧美一区二区三区麻豆| 久久97超碰色| 久久综合五月天婷婷伊人| 精品一区二区在线观看| 欧美大胆一级视频| 免费在线观看一区| 欧美一个色资源| 美国一区二区三区在线播放| 欧美一区二区三区公司| 免费精品视频在线| 精品日韩成人av| 国产剧情在线观看一区二区|