⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 can_testbench.v

📁 This source file may be used and distributed without restriction provided that this copyright statem
💻 V
📖 第 1 页 / 共 5 页
字号:
          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC 6          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC 0          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC 5          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC b          send_bit(1);  // CRC DELIM          send_bit(0);  // ACK          send_bit(1);  // ACK DELIM          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // INTER          send_bit(1);  // INTER          send_bit(1);  // INTER        end // repeat      end            join    read_receive_buffer;    release_rx_buffer_command;    #1000 read_register(8'd3, tmp_data);    read_receive_buffer;    release_rx_buffer_command;    read_receive_buffer;// First we receive a msg          send_bit(0);  // SOF          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(1);  // ID          send_bit(1);  // RTR          send_bit(0);  // IDE          send_bit(0);  // r0          send_bit(0);  // DLC          send_bit(1);  // DLC          send_bit(1);  // DLC          send_bit(1);  // DLC          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC 6          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC 0          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC 5          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC b          send_bit(1);  // CRC DELIM          send_bit(0);  // ACK          send_bit(1);  // ACK DELIM          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // INTER          send_bit(1);  // INTER          send_bit(1);  // INTER    fork      begin        tx_request_command;//        self_reception_request_command;      end      begin        #931;        repeat (1)        begin          send_bit(0);  // SOF          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID arbi lost          send_bit(1);  // RTR          send_bit(0);  // IDE          send_bit(0);  // r0          send_bit(0);  // DLC          send_bit(1);  // DLC          send_bit(1);  // DLC          send_bit(1);  // DLC          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC 6          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC 0          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC 5          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC b          send_bit(1);  // CRC DELIM          send_bit(0);  // ACK          send_bit(1);  // ACK DELIM          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // INTER          send_bit(1);  // INTER          send_bit(1);  // INTER#6000;          send_bit(0);  // SOF          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(1);  // ID          send_bit(1);  // RTR          send_bit(0);  // IDE          send_bit(0);  // r0          send_bit(0);  // DLC          send_bit(1);  // DLC          send_bit(1);  // DLC          send_bit(1);  // DLC          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC 6          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC 0          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC 5          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC b          send_bit(1);  // CRC DELIM          send_bit(0);  // ACK          send_bit(1);  // ACK DELIM          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // INTER          send_bit(1);  // INTER          send_bit(1);  // INTER        end // repeat      end            join    read_receive_buffer;    release_rx_buffer_command;    #1000 read_register(8'd3, tmp_data);    read_receive_buffer;    release_rx_buffer_command;    read_receive_buffer;    #4000000;  endendtask   //  manual_frame_basictask manual_frame_ext;    // Testbench sends an extended format frame  begin    // Switch-on reset mode    write_register(8'd0, {7'h0, (`CAN_MODE_RESET)});    // Set Clock Divider register    extended_mode = 1'b1;    write_register(8'd31, {extended_mode, 7'h0});    // Setting the extended mode      // Set Acceptance Code and Acceptance Mask registers    write_register(8'd16, 8'ha6); // acceptance code 0    write_register(8'd17, 8'h00); // acceptance code 1    write_register(8'd18, 8'h5a); // acceptance code 2    write_register(8'd19, 8'hac); // acceptance code 3    write_register(8'd20, 8'h00); // acceptance mask 0    write_register(8'd21, 8'h00); // acceptance mask 1    write_register(8'd22, 8'h00); // acceptance mask 2    write_register(8'd23, 8'h00); // acceptance mask 3    //write_register(8'd14, 8'h7a); // rx err cnt//write_register(8'd15, 8'h7a); // tx err cnt//read_register(8'd14, tmp_data); // rx err cnt//read_register(8'd15, tmp_data); // tx err cnt    repeat (100) @ (posedge clk);        // Switch-off reset mode    write_register(8'd0, {7'h0, ~(`CAN_MODE_RESET)});    // After exiting the reset mode sending bus free    repeat (11) send_bit(1);    // Extended frame format    // Writing TX frame information + identifier + data    write_register(8'd16, 8'hc5);   // Frame format = 1, Remote transmision request = 1, DLC = 5    write_register(8'd17, 8'ha6);   // ID[28:21] = a6    write_register(8'd18, 8'h00);   // ID[20:13] = 00    write_register(8'd19, 8'h5a);   // ID[12:5]  = 5a    write_register(8'd20, 8'ha8);   // ID[4:0]   = 15    // write_register(8'd21, 8'h78); RTR does not send any data    // write_register(8'd22, 8'h9a);    // write_register(8'd23, 8'hbc);    // write_register(8'd24, 8'hde);    // write_register(8'd25, 8'hf0);    // write_register(8'd26, 8'h0f);    // write_register(8'd27, 8'hed);    // write_register(8'd28, 8'hcb);    // Enabling IRQ's (extended mode)    write_register(8'd4, 8'hff);    // tx_bypassed = 1;    // When this signal is on, tx is not looped back to the rx.        fork      begin        tx_request_command;//        self_reception_request_command;      end      begin        #771;        repeat (1)        begin          send_bit(0);  // SOF          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID a          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(1);  // ID          send_bit(0);  // ID 6          send_bit(0);  // ID          send_bit(0);  // ID          send_bit(0);  // ID           send_bit(1);  // RTR          send_bit(1);  // IDE          send_bit(0);  // ID 0          send_bit(0);  // ID           send_bit(0);  // ID           send_bit(0);  // ID           send_bit(0);  // ID 0          send_bit(1);  // ID stuff          send_bit(0);  // ID           send_bit(1);  // ID           send_bit(0);  // ID           send_bit(1);  // ID 6          send_bit(1);  // ID           send_bit(0);  // ID           send_bit(1);  // ID           send_bit(0);  // ID a          send_bit(1);  // ID 1          send_bit(0);  // ID           send_bit(1);  // ID          send_bit(0);  // ID           send_bit(0);  // ID 5   // Force arbitration lost          send_bit(1);  // RTR          send_bit(0);  // r1          send_bit(0);  // r0          send_bit(0);  // DLC          send_bit(1);  // DLC          send_bit(0);  // DLC          send_bit(1);  // DLC          send_bit(1);  // CRC          send_bit(1);  // CRC           send_bit(0);  // CRC 6          send_bit(1);  // CRC          send_bit(1);  // CRC          send_bit(1);  // CRC            send_bit(1);  // CRC f          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(1);  // CRC            send_bit(0);  // CRC 2          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC a          send_bit(1);  // CRC DELIM          send_bit(0);  // ACK          send_bit(1);  // ACK DELIM          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // INTER          send_bit(1);  // INTER          send_bit(1);  // INTER#80;          send_bit(0);  // SOF          send_bit(1);  // ID          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(0);  // ID a          send_bit(0);  // ID          send_bit(1);  // ID          send_bit(1);  // ID          send_bit(0);  // ID 6          send_bit(0);  // ID          send_bit(0);  // ID          send_bit(0);  // ID           send_bit(1);  // RTR          send_bit(1);  // IDE          send_bit(0);  // ID 0          send_bit(0);  // ID           send_bit(0);  // ID           send_bit(0);  // ID           send_bit(0);  // ID 0          send_bit(1);  // ID stuff          send_bit(0);  // ID           send_bit(1);  // ID           send_bit(0);  // ID           send_bit(1);  // ID 6          send_bit(1);  // ID           send_bit(0);  // ID           send_bit(1);  // ID           send_bit(0);  // ID a          send_bit(1);  // ID 1          send_bit(0);  // ID           send_bit(0);  // ID     // Force arbitration lost           send_bit(0);  // ID           send_bit(1);  // ID 5          send_bit(1);  // RTR          send_bit(0);  // r1          send_bit(0);  // r0          send_bit(0);  // DLC          send_bit(1);  // DLC          send_bit(0);  // DLC          send_bit(1);  // DLC          send_bit(0);  // CRC          send_bit(0);  // CRC           send_bit(0);  // CRC 0          send_bit(0);  // CRC          send_bit(0);  // CRC          send_bit(1);  // CRC stuff           send_bit(0);  // CRC            send_bit(0);  // CRC 0          send_bit(1);  // CRC          send_bit(1);  // CRC          send_bit(1);  // CRC            send_bit(0);  // CRC e          send_bit(1);  // CRC          send_bit(1);  // CRC          send_bit(0);  // CRC          send_bit(0);  // CRC c          send_bit(1);  // CRC DELIM          send_bit(0);  // ACK          send_bit(1);  // ACK DELIM          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // EOF          send_bit(1);  // INTER

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -