📄 can_top.v
字号:
/* Rx Error Counter register */ we_rx_err_cnt, /* Tx Error Counter register */ we_tx_err_cnt, /* Clock Divider register */ extended_mode, rx_idle, transmitting, transmitter, go_rx_inter, not_first_bit_of_inter, rx_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_next, bus_off_on, go_overload_frame, go_error_frame, go_tx, send_ack, /* Bist */`ifdef CAN_BIST , mbist_si_i, mbist_so_o, mbist_ctrl_i,`endif // port connections for Ram //64x8 q_dp_64x8, data_64x8, wren_64x8, rden_64x8, wraddress_64x8, rdaddress_64x8, //64x4 q_dp_64x4, data_64x4, wren_64x4x1, wraddress_64x4x1, rdaddress_64x4x1, //64x1 q_dp_64x1, data_64x1 );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;output tx_state;output tx_state_q;input overload_request; // When receiver is busy, it needs to send overload frame. Only 2 overload frames are allowed tooutput overload_frame; // be send in a row. This is not implemented, yet, because host can not send an overload request./* 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 transmitter;output go_rx_inter;output not_first_bit_of_inter;output rx_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_next;output bus_off_on;output go_overload_frame;output go_error_frame;output go_tx;output send_ack;/* Bist */`ifdef CAN_BISTinput mbist_si_i;output mbist_so_o;input [`CAN_MBIST_CTRL_WIDTH - 1:0] mbist_ctrl_i; // bist chain shift control`endif // port connections for Ram //64x8input [7:0] q_dp_64x8;output[7:0] data_64x8;output wren_64x8;output rden_64x8;output[5:0] wraddress_64x8;output[5:0] rdaddress_64x8;//64x4input [3:0] q_dp_64x4;output[3:0] data_64x4;output wren_64x4x1;output[5:0] wraddress_64x4x1;output[5:0] rdaddress_64x4x1;//64x1input[0:0] q_dp_64x1;output[0:0] data_64x1; //----------------------------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 crc_enable;reg [2:0] eof_cnt;reg [2:0] passive_cnt;reg transmitting;reg error_frame;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 [1:0] overload_request_cnt;reg [2:0] overload_cnt1;reg [2:0] overload_cnt2;reg tx;reg crc_err;reg arbitration_lost;reg arbitration_lost_q;reg read_arbitration_lost_capture_reg_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 bitreg [3:0] data_cnt; // Counting the data bytes that are written to FIFOreg [2:0] header_cnt; // Counting header lengthreg wr_fifo; // Write data and header to 64-byte fiforeg [7:0] data_for_fifo;// Multiplexed data that is stored to 64-byte fiforeg [5:0] tx_pointer;reg tx_bit;reg tx_state;reg tx_state_q;reg transmitter;reg finish_msg;reg [8:0] rx_err_cnt;reg [8:0] tx_err_cnt;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 suspend;reg susp_cnt_en;reg [2:0] susp_cnt;reg error_flag_over_latched;reg [7:0] error_capture_code;reg [7:6] error_capture_code_type;reg error_capture_code_blocked;reg tx_next;reg first_compare_bit;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_rx_inter;wire last_bit_of_inter;wire go_crc_enable;wire rst_crc_enable;wire bit_de_stuff_set;wire bit_de_stuff_reset;wire go_early_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;wire id_ok; // If recei
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -