亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲国产欧美在线| 99视频有精品| 日韩国产一二三区| 亚洲成人av一区二区三区| 亚洲精品国产品国语在线app| 国产精品色一区二区三区| 国产婷婷一区二区| 中文字幕免费观看一区| 中文字幕不卡在线播放| 国产精品私人影院| 国产精品家庭影院| 日韩美女啊v在线免费观看| 国产精品天干天干在观线| 国产精品青草久久| 亚洲桃色在线一区| 艳妇臀荡乳欲伦亚洲一区| 亚洲与欧洲av电影| 午夜一区二区三区视频| 日本麻豆一区二区三区视频| 日本欧洲一区二区| 久久精品免费观看| 国产iv一区二区三区| 成人免费av网站| 色婷婷亚洲综合| 欧美日韩精品免费| 精品成人在线观看| 中文字幕一区二区三区色视频| 中文字幕一区二区三区不卡 | 制服丝袜亚洲播放| 日韩精品一区二区三区中文精品| 精品奇米国产一区二区三区| 久久九九国产精品| 亚洲精品亚洲人成人网在线播放| 亚洲午夜激情网页| 日本视频免费一区| 成人av在线看| 欧美在线观看视频一区二区| 欧美一级淫片007| 国产女同互慰高潮91漫画| 亚洲女性喷水在线观看一区| 亚洲1区2区3区4区| 国产成人综合亚洲网站| 色偷偷久久一区二区三区| 欧美剧在线免费观看网站| 精品99一区二区三区| 国产精品久久久99| 日韩成人一级大片| www.久久精品| 日韩视频一区二区三区在线播放 | 中文天堂在线一区| 亚洲韩国一区二区三区| 韩国欧美一区二区| 91国内精品野花午夜精品| 欧美电影免费观看高清完整版 | 亚洲欧美日韩成人高清在线一区| 午夜精品福利一区二区三区av| 国产一区二区三区免费在线观看| 91在线免费看| 精品久久国产字幕高潮| 一区二区成人在线观看| 国产永久精品大片wwwapp| 91黄色在线观看| 久久久久久久久久久久久女国产乱 | 久久久久久久久97黄色工厂| 一区二区三区四区五区视频在线观看 | 中文字幕在线观看一区二区| 丝袜亚洲另类欧美综合| 99热99精品| 欧美草草影院在线视频| 一个色综合网站| 高清久久久久久| 欧美一区二区精品| 亚洲最新视频在线播放| 成人免费高清视频在线观看| 日韩一级精品视频在线观看| 亚洲欧美日本韩国| 粉嫩aⅴ一区二区三区四区五区| 欧美高清视频一二三区 | 亚洲欧美偷拍卡通变态| 国产老肥熟一区二区三区| 9191国产精品| 亚洲一区二区三区激情| 99久久精品国产导航| 欧美精品一区二区三区在线播放 | 首页国产丝袜综合| 色妹子一区二区| 国产精品全国免费观看高清| 精品无人区卡一卡二卡三乱码免费卡| 欧美色精品天天在线观看视频| 中文字幕第一区综合| 韩国成人福利片在线播放| 3atv在线一区二区三区| 亚洲国产一区二区三区| 色综合天天在线| 亚洲特黄一级片| 99精品欧美一区二区三区小说| 久久久精品综合| 国产一区二区毛片| 精品国产乱子伦一区| 久久69国产一区二区蜜臀| 欧美一区二区性放荡片| 午夜精品免费在线| 欧美蜜桃一区二区三区| 亚洲香肠在线观看| 欧美四级电影在线观看| 亚洲午夜久久久久中文字幕久| 91美女福利视频| 亚洲精品午夜久久久| 色屁屁一区二区| 亚洲一区二区三区三| 欧美视频一区二区三区| 亚洲国产cao| 欧美美女直播网站| 日韩av成人高清| 日韩亚洲欧美中文三级| 久久激情五月激情| 久久综合久久综合亚洲| 国产一区二区三区观看| 国产欧美日韩久久| 9人人澡人人爽人人精品| 亚洲三级视频在线观看| 色综合久久中文综合久久97| 亚洲精品日产精品乱码不卡| 在线看国产一区| 午夜私人影院久久久久| 日韩亚洲欧美在线| 国产精品小仙女| 国产精品成人一区二区三区夜夜夜 | 久久99精品久久久久| 久久蜜桃av一区精品变态类天堂| 国产美女精品一区二区三区| 国产午夜精品久久久久久免费视 | 粉嫩av一区二区三区| 亚洲欧美日韩国产另类专区| 在线免费观看成人短视频| 天堂一区二区在线| 精品对白一区国产伦| 99久久久久免费精品国产| 亚洲综合一二区| 精品国产亚洲在线| 成人app网站| 亚洲第四色夜色| 精品国产亚洲在线| 91麻豆国产精品久久| 日韩精品一卡二卡三卡四卡无卡| 欧美成人video| 91色乱码一区二区三区| 天天综合天天综合色| 久久久久久久久岛国免费| 日本精品视频一区二区| 蜜臀va亚洲va欧美va天堂| 中文文精品字幕一区二区| 欧美少妇xxx| 国产高清无密码一区二区三区| 亚洲精品高清在线| 精品国产一区二区三区久久久蜜月 | 99久久99久久精品免费看蜜桃| 亚洲va欧美va人人爽| 国产日韩在线不卡| 欧美日韩在线播放三区| 精品在线观看视频| 亚洲欧美另类小说视频| 精品成人免费观看| 91麻豆精品在线观看| 黄页视频在线91| 亚洲午夜久久久久中文字幕久| 久久久久国产一区二区三区四区 | 久久精品一区二区| 欧美自拍偷拍一区| 高清av一区二区| 美腿丝袜在线亚洲一区 | 国产成人免费视频精品含羞草妖精| 一区二区三区在线视频播放| 久久综合久色欧美综合狠狠| 色94色欧美sute亚洲13| 国产成人三级在线观看| 日本欧美在线观看| 亚洲黄色av一区| 国产精品久久久一区麻豆最新章节| 91精品国产综合久久精品| 97久久久精品综合88久久| 国产一区二区三区视频在线播放 | 欧美性xxxxxx少妇| 成人精品视频网站| 精一区二区三区| 丝瓜av网站精品一区二区| 亚洲天堂久久久久久久| 久久久综合精品| 日韩亚洲国产中文字幕欧美| 欧美主播一区二区三区| proumb性欧美在线观看| 国产一区二区三区久久悠悠色av| 日韩电影在线免费看| 亚洲在线视频一区| 亚洲同性gay激情无套| 国产精品私房写真福利视频| 久久毛片高清国产| 精品免费日韩av| 欧美va日韩va| 日韩写真欧美这视频|