Home

Β© 2025 Maktab-e-Digital Systems Lahore
Licensed under the Apache 2.0 License.

Overview

A hardware module that implements the Controller Area Network protocol for reliable serial communication between multiple devices in embedded systems.

Top-Level Block Diagram

Key Features

  • CAN 2.0A/B compliant – Supports standard (11-bit) and extended (29-bit) frames.

  • Multi-master communication with non-destructive arbitration.

  • Accurate bit timing with programmable synchronization segments.

  • Comprehensive error detection – bit, stuff, form, ACK, and CRC errors.

  • Priority and filtering module – Ensures high-priority messages are transmitted first and unwanted frames are ignored.

  • Automatic error handling with active, passive, and bus-off states.

  • Built-in CRC generation and checking for data integrity.

  • Modular design – transmitter, receiver, bit timing, CRC, and error units.

  • ACK slot handling and bit stuffing/destuffing support.

🧩 Project Structure

CAB-Bus/
β”‚
β”œβ”€β”€ docs/ # Project documentation files
|   β”œβ”€β”€images_design
β”‚   β”œβ”€β”€ home.md 
β”‚   β”œβ”€β”€ installation.md 
β”‚   β”œβ”€β”€ API_Refernece.md 
β”‚   β”œβ”€β”€ contributing.md
β”‚   β”œβ”€β”€ index.md 
β”‚ 
β”œβ”€β”€ rtl/ # SystemVerilog source code
β”‚   β”œβ”€β”€ can_top_module.sv 
β”‚   β”œβ”€β”€ can_transmitter.sv
β”‚   β”œβ”€β”€ can_receiver.sv
β”‚   β”œβ”€β”€ can_timing.sv
β”‚   β”œβ”€β”€ can_crc.sv
β”‚   β”œβ”€β”€ can_error_handling.sv
β”‚   β”œβ”€β”€can_arbitartion.sv
β”‚   β”œβ”€β”€ can_filtering.sv
β”‚   β”œβ”€β”€can_tx_priorty.sv
β”‚
β”œβ”€β”€ tb/ # Testbench and verification 
β”‚   β”œβ”€β”€ tb_can_top.sv 
β”‚   β”œβ”€β”€ tb_can_transmitter.sv
β”‚   β”œβ”€β”€ tb_can_receiver.sv
β”‚   β”œβ”€β”€ tb_can_timing.sv
β”‚   β”œβ”€β”€ tb_can_error_handler.sv
β”‚   β”œβ”€β”€ tb_can_arbitration.sv
β”‚   β”œβ”€β”€ tb_can_filtering.sv
β”‚   β”œβ”€β”€ tb_can_tx_priorty.sv
β”‚
β”œβ”€β”€ README.md

Licensing

Licensed under the Apache License 2.0 Copyright Β© 2025 Maktab-e-Digital Systems Lahore