CAN-CTRL
CAN 2.0, CAN FD, and CAN XL Bus Controller

Implements a CAN bus controller that performs serial communication according to the CAN 2.0, CAN FD, and CAN XL specifications. It supports the original Bosch protocol and ISO specifications as defined in ISO 11898—including time-triggered operation (TTCAN) as specified in ISO 19898-4—and is also optimized to support the popular AUTOSAR and SAE J1939 specifications. 

The CAN protocol uses a multi-master bus configuration for the transfer of frames between nodes of the network and manages error handling with no burden on the host processor. The core enables the user to set up economic and reliable links between various components. It appears as a memory-mapped I/O device to the host processor, which accesses the CAN core to control the transmission or reception of frames.

The CAN-CTRL core is easy to use and integrate, featuring programmable interrupts, data and baud rates; a configurable number of independently programmable acceptance filters; and a generic processor interface or optionally an AMBA APB, or AHB-Lite interface. It implements a flexible buffering scheme, allowing fine-tuning of the core size to satisfy the requirements of each specific application. 

The number of receive buffers is synthesis-time configurable. Two types of transmit buffers are implemented: a high-priority primary transmit buffer (PTB) and a lower-priority secondary transmit buffer (STB). The PTB can store one message, while the number of included buffer slots for the STB is synthesis-time configurable. The transmit buffer can operate in FIFO or priority mode. 

The core implements functionality similar to the Philips SJA1000 working with its PeliCAN mode extensions, providing error analysis, diagnosis, system maintenance, and optimization features.  

The CAN-CTRL is extensively verified, proven in several plugfests and a large number of production designs.

    The CAN bus controller comes in three variants: 2.0, FD, and XL. The 2.0 variant supports only the CAN 2.0 specification, the FD variant adds support for CAN FD, and the XL variant supports the CAN 2.0, CAN FD, and CAN XL standards.

    Each of the three core variants is available in two versions: Standard and Safety-Enhanced. The Safety-Enhanced version implements ECC for SRAMs protection and uses spatial redundancy for protecting the inner logic of the core. The Safety-Enhanced versions are certified as ISO-26262 ASIL-B Ready. ASIL-C compatible versions can be made available and get certified upon request.

    Verification

    The core has been rigorously verified and has been production-proven multiple times.
    It has been verified through extensive synthesis, place and route, simulation runs, Verification IP, and PlugFests. It has been embedded in several shipping customer products and is proven in both ASIC and FPGA technologies.

    Support

    The core as delivered is warranted against defects for ninety days from purchase. Thirty days of phone and email technical support are included, starting with the first interaction. Additional maintenance and support options are available.

    Deliverables

    The core includes everything required for successful implementation:

    • VHDL or Verilog RTL source code
    • Post-synthesis netlist 
    • Testbenches
      • Behavioral tests
      • Post-synthesis verification
    • Simulation scripts
    • Synthesis scripts
    • Linux driver
    • Documentation, and RUVM register descriptions
    • The optional safety-enhanced package includes the Safety Manual (SAM), a Failure Modes, Effects and Diagnostics Analysis (FMEDA) and the ASIL-B Ready certificate, issued by SGS-TÜV Saar GmbH.

    The CAN-CTRL can be mapped to any ASIC technology or FPGA device (provided sufficient silicon resources are available).  The following are sample results for the core configured with three receive buffers, three transmit buffers, and three acceptance filters (does not include priority mode, TTCAN and CiA603 timestamping). 

    Configuration Technology Cell Area
    (eq. Gates)
    Memory
    Bits
    CAN 2.0 TSMC 40nm G 10,800 1,088
    CAN 2.0 TSMC 28nm HPC 8,600 1,088
    CAN FD TSMC 40nm G 14,000 4,224
    CAN FD TSMC 28nm HPC 10.441 4,224
    CAN XL TSMC 28nm HPC 13,250 133,000

    The next table provides sample results for the core config-ured with sixteen receive buffers, sixteen transmit buffers, sixteen acceptance filters, TTCAN, and 64-bit CiA603 timestamps,

    Configuration Technology Cell Area
    (eq. Gates)
    Memory
    Bits
    CAN 2.0 TTSMC 28nm HPC 8,700 5,920
    CAN 2.0 Safe TTSMC 28nm HPC 14,626 7,215
    CAN FD TTSMC 28nm HPC 16,214 21,152
    CAN FD Safe TTSMC 28nm HPC 39,714 25,779

    Please contact CAST to get characterization data for your target configuration and technology.

    The CAN-CTRL can be mapped to any Intel FPGA device (provided sufficient silicon resources are available). The following are sample results for the core configured with three receive buffers, three transmit buffers, and three acceptance filters (does not include priority mode, TTCAN and CiA603 timestamping).

    Family Device CAN 2.0 CAN-FD
    Logic Memory Logic Memory
    Max 10
    10M50
    2,343 LEs
    0 MULTs
    1,088 bits
    3 RAM Blocks
    2,806 LEs
    0 MULTs
    4,224 bits
    3 RAM Blocks
    Cyclone V
    5CEFA7
    1,094 ALMs
    1 DSP
    1,325 ALMs
    1 DSP
    Cyclone 10 LP
    10CL120
    2,331 LEs
    0 MULTs
    2,808 LEs
    0 MULTs
    Cyclone 10 GX
    10AX115
    1,072 ALMs
    1 DSP
    1,317 ALMs
    1 DSP
    Arria V GX
    5AGXBB3
    1,092 ALMs
    1 DSP
    1,217 ALMs
    1 DSP
    Arria 10 GX
    10AX115
    1,117 ALMs
    1 DSP
    1,333 ALMs
    1 DSP

    Note: Host and CAN clock constrained to 80MHz

    When CAN XL support is added, the CAN-CTRL core occupies approximately 1,750 ALMs and requires 133k of memory bits.
    Please contact CAST to get characterization data for your target configuration and technology.

    The CAN-CTRL can be mapped to any Lattice Device (provided sufficient silicon resources are available) and optimized to suit the particular project’s requirements.. The following are sample results for the core configured with three receive buffers, three transmit buffers, and three acceptance filters (does not include TTCAN, or CAN-XL).

    Family & Device CAN-FD Support Logic Block RAMs Host Clock (MHz) CAN Clock (MHz)
    ICE
    40U/P5k
    Yes 3,883 LCs
    544 PLBs
    6 42 25
    ICE
    40U/P5k
    No 2,932 LCs
    452 PLBs
    6 45 25
    MachXO2
    7000HC
    Yes 1,530 Slices
    3,025 LUT4s
    4 59 23
    MachXO2
    7000HC
    No 1,248 Slices
    2,466 LUT4s
    0 62 29
    ECP5
    LFE5U-85F
    Yes 1,810 Slices
    2,752 LUTs
    2 80 80
    ECP5
    LFE5U-85F
    No 1,444 Slices
    2,135 LUTs
    2 80 80

    CAN-CTRL reference designs have been evaluated in a variety of technologies. The following are sample results optimized for area with three receive buffers, three transmit buffers, and three acceptance filters (standard version, no TTCAN).

    Family Variant Logic
    Resources
    Memory
    Resources
    Freq.
    (MHz)
    Igloo2
    M2GL150-STD
    CAN 2.0 2,774 4LUT 2 RAM1K18 60
    Igloo2
    M2GL150-STD
    CAN FD 3,330 4LUT 2 RAM1K18 60
    PolarFire
    MPF500T-STD
    CAN 2.0 2,759 4LUT 2 LSRAM 100
    PolarFire
    MPF500T-STD
    CAN FD 3,375 4LUT 2 LSRAM 100
    RTG4
    RT4G150-STD
    CAN 2.0 2,711 4LUT 2 RAM1K18 60
    RTG4
    RT4G150-STD
    CAN FD 3,416 4LUT 2 RAM1K18 60
    SmartFusion2
    M2S150-STD
    CAN 2.0 2,774 4LUT 2 RAM1K18 60
    SmartFusion2
    M2S150-STD
    CAN FD 3,330 4LUT 2 RAM1K18 60

    The CAN-CTRL can be mapped to any Xilinx FPGA device (provided sufficient silicon resources are available).  The following are sample results for the core configured with three receive buffers, three transmit buffers, and three acceptance filters (does not include priority mode, TTCAN, and CiA603 timestamping).

    Family Device CAN 2.0 CAN-FD
    Logic Memory Logic Memory
    Artix-7
    XC7A15T
    1,616 LUTs
    511 Slices
    1,088 bits
    1 RAMB36
    1,952 LUTs
    652 Slices
    4,224 bits
    1 RAMB36
    Virtex-7
    XCVX300T
    1,612 LUTs
    522 Slices
    1,942 LUs
    646 Slices
    Kintex UltraScale
    XCKU060
    1,595 LUTs
    240 CLBs
    1,937 LUTs
    296 CLBs
    Kintex UltraScale+
    XKU15P
    1590 LUTs
    264 CLBs
    1,941 LUTs
    337 CLBs


    Note: Host and CAN clock constrained to 80MHz

    When CAN XL support is added, the CAN-CTRL core occupies approximately 3,000 LUTs and 6.5 BRAM Tiles.
    Please contact CAST to get characterization data for your target configuration and technology.

    Related Content

    Features List

    CAN Specifications Support

    • CAN 2.0 & CAN FD (ISO 11898-1.2015, plus earlier ISO and Bosch specifications) 
    • CAN XL (CiA 610-1 specification)
    • TTCAN (ISO 11898-4 level 1) 
    • Optimized for AUTOSAR and SAE J1939

    Enhanced Functionality

    • Error Analysis features enabling diagnostics, system maintenance, and system optimization:
      • Last error type
      • Arbitration lost position
      • Error Warning Limit
    • Listen-Only Mode enables CAN bus traffic analysis and automatic bit-rate detection
    • Loop back mode for self-testing
    • Time-stamping support, compliant to CiA's 603 specification

    Flexible Message Buffering and Filtering

    • Configurable number of:
      • Receive buffers
      • Lower-priority transmit buffers
      • Independently programmable acceptance filters, 1 to 16
    • One high-priority transmit buffer
    • FIFO or priority mode for transmit buffers

    Easy to Use and Integrate

    • Programmable data rate up to 1 Mbit/s with CAN 2.0 and several Mbit/s with CAN FD or CAN XL option
    • Programmable baud rate prescaler: 1 up to 1/256
    • Single Shot Transmission Mode for lower software overhead and fast reloading of transmit buffer
    • Programmable interrupt sources
    • Generic 8-bit host-controller interface and optional 32-bit AMBA-APB or 32-bit AHB-Lite
    • A single host can control multiple CAN bus nodes via an optional Multi-CAN wrapper

    Safety Enhanced Version (optional)

    • ISO-26262 ASIL-B Ready
      • Implements ECC for SRAM and spatial redundancy for inner logic protection
    • ISO-26262 ASIL-C on request

    Zero Risk

    • Compatible with any CAN2.0 transceiver (PHY) that supports ISO-11898, and various CAN-FD PHYs from NXP, MicroChip, OnSemi, Infineon, etc.
    • Multiple times production-proven

    Efficient and Portable Design

    • Available in RTL, and portable to ASIC and FPGA technologies

    Verification IP

    Available for this core: CAN-VIP

    Resources

    Resources

    Partnerships

    CAST is a member of the CAN in Automation (CiA) user's and manufacturer's trade group.

    Let's talk about your project and our IP solutions

    Request Info