77
CONTROL PROTOCOL A THESIS SU OF THE RE VLS Department of Ele Na LLER AREA NETWO L; DESIGN TO TAPEO UBMITTED IN PARTIAL FULFILLMENT EQUIREMENTS FOR THE DEGREE OF Master of Technology in SI Design & Embedded Systems Submitted By TAPAS RANJAN JENA Roll # 210EC2310 ectronics & Communication Engin ational Institute of Technology, Rourkela – 769008 ORK OUT neering

CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

  • Upload
    votram

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

CONTROLLER

PROTOCOL;

A THESIS SUBMITTED IN PARTIAL FULFILLMENT

OF THE REQUIREMENTS FOR THE DEGREE OF

VLSI Design & Embedded Systems

Department of Electronics & Communication Engineering

National Institute of Technology,

CONTROLLER AREA NETWORK

PROTOCOL; DESIGN TO TAPEOUT

A THESIS SUBMITTED IN PARTIAL FULFILLMENT

OF THE REQUIREMENTS FOR THE DEGREE OF

Master of Technology

in

VLSI Design & Embedded Systems

Submitted By

TAPAS RANJAN JENA

Roll # 210EC2310

Department of Electronics & Communication Engineering

National Institute of Technology,

Rourkela – 769008

NETWORK

TAPEOUT

Department of Electronics & Communication Engineering

Page 2: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

CONTROLLER

PROTOCOL;

A THESIS SUBMITTED IN PARTIAL FULFILLMENT

OF THE REQUIREMENTS FOR THE DEGREE OF

VLSI Design & Embedded Systems

Prof. A. K. Swain and Prof. K. K. Mahapatra

Department of Electronics & Communication Engineering

National Institute of Technology,

CONTROLLER AREA NETWORK

PROTOCOL; DESIGN TO TAPEOUT

A THESIS SUBMITTED IN PARTIAL FULFILLMENT

OF THE REQUIREMENTS FOR THE DEGREE OF

Master of Technology in

VLSI Design & Embedded Systems

Submitted By

TAPAS RANJAN JENA

Roll # 210EC2310

Under the guidance of

Prof. A. K. Swain and Prof. K. K. Mahapatra

Department of Electronics & Communication Engineering

National Institute of Technology,

Rourkela – 769008

NETWORK

TAPEOUT

Prof. A. K. Swain and Prof. K. K. Mahapatra

Department of Electronics & Communication Engineering

Page 3: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

National Institute o

This is to certify that the thesis entitled,

PROTOCOL; DESIGN TO

(210EC2310) in partial fulfilment of the requirements for the award of Master of Technology

degree in Electronics and Communication Engineering

and Embedded System” during session 2011

Rourkela (Deemed University) and is an authentic work

guidance.

To the best of our knowledge, the matter embodied in the thesis has not been submitted to

any other university/institute for the award of any Degree or Dipl

Date: Prof.

National Institute of Technology

Rourkela

CERTIFICATE

This is to certify that the thesis entitled, “CONTROLLER AREA

TO TAPEOUT” submitted by TAPAS RANJAN JENA

in partial fulfilment of the requirements for the award of Master of Technology

Electronics and Communication Engineering with specialization in

during session 2011-2012 at National Institute of Technology,

and is an authentic work done by him under our

knowledge, the matter embodied in the thesis has not been submitted to

any other university/institute for the award of any Degree or Diploma.

Prof. A.K. SWAIN Prof. K. K. Mahapatra

Dept. of Electronics & Communication

National Institute of Technology

Rourkela

AREA NETWORK

TAPAS RANJAN JENA

in partial fulfilment of the requirements for the award of Master of Technology

with specialization in “VLSI Design

2012 at National Institute of Technology,

our supervision and

knowledge, the matter embodied in the thesis has not been submitted to

Prof. K. K. Mahapatra

ommunication Engineering

National Institute of Technology

Rourkela-769008

Page 4: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Dedicated to My Parents

And

My Teachers

Page 5: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page iv

ACKNOWLEDGEMENT

I would like to express my gratitude to my thesis guide Prof.A. K. SWAIN and Prof. K. K.

Mahapatra for his guidance, advice and constant support throughout my thesis work. I would

like to thank him for being my advisor here at National Institute of Technology, Rourkela.

Next, I want to express my respects to Prof.D.P.Acharya, Prof. P. K. Tiwari, Prof.N. Islam,

Prof. S.K. Patra, for teaching me and also helping me how to learn. They have been great

sources of inspiration to me and I thank them from the bottom of my heart.

I would like to thank all faculty members and staff of the Department of Electronics and

Communication Engineering, N.I.T. Rourkela for their generous help in various ways for the

completion of this thesis.

I would like to thank all my friends and especially my classmates for all the thoughtful and mind

stimulating discussions we had, which prompted us to think beyond the obvious. I’ve enjoyed

their companionship so much during my stay at NIT, Rourkela.

I am especially indebted to my parents for their love, sacrifice, and support. They are my first

teachers after I came to this world and have set great examples for me about how to live, study,

and work.

TAPAS RANJAN JENA [email protected]

Page 6: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page v

CONTENTS

ACKNOWLEDGEMENT ………………………………………………………………… - iv -

ABSTRACT ……………………………………………………………………………….. - xi -

Chapter 1 .................................................................................................................................... - 1 -

1.1 INTRODUCTION ....................................................................................................... - 2 -

1.2 HISTORY .................................................................................................................... - 2 -

1.3 NECESSITY OF COMMUNICATION PROTOCOL LIKE CAN ............................ - 3 -

1.4 CAN APPLICATIONS ............................................................................................... - 4 -

1.5 CAN-IN-AUTOMATION (CiA) ................................................................................ - 4 -

1.6 INTERNATIONAL STANDARD ISO 11898 ........................................................... - 5 -

1.7 MOTIVATION ............................................................................................................ - 5 -

1.8 PROBLEM BEING ADDRESSED ............................................................................ - 6 -

1.9 ORGANIZATION OF THE THESIS ......................................................................... - 7 -

Chapter 2 ......................................................................................................................................... 8

2.1 INTRODUCTION ............................................................................................................ 9

2.2 ISO/OSI MODEL ........................................................................................................... 10

2.3 BUS ARBITRATION .................................................................................................... 12

2.4 CAN MESSAGE FRAME ............................................................................................. 13

2.5 DATA FRAME .............................................................................................................. 13

2.5.1 Start of Frame (SoF) ................................................................................................ 14

Page 7: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page vi

2.5.2 Arbitration Field ...................................................................................................... 14

2.5.3 Control Field ........................................................................................................... 15

2.5.4 Data Field ................................................................................................................ 15

2.5.5 CRC Field ................................................................................................................ 15

2.5.6 Acknowledgement Field ......................................................................................... 15

2.5.7 End of Frame Field .................................................................................................. 15

2.5.8 Inter Frame Space (IFS) .......................................................................................... 16

2.6 REMOTE FRAME ......................................................................................................... 16

2.7 ERROR FRAME ............................................................................................................ 17

2.8 OVERLOAD FRAME ................................................................................................... 18

2.9 BIT REPRESENTATION .............................................................................................. 18

2.10 BIT ENCODING ............................................................................................................ 19

2.11 BIT STUFFING .............................................................................................................. 20

2.11.1 Selective Xor Masking ........................................................................................ 20

2.11.2 Software Bit Stuffing (SBS) .................................................................................... 20

2.11.3 Eight-To-Eleven Modulation (EEM)................................................................... 21

2.11.4 Implementation of EEM Algorithm ........................................................................ 22

Chapter 3 ....................................................................................................................................... 24

3.1 INTRODUCTION .......................................................................................................... 25

3.2 DESIGN DESCRIPTION .............................................................................................. 25

Page 8: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page vii

3.3 GENERAL DESIGN FLOW ......................................................................................... 27

3.4 SPECIFICATION AND RTL CODING ........................................................................ 28

3.5 SIMULATION AND VERIFICATION ......................................................................... 28

3.6 SYNTHESIS ................................................................................................................... 29

3.7 FORMAL VERIFICATION........................................................................................... 30

3.8 STATIC TIMING ANALYSIS ...................................................................................... 30

3.9 PHYSICAL DESIGN ..................................................................................................... 30

Chapter 4 ....................................................................................................................................... 32

4.1 DESIGN DESCRIPTION .............................................................................................. 33

4.1.1 Host CPU: ............................................................................................................... 33

4.1.2 Parameter Register: ................................................................................................. 33

4.1.3 Transmitter Buffers: ................................................................................................ 34

4.1.4 Data/Remote Frame Generator: .............................................................................. 34

4.1.5 Parallel- to-Serial: ................................................................................................... 34

4.1.6 Tx CRC Generator: ................................................................................................. 34

4.1.7 Bit Stuff Unit: .......................................................................................................... 35

4.1.8 Overload / Error frame Generator: .......................................................................... 35

4.1.9 Serialized Frame Transmitter: ................................................................................. 35

4.1.10 Message Processor: ................................................................................................. 35

4.1.11 Arbitration Control: ................................................................................................. 35

Page 9: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page viii

4.1.12 Synchronizer: .......................................................................................................... 36

4.1.13 Bit De-stuff Unit: .................................................................................................... 36

4.1.14 Error Checker: ......................................................................................................... 36

4.1.15 Acceptance Checker: ............................................................................................... 36

4.1.16 Receive Buffer: ....................................................................................................... 36

Chapter 5 ....................................................................................................................................... 37

5.1 RTL SIMULATION ....................................................................................................... 38

5.1.1 Parameter register .................................................................................................... 38

5.1.2 Transmission buffer................................................................................................. 39

5.1.3 Data Remote Frame Generator ................................................................................ 39

5.1.4 Parallel to serial converter ....................................................................................... 40

5.1.5 Transmission CRC Generator ................................................................................. 41

5.1.6 Bit stuffing............................................................................................................... 41

5.1.7 Serialized Frame Transmitter .................................................................................. 42

5.1.8 CAN Wire-ending Results ...................................................................................... 42

5.1.9 Comparison of SBS and EEM ................................................................................. 44

5.2 COVERAGE ANALYSIS .............................................................................................. 45

5.2.1 Condition Coverage................................................................................................. 45

5.2.2 Line Coverage ......................................................................................................... 46

5.3 SYNTHESIS REPORT .................................................................................................. 46

Page 10: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page ix

5.3.1 Power Report ........................................................................................................... 47

5.3.2 Timing Report ......................................................................................................... 48

5.3.3 Area Report ............................................................................................................. 51

5.4 GATE LEVEL SIMULATION RESULTS .................................................................... 51

5.5 PLACE AND ROUTE ................................................................................................... 52

5.5.1 Gate Count Report ................................................................................................... 53

5.6 SYMBOL AND SCHEMATIC GENERATION ........................................................... 55

5.7 LAYOUT VERIFICATION ........................................................................................... 57

5.8 INTEGRATION FOR TAPE-OUT ................................................................................ 58

Chapter 6 ....................................................................................................................................... 59

6.1 CONCLUSION .............................................................................................................. 60

Chapter 7 ....................................................................................................................................... 61

7.1 FUTURE WORK ........................................................................................................... 62

Page 11: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page x

List of Figure

Figure 1-1 : Automobile subsystems without CAN ................................................................... - 3 -

Figure 1-2 : Automobile subsystems with CAN ........................................................................ - 4 -

Figure 1-3 : CAN controller interconnection ............................................................................. - 7 -

Figure 2-1 : Distributed CAN network ........................................................................................... 9

Figure 2-2 : ISO/OSI Model.......................................................................................................... 10

Figure 2-3 : CAN Physical Layer .................................................................................................. 11

Figure 2-4 : Layered ISO 11898 Standard Architecture ............................................................... 12

Figure 2-5 : CAN Bus Arbitration ................................................................................................ 13

Figure 2-6 : Data Frame Architecture ........................................................................................... 13

Figure 2-7 : Detailed Data frame Architecture .............................................................................. 14

Figure 2-8 : End of Frame Field .................................................................................................... 15

Figure 2-9 : Inter-frame Space ...................................................................................................... 16

Figure 2-10 : Remote Frame Architecture .................................................................................... 17

Figure 2-11 : Error Frame Architecture ........................................................................................ 17

Figure 2-12 : Overload Frame Architecture .................................................................................. 18

Figure 2-13 : CAN Bit Representation .......................................................................................... 19

Figure 2-14 : CAN Bit encoding (a) Manchester encoding (b) NRZ encoding ............................ 19

Figure 2-15 : Bit Stuffing .............................................................................................................. 20

Figure 2-16 Encoding data byte in EEM method (SB stands for “stuffed bit”) ........................... 22

Figure 2-17 EEM Algorithm Implementation[5] .......................................................................... 23

Figure 3-1 : Traditional ASIC Design Flow [9] ............................................................................ 26

Figure 3-2 : Test-bench and Design under verification................................................................. 28

Figure 3-3 : Design Compiler Flow .............................................................................................. 29

Figure 3-4 : Physical Design Flow [9] .......................................................................................... 31

Figure 4-1 : CAN Architecture...................................................................................................... 33

Figure 5-1 Simulation Results for Parameter register ................................................................... 38

Figure 5-2 Simulation Results for Transmission Buffer ............................................................... 39

Figure 5-3 Simulation Results for Data Remote frame Generation .............................................. 40

Figure 5-4 Simulation Results for Parallel to Serial Converter .................................................... 40

Page 12: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page xi

Figure 5-5 Simulation Results for Transmission CRC Generation ............................................... 41

Figure 5-6 Simulation Results for Bit Stuffing ............................................................................. 41

Figure 5-7 Simulation Results for Serilized Frame Transmitter .................................................. 42

Figure 5-8 Simulation Results for CAN Wire-Anding using EEM .............................................. 42

Figure 5-9 Simulation Results for CAN Wire-Anding using SBS................................................ 43

Figure 5-10 Comparision of SBS with EEM ................................................................................ 44

Figure 5-11 Condition Coverage Analysis .................................................................................... 45

Figure 5-12 Line Coverage Analysis ............................................................................................ 46

Figure 5-13 Synthesis using VCS Design Vision ......................................................................... 47

Figure 5-14 Synthesized Gate level Simulation result .................................................................. 52

Figure 5-15 Place and Route in SoC Encounter ............................................................................ 53

Figure 5-16 CAN Symbol Generated from Gate level Netlist ...................................................... 56

Figure 5-17 CAN Schematic Generated from Gate level Netlist .................................................. 56

Figure 5-18 CAN Layout Generated from GDSII ........................................................................ 57

Figure 5-19 CAN Final Integration with PAD Ring ..................................................................... 58

Figure 7-1 CAN in Real time Application .................................................................................... 62

Page 13: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Submitted by TAPAS RANJAN JENA [210EC2310] Page xii

ABSTRACT

Control area network (CAN) is a two- wired, half duplex, high-speed network system, that is far

superior to conventional serial communication protocol such as RS232, with regards to

functionality and reliability and yet CAN implementations are more cost effective. CAN is a

serial network technology that is widely used in real-time automobile control. It is a multi-master

serial bus that uses broadcast to transmit to all CAN nodes. It is good for short message transfer.

Its data transfer size is limited to 8 bytes with 1 Mbps speed. It provides a significant reduction

in wiring complexity and additionally makes it easy to connect with several devices using a

single bus. CAN provides an effective mechanism for clock synchronization known as “bit-

stuffing”. It is very difficult to predict the precise transmission time of message which leads to an

adverse impact on many time critical applications. To mitigate above problem different “bit-

stuffing” techniques such as XOR masking and Software Bit Stuffing (SBS) are available in the

literature. In this thesis a novel alternative method known as Eight-to-Eleven Modulation (EEM)

technique is used for “bit-stuffing” and a comparison is brought with existing SBS technique and

the superior features of EEM is derived. The proposed technique is validated through FPGA

implementation.

In this thesis, design to tape out is perform for a CAN controller. The Register Transfer Level

(RTL) coding is done by Verilog HDL (Hardware Description Language). Synopsys VCS

simulator is used to simulate the RTL code. Synthesized netlist is created by using Synopsys

Design Vision. Cadence SoC encounter is used for automatic place and route and cadence icfb is

used for final integration of the design with the pad ring. Final GDS II file is created for tape-out.

UMC 180 mixed mode library is used for implementing the system with six metal layers and one

poly layer.

Keywords:

RTL, GDS, Simulation, Test bench, Verilog, CAN, Tape-out, Synthesis, I/O PAD, EEM,

SBS, Bit stuffing.

Page 14: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 1

Overview

1. INTRODUCTION

2. HISTORY

3. NECESSITY OF COMMUNICATION PROTOCOL

LIKE CAN

4. CAN APPLICATIONS

5. CAN-IN-AUTOMATION (CiA)

6. INTERNATIONAL STANDARD ISO 11898

7. MOTIVATION

8. PROBLEM BEING ADDRESSED

9. ORGANIZATION OF THE THESIS

Page 15: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 1 Overview

Submitted by TAPAS RANJAN JENA [210EC2310] Page - 2 -

1.1 INTRODUCTION

Controller Area Network (CAN) is a serial communication network technology that was

originally designed for the automotive industry, especially for European cars, but has become a

popular bus in industrial automation as well as other applications. CAN is a two-wire, high-

speed, half duplex network system, that is far superior to conventional serial technology like

RS232 and TCP/IP. It provides better ease of use than any other serial bus system and operates at

data rates of up to 1 Megabit per second [1].

A CAN system transferred information between the sub-system with the help of a commonly

shared central bus. CAN is a multi-master communication protocol. At any instant of time any

node can be a master and others can be a slave. It follows bus topology, it reduces the wiring of

the system and the damage of one sub-system will not affect the performance of other sub-

systems [2].

CAN networks can be used as an embedded communication system for intelligent device. Some

users, for example in the field of medical engineering used CAN because they have to meet

particular stringent safety requirements. Similar requirements had to be considered by

manufacture of other equipment with very high safety or reliability requirements (e.g. robots,

lifts and transportation systems) [1]-[4] .

1.2 HISTORY

The idea of Controller Area Network (CAN) was developed by Robert Bosch GmbH of

Germany in the early 1980s. The investigation for a suitable field-bus technology for use in

automobiles enables to add further functionality. The main focus was a communication system

between a number of ECUs (electronic control units) in vehicles.

The involvement of several universities in Germany, the vehicle manufacturer like Mercedes-

Benz and the semiconductor manufacturer like Intel, Philips helped to make CAN a triumphant

story. The CAN standard was first introduced in 1986. The first CAN controller chips, the Intel

82526 and the Philips 82C200, were introduced in 1987.

Page 16: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 1 Overview

Submitted by TAPAS RANJAN JENA [210EC2310] Page - 3 -

1.3 NECESSITY OF COMMUNICATION PROTOCOL LIKE CAN

Figure 1-1 : Automobile subsystems without CAN

It is the prime requirement of a system to exchange the data among their sub-systems for

improving the functionality and maintaining the accuracy. The easier way is to connect the sub-

systems individually with point to point wiring as shown in the Figure 1-1. Due to modular

design and increasing the sub-system the complexity of interconnection increased a lot to

maintain the accuracy in functionality. This hampers the reliability, production time and material

cost. To overcome this situation a new protocol like CAN is developed. In this protocol all the

subsystems are connected through each other with the help of a commonly shared serial bus as

shown in the Figure 1-2. This system architecture reduces the system wiring complexity, reduces

the material cost and also increases the reliability of the overall system.

In this protocol only one sub-system can transmit at a time and the others can listen. The sub-

systems have got the access of the bus time slice basis. The first requested subsystem will get the

bus access first. It is good for short message transfer. CAN protocol can transfer up to 8 bytes of

data at a time.

Page 17: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 1 Overview

Submitted by TAPAS RANJAN JENA [210EC2310] Page - 4 -

Figure 1-2 : Automobile subsystems with CAN

1.4 CAN APPLICATIONS

One frequently asked question about CAN is that, where CAN is successfully used. There is no

special place for CAN; its use is universal from any industrial application, maritime, space and

aviation, household applications such as washing machine, dryers, coffee maker and also in

medical application.

The main advantage of a field bus system like CAN is that it reduces the wiring expanses and

also reduces the maintenance. It also increases the performances of a distributed system [13].

CAN is best suitable for serial bus communication.

1.5 CAN-IN-AUTOMATION (CiA)

CAN in Automation (CiA) is the international organization by manufacturer and user. The prime

objectives of the organization are to supports and develop CAN standard and CAN-based higher

layer protocol. CiA representatives actively support international standardization of CAN

protocols and represents the members interests in national and international standardization

committees, such as ISO and IEC. CiA members develop the specifications as CiA standards.

Page 18: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 1 Overview

Submitted by TAPAS RANJAN JENA [210EC2310] Page - 5 -

These specifications include physical layer definitions as well as application layer and device

description [7].

1.6 INTERNATIONAL STANDARD ISO 11898

ISO (International Organization for Standardization) is a worldwide federation. ISO provides

international standards which are decided and enlisted by the technical committees. Each

member of the ISO has the rights to participate in the process of standardization of the

corresponding subject.

The ISO 11898 standard is meant for Road vehicles – Controller area network (CAN). It was

first published in 1993. ISO 11898 consists of the following parts:

• Data link layer and physical signaling

• High speed medium access unit

• Low speed, fault tolerant medium dependent interface

• Time triggered communication

1.7 MOTIVATION

We realize that CAN is an important communication protocol that finds extensive use in

automotive and other industrial sectors. There are a few publications in the literature on ASIC for

CAN protocol. The design details are also not quite available. Therefore, we make an attempt to

come up with IC design with maximum possible details and with proposed EEM. The complete

CAN module is divided into several sub-modules. We develop FSM for each case. Integrate

these sub-modules to work as a single unit that can work as CAN protocol controller.

In this thesis the main objective is to design an ASIC for Control Area Network protocol

controller. Verilog HDL is used to develop the Register Transfer Level (RTL) models for a CAN

controller. The functional simulation of the model is obtained. Reception and transmission of the

CAN controller are verified by taking two and four CAN controller connected together in a

network.

Page 19: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 1 Overview

Submitted by TAPAS RANJAN JENA [210EC2310] Page - 6 -

Coverage analysis is done to describe the degree to which the source code of a program has been

tested and also to measure how well the program is exercised by a test case.

After RTL simulation synthesis is done for the designed model and the dynamic simulation is

performed on the Gate Level Netlist to verify the further functionality of the CAN protocol

controller. The timing constraints specified for the system is verified by using static timing

analysis.

By using the gate level netlist automatic routing is done to obtain the final layout of the systems.

The violations of Design Rule is Checked and finally GDSII (Graphic Data System II) is

extracted from the system layout.

1.8 PROBLEM BEING ADDRESSED

Here the problem is going to discuss about the design and development of an application specific

integrated circuit for a CAN controller. Sensor and actuator are used to interface a CAN

controller with an application. Sensor and actuator both are carrying analog signals. As all the

input to the CAN controller is digital, system needs an ADC (Analog to Digital Converter) to

interface the sensor and actuator. The output of the ADC is fed into a microprocessor to process

the data before giving to the CAN controller.

The un-formatted message from the microprocessor is converted into the protocol specific

formatted data with the help of the CAN controller. CAN transceiver is used to convert the

digital signal from CAN controller to electrical pulses and gives to the CAN bus. The detail

signal flow is shown in the Figure 1-3.

Page 20: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 1 Overview

Submitted by TAPAS RANJAN JENA [210EC2310] Page - 7 -

Figure 1-3 : CAN controller interconnection

1.9 ORGANIZATION OF THE THESIS

The organization of the thesis is described as follows.

Chapter 2 gives the general overview of the standard format Controller Area Network protocol

specification. This includes different frames and their structures.

Chapter 3 discussed the Application Specific Integrated Circuit (ASIC) design flow in brief.

The CAD (Computer Added Design) tools and the library used during tape-out processed also

discussed in brief.

Chapter 4 gives the general overview of the Controller Area Network Architecture.

Chapter 5 shows the different result obtained in different stages of the ASIC design flow.

Chapter 6 brings out the conclusion of the thesis and Chapter 7 define the future work of the

thesis

Page 21: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2

Specification

1. INTRODUCTION

2. ISO/OSI MODEL

3. BUS ARBITRATION

4. CAN MESSAGE FRAME

5. DATA FRAME

6. REMOTE FRAME

7. ERROR FRAME

8. OVERLOAD FRAME

9. BIT REPRESENTATION

10. BIT ENCODING

11. BIT STUFFING

Page 22: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 9

2.1 INTRODUCTION

Different communication protocols are designed based on their application in different field.

Based on uses they are differ from one another as “higher end “ and “lower end” protocols.

Higher end protocols are used for overall factory system information, known as factory bus.

Lower end protocols are used for inter-processor communication, known as field bus [2].

Now day’s automobile industries develop different electronic systems to maintain the

growing demand for more comfort, safety and efficient fuel reduction technology. So the

whole system is divided into several subsystems. Each subsystem is connected with each

other with a dedicated wire line which increases the complexity of the wiring. To overcome

this type of wiring complexity new protocol like Controller Area Network (CAN) protocol

developed. In CAN network all the subsystems are connected through each other by a

commonly shared central bus. CAN bus is consists of two wire serial data bus and the speed

is up to 1MBits/s [6].

An example of CAN network is shown in the Figure 2-1. Each node in the network represents

a CAN controller. Each node is connected with each other by commonly connected CAN bus.

The nodes are exchange data to the processor through their sensors and actuators. The

controller first job is to be formatted the message received from the sensor and give to CAN

bus, the second job is to filter the received message from the CAN bus and give back to the

actuator.

Figure 2-1 : Distributed CAN network

Page 23: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 10

2.2 ISO/OSI MODEL

CAN is an International Standardization Organization (ISO) defined serial communications

bus for the automotive industry to replace the complex wiring with a two-wire bus [4].

Open Systems Interconnection is a standard reference model for how messages should be

sent between any two points in a telecommunications network. Engineers follow OSI

standards to make sure that the products they develop will communicate properly with other

products [3].

In the OSI model, data communications are organized into a hierarchy of seven different

functions. Each function is a separate layer in the model. The top layer relates directly to the

software application or hardware device that seeks to send messages across a network, while

the bottom layer refers to the actual bit traffic.

Layer 7 Application Defines communications partners, type of service and

security

Layer 6 Presentation Converts data from one format to another, such as from a

text file to a popup window display that text

Layer 5 Session Opens, coordinates and ends conversations and exchanges

of data between two applications

Layer 4 Transport Manages error checking and verifies that packets are

delivered

Layer 3 Network Routes and forwards data to the proper destination

Layer 2 Data Link Builds data packets and synchronizes network traffic

Layer 1 Physical Conveys the actual bit stream across the network. Manages

the hardware and the mechanical process for sending and

receiving data

Figure 2-2 : ISO/OSI Model

Many communication systems do not use all seven OSI layers in their system design. The

Controller Area Network system involves the transmission of simple, short messages to

trigger event and it does not need to account for system security, presentation or monitoring

Page 24: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 11

network logins or sessions. Hence only Physical and Data link layers are included in the

ISO/OSI 11898 specification [3].

Figure 2-3 : CAN Physical Layer

Physical layer of CAN manages the connection between the nodes in a network and the

actual transmission of electrical impulses across a connecting media. It translates message

receive from the data link layers into an electronic signal. On the same way in the receiving

end, physical layer converts the electronic signals back into a message format. Thus it

provides standards for bit timing, bit representation and bit synchronization [3].

Data link layer builds messages or packets or data frame to hold data and control information.

Control information helps to determine access to bus, identify frames and detect errors. Part

of the control information is used to avoid conflicts when two messages try to access the

CAN bus at a time, a function is known as Medium Access Control (MAC). The main

function of the MAC in CAN protocol is to determine which message having a higher

priority, and will get the bus access first.

During transmission sometimes messages are corrupted by the external noise. To detect this

situation Control information is also contained some code for the receiving node to determine

whether the message is corrupted during transmission or not [3].

Figure 2-4 shows the different functionality of the CAN protocol in different layer.

Page 25: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 12

Figure 2-4 : Layered ISO 11898 Standard Architecture

2.3 BUS ARBITRATION

Since a serial communication system such as CAN is based on a two-wire connection

between nodes in the network, that is all nodes are sharing the same physical communication

bus, a method of message/frame collision avoidance is compulsory to assure a safe data

transfer and to avoid delays resulting from the necessary restoration of proper bus condition

after the collision.

A collision may occur when two or more nodes in the network are trying to access the bus at

virtually the same time, which may result in unwanted effects, such as bus access delays or

even destruction or damage of message [7].

CAN provide a non-destructive bus arbitration, which means no message gets lost. The

higher priority message will get the bus access first, while low priority message wait until the

bus is free.

Figure 2-5 shows an example of the non-destructive bus arbitration. Node 1 and Node 2

trying to access the bus same time, but the priority of the message transmitted by node 1 is

more than the priority of the message transmitted by node 2. So node 1 got the access of the

bus first and node 2 has to wait till node 1 finished transmission.

Page 26: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 13

Figure 2-5 : CAN Bus Arbitration

2.4 CAN MESSAGE FRAME

A frame is a packet of information that contains a complete message from a transmitter to a

receiver. Control area network systems have four different types of frame.

A standard message frame used to transmit data over the network known as Data Frame.

Remote Frame is used by the receiver to request data from the transmitter. The receiver

sends the Error Frame to re-transmit the last received message. An Overload Frame is

similar to an error frame. A receiver would typically send out an Overload Frame to ask a

transmitter to delay the next message sent [2].

2.5 DATA FRAME

A data frame broadcasts the actual message to the CAN bus. A data frame is uniquely

identified by a unique message ID. A data frame can be received by any number of nodes

based on the application structure, but can transmit by only one node. A data frame has a

fixed format and capable of transmitting variable data length up to 8 bytes. The frame

structure of a data frame is given in the Figure 2-6. A data frame consists of eight different

fields, they are Start of Frame (SoF), Arbitration Field, Control Field, Data Field, CRC Field,

Acknowledgement Field, End of Frame (EoF) and Inter Frame Space (IFS).

Figure 2-6 : Data Frame Architecture

The total frame as shown in Figure 2-7 has variable length between 47 bits to 111bits, based

on the length of the data field, which can be 0 to 8 bytes (i.e. 0 to 64 bits).

Page 27: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 14

2.5.1 Start of Frame (SoF)

Start of Frame (SoF) bit is a dominant bit which represents the start of start of data frame. A

CAN node gets the access of the bus when the bus is ideal. An ideal bus is detected by a

sequence of consecutive 11 recessive bits.

Figure 2-7 : Detailed Data frame Architecture

2.5.2 Arbitration Field

There are two types of arbitration field, one is Standard Format having 12 bit length and the

other is Extended Format having 32 bit length. We are here using standard format arbitration

field. The arbitration field has two components.

• 11 bit Message identifier

• 1 bit RTR (Remote Transmission Request)

The first bit of the message identifier bit is taken as MSB for determining the message id.

This is the unique identification id of a particular message. Lower the message ID more the

priority of the message. RTR field indicates whether the transmitted data frame is a Data

Frame (RTR=0) or Remote Frame (RTR=1). A Data Frame is always having higher priority

than a Remote Frame. A 11 bit identifier allows a total of 211 (2048) different message id [7].

Page 28: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 15

2.5.3 Control Field

The length of the control field is 6 bits long. The 4 LSB bits of the control field is known as

Data Length Code (DLC) which specify the length of the data block. The MSB bit is 0 for

Standard Format and is 1 for the Extended Format message frame.

The Data Length Code (DLC) is usually set to a value between “0” to “8” indicates a data

field contains data of “0” to “8” byte length. Any DLC value greater than “8” will be

considered as “8” byte data length.

2.5.4 Data Field

The size of the data field in both Standard Frame and Extended Frame is 8 bytes.

2.5.5 CRC Field

The Cyclic Recovery Check (CRC) Field consists of the CRC Sequence and a CRC delimiter

bit. CRC Field is 15 bits long, which contain the frame check sequence covering from Start of

Frame (SoF) to the data field. The CRC delimiter bit is always set as recessive.

2.5.6 Acknowledgement Field

The size of the acknowledgement field is 2 bits. This consists of acknowledgement slot (1 bit)

and acknowledgement delimiter (1 bit). The acknowledgement field gives the confirmation

about the successful CRC check by the receiving nodes in the network.

2.5.7 End of Frame Field

Each data or remote frame is terminated by a sequence of 7 consecutive recessive bits.

Figure 2-8 : End of Frame Field

Page 29: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 16

As shown in the Figure 2-8 there are 11 recessive bits at the end of a message frame. These

bits are not subjected to bit stuffing error detection as the bit stuffing applies only between

the Start of Frame bit and the CRC Sequence.

2.5.8 Inter Frame Space (IFS)

IFS define the minimum space between any frame of any type (remote, data, overload, error).

During IFS no frame is node is allowed to transmit any bit. Only overload signaling condition

is allowed. For data frame the size of IFS is 3 bits. There is no IFS between error and

overload frame.

Figure 2-9 : Inter-frame Space

2.6 REMOTE FRAME

A Remote Frame is requested by a receiving node to transmit the desired data from

transmitted node. On the response to the remote frame the transmitter node sends the data

frame. Remote frame and the requested data frame use the same message identifier. Both the

frames are distinguished by the remote transmission request bit of the arbitration field. When

a data frame and a remote frame both having same message id trying to get the access of the

bus same time, the data frame will get the bus access, first since the data frame uses the

dominant RTR bit.

The structure of a Remote Frame is same as Data Frame, but the only difference is that

Remote Frame does not have a data field and it uses high RTR (Remote Transmission

Request) bit. The detailed structure of the Remote frame is shown in the Figure 2-10 [7].

Page 30: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 17

Figure 2-10 : Remote Frame Architecture

2.7 ERROR FRAME

An error frame initiates the termination of a damaged data or remote frame. This is actually

done by violating the CAN standard. According to CAN standard for maintaining the

synchronization there should not be more than 5 consecutive same polarity bit. One extra bit

i.e. Minimum 6 consecutive bits of the same polarity bit initiates the error frame. When the

error frame is detected the transmitter stop transmitting the current frame and start

retransmitting the frame again.

Figure 2-11 : Error Frame Architecture

As shown in the Figure 2-11 the error frame consists of error flag of 6 size bit and error

delimiter of size 8 bits. The error flag is to violate CAN standard by transmitting same

polarity bit. The bits can be dominant or recessive based on this it is called active error flag

(dominant bit) or passive error flag (recessive bit). The error delimiter is represented by a

sequence of 8 recessive bits. An error detecting node, after completing the error flag, will

send the first recessive bit to the bus. The node will continue sending a recessive level until

the bus actually turns recessive.

Page 31: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 18

2.8 OVERLOAD FRAME

An overload frame is a special version of an error frame, but unlike an error frame is does not

cause the retransmission of the previous frame. It contains an overload flag of 6 bits and an

overload delimiter of 8 bits. The overload frame structure is shown in the Figure 2-12.

Figure 2-12 : Overload Frame Architecture

An overload frame is used by a node to request a delay between two data or remote frame.

That means an overload frame can only occur between data or remote frame transmissions.

The overload frame is transmitted by a node that is temporarily overloaded and will not be

able to participate in any CAN bus communication. As a result the transmission of the data or

remote frame by a node in the network will be delayed until the end of the overload frame

[7].

2.9 BIT REPRESENTATION

The physical media used by CAN bus is a differentially driven pair of wires. These two wires

are commonly known as CAN_L and CAN_H. It provides very reliable signal transmission

despite of low signal level and common mode errors. It uses bus topology which is easy to

connect and less affected by the network failures.

There are two bit representations used in the CAN protocol. CAN protocol define logic “0” as

a dominant bus state and logic “1” as a recessive bus state. The bit representation is shown in

the Figure 2-13. Recessive state occurs when both CAN_L and CAN_H are at the same

potential (CAN_L =CAN_H = 2.5V). Dominant state occurs when there is a difference in

potential (CAN_L = 1.5V and CAN_H = 3.5V).

Page 32: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 19

Figure 2-13 : CAN Bit Representation

2.10 BIT ENCODING

There are various ways to encode bits in digital systems. We describe two here, Non-Return

to Zero and Manchester. Both methods have advantages and disadvantages.

Figure 2-14 : CAN Bit encoding (a) Manchester encoding (b) NRZ encoding

The Manchester encoding scheme represents the bits as transitions from ‘0’ to ‘1’ or ‘1’ to

‘0’. Even if a frame has a string of ‘1’s or ‘0’s the transition is always necessary. The

Manchester encoding scheme is very useful in asynchronous communication systems since

there is always a signal transition for bit synchronization. The primary disadvantage of

Manchester encoding is that it requires more bandwidth because each bit must have two time

slots to be encoded.

Non-return to zero (NRZ) encoding does not require signal transitions to represent each bit.

The signal remains ‘0’ or ‘1’ for the entire time slot. If a frame has a string of ‘1’s or ‘0’s, the

signal will remain constant for as many bit times as necessary. The disadvantage of NRZ is

that there is no easy way to tell where each bit starts or ends when there are more than two

‘1’s or ‘0’s in a row. The only way to know where a bit starts or ends is for the receiver to

have a clocking source that is identical to the transmitter so that it can decipher the bit stream.

This is called synchronous communication. However, it is very difficult to keep two clocking

source exactly synchronized for very long at the bit rates used by CAN. To overcome this

CAN uses a technique called bit stuffing.

Page 33: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 20

2.11 BIT STUFFING

Control Area Network protocol standard allows only 5 consecutive bits of same polarity

between Start of Frame and the CRC field of a message frame. Bit stuffing is the process of

adding one opposite polarity bit whenever a consecutive 5 bits of the same polarity are

transmitting. Figure 2-15 shows a simple example of bit stuffing.

Figure 2-15 : Bit Stuffing

The sender node needs to add the “stuff bit” (opposite polarity bit) before transmission and

the receiver eliminate the “stuff bit” to get the original message. The advantage of bit stuffing

is that, it provides additional signal edges for data transfer synchronization after 5 bits.

There are Different bit stuffing technique are present. Few of them are discussed below.

2.11.1 Selective Xor Masking

XOR masking was first proposed by Nolte and colleagues. In this technique transmitted bytes

are XOR-ed with the masking bit “101010…” for removing stuff-bits in particular sets of

data (which tend to have long sequences of 1s and 0s). Again the received bytes are XOR-ed

with the same masking bit to get the original data bytes. This technique reduces CAN

message-length variations (i.e. jitter [11]-[20]) to low levels and also reduces large

computational or memory overheads. These techniques are described in-detail in [21] and

[22].

2.11.2 Software Bit Stuffing (SBS)

In selective XOR masking the levels of message length variation was reduces significantly,

but few conditions remain unsolved like the boundaries of the adjacent bytes are processed

Page 34: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 21

individually. So the continuous 0 or 1 at the end of one frame and the same continuous 0 or 1

at the start of the next frame give a long sequence of 0 or 1. To eliminate this type of

condition “Software Bit Stuffing” (SBS) technique was proposed [20] and was implemented

in [10].

In this technique data frames are checked before transmitting. If a sequence of four

consecutive bits is detected, SBS adds an additional bit of opposite polarity. Here at most five

consecutive bit of same polarity is allowed (one stuff bit and four in coming data bits).

2.11.3 Eight-To-Eleven Modulation (EEM)

In SBS data encoding / decoding are performed at run-time (while the system is operating)

using a function call approach [20]. Due to run time processing the CPU overheads of the

processor are increased.

To achieve the high processor utilization as well as to reduce the effect of bit stuffing a new

X-to-Y modulation approach is used. In X-to-Y modulation approach “X” signifies the

number of original data bits and “Y” signifies the number of encoded data bits. A most

known example of X-to-Y modulation is Eight-to-Fourteen Modulation (EFM) which is used

in compact discs (CDs) [23].

Eight-to-Eleven Modulation (EEM) [5] is another type of X-to-Y modulation where “X”

equals to 8 (the number of bits per byte) and “Y” equals to 11 (the number of encoded data

bits).

As given in [21], the number of stuffed bits necessary to avoid CAN bit-stuffing is found as

follows:

������ � ���� � � = � ������ �� ���� ��������� �� ��� �������� !"#$���� ������ �� ���������%� ���� #&&�'�� !(

(1)

Where the symbol └ ┘ denotes the floor function to make the number of stuffed bit to

integer. In our case we have 8 bits that are subjected to bit-stuffing and maximum 4

consecutive bits are allowed for a bit-stuffing, then the number of stuffed bits required in

each byte is 2 bits.

The worst case “bit-stuffing” for a CAN controller will be five consecutive bits followed by

an opposite polarity bit and so on [21]. In software level to avoid hardware “bit-stuffing”

Page 35: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 22

consecutive bit with same polarity should not be more than four. The worst case condition for

8 bits of data will be four “0” followed by three “1” and one“0” (i.e. 00001110). From the

previous discussed formula the number of required stuff bit will be two. After addition of

these two stuff bit we found that the sequence will be like “0000111100”. Here the bold bits

are the stuffed bits. When two bit pattern of the above type transmitted consecutively, we

found five consecutive same polarity bit at the boundary.

To avoid such boundary condition we need to add another extra stuff bit. After adding the

extra stuff bit the total number of stuff bit will be three for a set of 8 bit data. So the total

number of bit encoded bits will be 11 bits. Figure 2-16 shows the 11 bit encoded format of

the 8 bit input data, where we have one stuff bit in the middle of the input data sequence, one

near most significant bit and one near the least significant bit.

Figure 2-16 Encoding data byte in EEM method (SB stands for “stuffed bit”)

In Figure 2-16 SB are the stuff bit, bit 1 to 8 are the original 8 bit input data. Stuff bits values

are the negation of the previous bit. In this encoding format the worst case data frame will not

exceed 4 consecutive same polarities. For example let the input sequence will be

“11110001”. After encoding the result will be “10111000011” that satisfy the “bit-stuffing”

condition and also solve the boundary condition problem.

However the implementation of this bit stuffing approach is not addressed in the paper [5].

We use this concept for CAN. We verify the designed model in FPGA. We also verify this

structure for 2 node and 4 node structure experimentally.

2.11.4 Implementation of EEM Algorithm

EEM technique can be implemented by Lookup table approach or by Function call approach

[5]. Look up table approach again can be implemented by Explicit EEM table or by Implicit

EEM tables. Function call approach again can be implemented by Algorithmic coding or by

Mathematical coding.

Here we are following algorithmic approach to implement EEM technique. The flow chart of

the coding is presented in the Figure 2-17 and is self-explanatory.

Page 36: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 2 Specification

Submitted by TAPAS RANJAN JENA [210EC2310] Page 23

Logical operators like SHIFT, OR, AND are used to convert the 8 bit raw data to 11 bit

encoded format by adding three stuff bit in proper position. “in_index” indicates the bit order

in the original data byte, while “out_index” indicates the bit order in the EEM code.

Figure 2-Error! Bookmark not defined. EEM Algorithm Implementation[5]

Page 37: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 3

ASIC Design Flow

1. INTRODUCTION

2. DESIGN DESCRIPTION

3. GENERAL DESIGN FLOW

4. SPECIFICATION AND RTL CODING

5. SIMULATION AND VERIFICATION

6. SYNTHESIS

7. FORMAL VERIFICATION

8. STATIC TIMING ANALYSIS

9. PHYSICAL DESIGN

Page 38: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 3 ASIC Design Flow

Submitted by TAPAS RANJAN JENA [210EC2310] Page 25

3.1 INTRODUCTION

Very large scale integration (VLSI) is a technology that can be used for various applications

like analog, digital and mixed signal electronics. Millions of transistors are put together on a

single piece of silicon in designing microprocessors, along with internal memory and

arithmetic units. The current design motive is to reduce the entire system design to a single

chip solution called System on Chip (SoC).

An application-specific integrated circuit (ASIC) is an integrated circuit designed for a

particular use, instead of general-purpose use. Processors, ROM, RAM, etc. are examples of

ASICs [8].

The three major categories of ASIC Technology are :

Full custom

Gate Array-Based

Standard Cell-Based

In our design we are using Standard Cell-Based Technology where the ASIC designer defines

only the placement of the standard cells and their interconnections. Standard cells are the

basic building element of the design which is constructed using a full - custom design. The

design style gives the same performance and flexibility. The advantage of this design is that it

saves time, money, and reduce risk by using a predefined, pre-characterized and

pretested standard-cell library [8].

3.2 DESIGN DESCRIPTION

Semicustom ASIC design Flow mostly follows three domains of design description.

• The behavioral, for describing the functional design.

• The structural, for describing the form of the implementation.

• The physical, for describing the physical description of the design.

Page 39: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 3 ASIC Design Flow

Submitted by TAPAS RANJAN JENA [210EC2310] Page 26

Figure 3-1 : Traditional ASIC Design Flow [9]

There are different possibility representations of a circuit in each description, and thoughtful

of representations are more important in tool design.

Concept + Market Research

Architectural Specs & RTL

Coding

RTL Simulation

Logic Synthesis, Optimization

& Scan Insertion

Formal Verification

(RTL Vs Gates)

Pre-layout STA

Transfer Clock Tree to DC

Formal Verification

(Scan Inserted Netlist Vs OT

Inserted Netlist)

Post Global Route STA

Timing

OK?

Post Global Route STA

Post Global Route STA

Timing

OK?

Timing

OK?

Floor planning, Placement,

CT Insertion & Global

Routing

Tape out

No

No

No

Yes

Yes

Yes

Page 40: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 3 ASIC Design Flow

Submitted by TAPAS RANJAN JENA [210EC2310] Page 27

3.3 GENERAL DESIGN FLOW

A simplified view of design flow is shown in the Figure 3-1. Few steps are briefly explained

as below.

1. It is important to specify the requirements at the beginning of a design. From the

requirements and specification, architecture of the design is decided.

2. The whole module is divided into smaller sub module for easy development. Based on

the architecture of the design RTL coding is done by using Hardware Description

Language (HDL).

3. To verify the functionality of the design, dynamic simulation of the design is done.

4. In this step it needs to decide the technology information that we are going to use and

design environment setting along with environmental attributes.

5. Constraining and synthesizing the design with scan insertion using Design Compiler.

6. Block level static timing analysis is done using Design compiler’s built-in static

timing analysis engine.

7. Formal verification of the design is performed for comparing the RTL coding against

the synthesized netlist using Synopsys Formality.

8. Pre-layout static timing analysis on the full design is done using Prime time.

9. Forward annotation of timing constraints is fed to the layout tool.

10. With Cadence SoC encounter floor planning with timing driven placement of the

cells, clock tree insertion and global routing is done.

11. Transfer of clock tree to the original design (netlist) residing in Design Compiler.

12. Using Design Compiler in-place optimization of the design is performed.

13. Cadence conformal is used for formal verification between the synthesized netlist and

clock tree inserted netlist.

14. Estimated timing parameter is extracted after the global routing of the design.

15. Back annotation of estimated data from the global routing design, to Prime Time.

16. In Prime Time static timing analysis is done by using the estimated timing parameter.

17. Detailed routing of the design is performed.

18. Real time delay is extracted from the detailed routing design.

19. Back annotation of real extracted timing parameter to prime time.

20. Post layout static timing analysis is performed using Prime Time.

21. Functional gate level simulation of the design is done using post layout timing

parameter.

Page 41: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 3 ASIC Design Flow

Submitted by TAPAS RANJAN JENA [210EC2310] Page 28

22. Final GDS-II creation for tapeout after Design rule violation checking [9].

3.4 SPECIFICATION AND RTL CODING

ASIC design begins with the conception of an idea demand by the market. Ideas are then

converted into architectural specifications which define the functionality and partitioning of

the chip into several blocks. The specifications define the relationship between the blocks in

terms of signal timing information. The implementation of these specifications is then

performed. For large design drawing the schematic manually by using the standard cell is not

possible or time taking. Hardware description languages (HDL) were developed to overcome

this problem. Today there are two types of HDLs used, VHDL and Verilog.

There are three levels of abstraction used to represent the design; Behavioral, Register

Transfer Level (RTL) and Structural. The Behavioral level code is at a higher level of

abstraction used primarily for translating the architecture specification to a code that can be

simulated. This type of coding is used to describe the functionality of the design and is

synthesized to form a structural netlist. This netlist comprises of the components from a

target library and their respective connections; very similar to the schematic based approach

[9].

3.5 SIMULATION AND VERIFICATION

The functionality of the design is verified by simulating the RTL code. The simulators are

used to simulate the RTL code and also used to map the design into the gate - level design.

The RTL module used to generate the input sequence for testing a design is known as “Test-

bench”.

Figure 3-2 : Test-bench and Design under verification

Page 42: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 3 ASIC Design Flow

Submitted by TAPAS RANJAN JENA [210EC2310] Page 29

Figure 3-2 shows the test-bench and Design under test/verification (DUT/DUV) module. The

test-bench provides inputs to the design and observes the output. This is totally a closed

system; no input or outputs go in or out from the system. The main objective while designing

the test-bench is that it needs to choose a proper input pattern and it needs to observe that

whether desired output is coming or not. The coverage of the design is totally dependent on

the number of test pattern provides and the quality of test-bench.

3.6 SYNTHESIS

Synthesis is the process of generating the Structural gate-level netlist from the behavioral

RTL code. Synthesis reads the RTL source code, optimizes the design and finally generates

the gate-level netlist. The Synopsys Design compiler is used in this project to synthesize the

RTL code.

Figure 3-3 : Design Compiler Flow

Synthesizing a design is an iterative process and begins with defining timing constraints for

each block of the design. Timing constraints define the relationship of each signal with

respect to the clock input for a particular block. The design constraints are usually defined in

Synopsys Design Constraints (SDC) file. The constraint definition includes clock definition,

Input / Output timing definition and the timing exceptions. In addition to the constraint file it

also needs an environment file which specifies the technology cell libraries and other

Page 43: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 3 ASIC Design Flow

Submitted by TAPAS RANJAN JENA [210EC2310] Page 30

necessary information that Design Compiler uses during synthesis. Design Compiler reads

the RTL code of the design and uses the timing constraints file to synthesize the behavioral

RTL code to the structural gate level netlist. This is shown in the Figure 3-3 [9].

3.7 FORMAL VERIFICATION

Formal verification checks the logical functions of a design by comparing it against the

reference design without any technological consideration. It verifies the structure and

functionality of two designs whether they are logically equivalent of not. It consumes less

amount of the as compared to dynamic simulation.

The use of formal verification in the design flow is to compare the RTL with RTL, RTL with

its gate level netlist, one gate level netlist with another gate level netlist; for verifying the

functionality; whether they are correct or not.

3.8 STATIC TIMING ANALYSIS

Static timing analysis is one of the import steps in the ASIC design process. This analysis

allows the detailed analysis of all possible critical paths of the design. The reports also

contain other debugging information like the capacitive load or fan-out of each net. Synopsys

Prime Time is used for static timing analysis of Controller Area Network controller

implementation. Static timing analysis is performed for both pre and post layout gate-level

netlist. In per layout mode, it uses the wire load models specified in the library to estimate

total delay where as in the post layout mode it uses the actual extracted delay like net

capacitance and interconnect RC delays.

3.9 PHYSICAL DESIGN

The physical design is a process of making the layout of the design from the RTL coding by

considering the specification of power, timing and area. Most of the physical design tool

supports placement, routing and optimization. Figure 3-4 shows the general physical design

flow [9].

Page 44: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 3 ASIC Design Flow

Submitted by TAPAS RANJAN JENA [210EC2310] Page 31

Figure 3-4 : Physical Design Flow [9]

VERIFICATION AND BACK

ANNOTATION

DESIGN FINISHING AND

ITERATIVE CHANGES

POSTROUTING

OPTIMIZATION

ROUTING

CLOCK TREE SYNTHESIS AND

OPTIMIZATION

PLACEMENT AND PLACEMENT

OPTIMIZATION

TIMING SETUP AND ANALYSIS

FLOORPLANNING

LIBRARY SETUP AND DATA

INPUT

Page 45: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 4

CAN Architecture

1. DESIGN DESCRIPTION

Page 46: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 4 CAN Architecture

Submitted by TAPAS RANJAN JENA [210EC2310] Page 33

Figure 4-1 : CAN Architecture

4.1 DESIGN DESCRIPTION

For easy and modularize development, the total functionality of the CAN controller is divided

into different sub-modules or blocks. Functional block diagram of the CAN controller is

shown in the Figure 4-1. Individual functionality of each block is described as follows.

4.1.1 Host CPU:

Host CPU converts the digital data from analog to digital converter to CAN controller input

format data. Generally microprocessor is used to perform the work of host CPU in small

processor application [10].

4.1.2 Parameter Register:

There are three different registers inside the parameter register of CAN controller to store the

basic functional data. The three registers are code parameter, mask parameter and

synchronous jump width. Each of code parameter and mask parameter register is 11 bits, but

the size of synchronous jump width register is 2 bits. Code parameter and mask parameter

values are required to check the validation of the incoming receiving message. Synchronous

jump width value is required to bit synchronization. There is a 8 bit input bus to load the

register with a status signal. To load the register, status signal needs to make high and data is

Page 47: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 4 CAN Architecture

Submitted by TAPAS RANJAN JENA [210EC2310] Page 34

provided through 8 bit data bus. The total size of the register is 24 bits so we need to provide

3 times 8 bit data to load it. First 8 least significant bits of the mask parameter follower by 3

most significant bits; next the 5 least significant bits of code parameter followed by 6 most

significant bit. At last 2 bits synchronous jump width is loaded. A reset signal is used to clear

the value from the register.

4.1.3 Transmitter Buffers:

Transmitter Buffer is used to store the incoming message from the host CPU. The size of the

transmitter buffer is 10 bytes. When the host CPU wants to send some data to CAN

controller, the data are first store the transmitter buffer before changing to proper protocol

format frame. There are 8 bit data bus which is used to load the Transmitter Buffer. One

status signal is used to make high before loading. One busy signal is used by the controller to

notify the status of Transmitter Buffers, whether the buffer is full or not.

4.1.4 Data/Remote Frame Generator:

The function of Data / Remote Frame Generator is to generate the message frame according

to the CAN protocol specification. For generating message frame it takes data from the

Transmitter Buffer. As defined in the CAN protocol, message frame is generated by

appending start bit with message identifier, followed by control field, data field, CRC field,

ACK field and End of frame field. CRC is generated from the data field after converting the

parallel data into serial. The host CPU generally filled the Transmitter Buffer according to the

sequence of different field of message frame.

4.1.5 Parallel- to-Serial:

For calculating the cyclic redundancy checksum of a data, it needs to serialize. The data field

used for making a message frame is parallel, so parallel to serial module is used to convert

the parallel data to serialize. It takes 8 bit input data, make it serialized and give back one bit

in each cycle by shifting one bit at a time. Different status signals are used to notify the status

of beginning and end of parallel to serial conversion.

4.1.6 Tx CRC Generator:

Cyclic redundancy check (CRC) is used in the messaged frame to detect the presence of error

in the message frame during transmission. Before transmitting the message frame, at the

transmitter end Cyclic Redundancy Checksum is calculated and appended to the message

frame. Cyclic Redundancy Checksum is calculated by using a CAN polynomial. The

Page 48: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 4 CAN Architecture

Submitted by TAPAS RANJAN JENA [210EC2310] Page 35

serialized frame has divided with the CAN polynomial repeatedly at last leaves remainder as

the Cyclic Redundancy Checksum.

4.1.7 Bit Stuff Unit:

As CAN sequence used NRZ encoding format, when a long sequence of same polarity bit

transmitted, transmitter and receiver may fail to maintain synchronization among them. To

avoid this condition bit stuffing is done. The main job of this module is to insert an opposite

polarity stuff bit when a sequence of consecutive 5 bits of same polarity is transmitted. Bit

stuffing is done only for data and remote frame. Due to the addition of stuff bit there is

always a variation of data length in case of data and remote frame. Bit stuffing is done to start

of frame, message identifier, control field, data field and CRC sequence only. Bit stuffing is

not applied to CRC Delimiter, Acknowledgement field, end of frame field and intermission

field.

4.1.8 Overload / Error frame Generator:

Overload / Error frame Generator generates the overload frame when it detects the overload /

error conditions. The overload condition arises when both the received buffers are full and

there is no space to keep the incoming data. To indicate this situation receiver generates an

overload frame. Overload frame signifies the delaying of transmission in the bus. Similarly

error frame is generated when an error condition is arises.

4.1.9 Serialized Frame Transmitter:

Serialized transmitter is the last module before data transmit into the CAN bus. Based on the

prevailing condition, this unit transmits the data/ remote frame or the error/ overload frame or

a dominant bit during the acknowledgement slot.

4.1.10 Message Processor:

This unit provides all the control and the status signal to the various blocks. This unit is also

routes the different signals generated in various blocks to the necessary target blocks.

4.1.11 Arbitration Control:

Arbitration status of the node is indicated by Arbitration Control. There is a status signal in

Arbitration control to indicate the arbitration status. When the status signal high indicates that

the node is a transmitter and status low indicates the receiver node.

Page 49: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 4 CAN Architecture

Submitted by TAPAS RANJAN JENA [210EC2310] Page 36

4.1.12 Synchronizer:

Synchronizer is responsible for maintaining the synchronization of the input received data

stream from the can bus by configuring the timing parameter. For calculating the timing

parameter it takes the value of Synchronous jump width (SJW) and calculated the smallest

time quanta.

4.1.13 Bit De-stuff Unit:

This unit performs the bit de-stuffing operation for the incoming received message frame. It

eliminates the extra added stuffed bit from the received message frame to get the original

message frame. Along with de-stuffing operation this unit also extracts some necessary

information from the received data frame for checking the correctness of the received data

frame.

4.1.14 Error Checker:

This unit compares the received CRC Value with the calculates one and notify if any

mismatch found. Bit stuff error and acknowledgement error in the receiving data also

observed by this module and raise an error condition when required.

4.1.15 Acceptance Checker:

The main job of this module is to validate the incoming message by verifying message ID. As

we know CAN uses broadcast communication. Whenever any node transmits any data

through CAN bus all other nodes can able to receive it. But the actual receiving node can able

to filter the message by its receiving message ID. The code parameter and the mask

parameter are used to filter the received message along with the incoming message ID. One

status signal is used to define the Acceptance status of the incoming message, that is whether

the message is relevant to a particular node or not.

4.1.16 Receive Buffer:

These are two 10 byte buffer is used to store the received data from the CAN bus. They are

used alternatively to store the receiving data. This facilitates the Host CPU to process some

data when another message is being received by the controller. There are status signals to

indicate the state of the buffer whether it is full or empty [10].

Page 50: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5

Results and Analysis

1. RTL SIMULATION

2. COVERAGE ANALYSIS

3. SYNTHESIS REPORT

4. GATE LEVEL SIMULATION RESULTS

5. PLACE AND ROUTE

6. SYMBOL AND SCHEMATIC GENERATION

7. LAYOUT VERIFICATION

8. INTEGRATION FOR TAPE-OUT

Page 51: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 38

5.1 RTL SIMULATION

It is important to verify the functionality of the individual sub-module before integrating to

make them a complete system. The individual sub - module is verified by giving different test

cases or designing the test bench for them. In the below section few modules and their

simulation results are discussed. After verifying the individual module complete system is

designed by integrating them and verified by designing a test bench for it.

5.1.1 Parameter register

Figure 5-1 Simulation Results for Parameter register

Figure 5-1 shows the simulation result for parameter register. Parameter register takes the

input through 8 bit data input port. The total size of the parameter register is 3 bytes or 24 bits

which consist of 11 bit mask parameter, 11 bit code parameter and 2 bit synchronous jump

width (sjw) register. For loading the data, param _ld signal needs to make high and it takes 3

consecutive clock cycles to complete the loading starting from mask parameter than code

parameter at last sjw.

Page 52: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 39

5.1.2 Transmission buffer

Figure 5-2 Simulation Results for Transmission Buffer

Figure 5-2 shows the simulation results for transmission buffer. To load the transmission

buffer tx_buff_ld signal needs to make high. The total size of the transmission buffer is 10

bytes. As it takes input through 8 bits input data ports so it needs maximum 10 consecutive

clock cycles to load completely. After loading is complete frame_gen_intl signal is high for a

moment to initialize the next process and tx_buff_busy goes high to indicate that

transmission buffer is full.

5.1.3 Data Remote Frame Generator

Figure 5-3 shows the simulation result for Data remote frame generation. This module takes

the input data from transmission and is initialized by the frame_gen_intl signal of

transmission. Parallel data bytes are converted into 83 bit serial data by parallel to serial

converter which is indicated by par_ser_data. The CRC value is calculated from the CRC

generator from the serialized data. Final data or remote frame is generated after appending

the CRC value and is fed to the bit stuff unit as de_rm_frm signal.

Page 53: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 40

Figure 5-3 Simulation Results for Data Remote frame Generation

5.1.4 Parallel to serial converter

Figure 5-4 Simulation Results for Parallel to Serial Converter

Figure 5-4 shows the parallel to serial converter simulation results. Par_ser_intl signal send

by data remote frame generator block initializes the serialization block. Parallel data are

given as input through par_ser_data and the serialized data is coming out through

tx_serial_out signal

Page 54: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 41

.

5.1.5 Transmission CRC Generator

Figure 5-5 Simulation Results for Transmission CRC Generation

Figure 5-5 shows the CRC Generation simulation results. Serialized data are given as input to

this module. After CRC calculation output is coming out through crc_frm port.

5.1.6 Bit stuffing

Figure 5-6 Simulation Results for Bit Stuffing

Figure 5-6 shows the bit stuffing simulation results. The input to the module is taken from

data remote frame generator block through dt_rm_frm and is initialized by bit_stf_intl signal.

This module checks the bit stuffing condition and adds the stuff bit when required. Final

output is coming out through dt_rm_out port.

Page 55: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 42

5.1.7 Serialized Frame Transmitter

Figure 5-7 Simulation Results for Serilized Frame Transmitter

Figure 5-7 shows simulation results for serialized frame transmitter. The input to the module

is taken from bit stuff module and error overload frame generator module. Based on the status

signal it decides whether it needs to transmit data remote frame or error overload frame.

When act_err_frm_tx or psv_err_frm_tx or ovld_frm_tx is high error or overload frame is

transmitted. When dt_rm_frm_tx signal is high data or remote frame is transmitted. The

arbitration status is indicated by arbtr_sts signal. When arbtr_sts signal is high, the node is

acting as transmitter; but when the status is low, it indicates the node losses arbitration and

act as receiver.

5.1.8 CAN Wire-ending Results

Figure 5-8 Simulation Results for CAN Wire-Anding using EEM

Page 56: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 43

Figure 5-9 Simulation Results for CAN Wire-Anding using SBS

Figure 5-8 and Figure 5-9 Shows the RTL simulation results for CAN wire-anding structure.

Figure 5-9 shows the result where software bit stuffing technique is used and Figure 5-8

shows the results where Eight to Eleven modulation technique. Can_bus_out_0, 1, 2, 3 are

indicated the output of the four can connected through the CAN bus. All nodes start

transmitting the message frame same time but the node sending higher priority message

frame will get the bus access first. Here node 2 is in an ideal state. Node 1 sends a message

frame having less priority as compared to other so it stops transmitting first. Node 0 and

Node 3 both are sending the message frame having same message id but node 0 is a data

frame and node 3 is a remote frame. So node 0 get the access of the bus as the data frame has

a higher priority as compared to the remote frame.

Page 57: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 44

5.1.9 Comparison of SBS and EEM

Bit-Stuffing Technique SBS EEM

No. of Slices 184 191

No. of Slice Flip Flops 139 146

No. of 4 input LUTs 359 374

No. of Bonded IOBs 122 122

Max. Frequency 223.330MHz 237.225MHz

Figure 5-10 Comparision of SBS with EEM

From the Figure 5-10, it is observed that by using EEM technique Frequency

of operation increases due to reducing the jitter. The logic utilization of this

technique is little more as compared to SBS technique.

Page 58: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 45

5.2 COVERAGE ANALYSIS

Coverage analysis is an important step in the VLSI design flow. Code coverage analysis is

one of the coverage analysis which is used to test the quality of the test bench for a particular

design. Code coverage is applied to the design under test to check how thoroughly it is tested

by the test bench.

5.2.1 Condition Coverage

Figure 5-11 Condition Coverage Analysis

There are different types of tools are available in the market for coverage analysis. Verilog

Compiled Simulator (VCS) coverage analysis tool is used here for code coverage analysis.

Figure 5-11 shows the conditional analysis report. Figure 5-12 shows the line coverage

Page 59: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 46

report. When the coverage report percentage is above 80 it is indicated by the green color,

when the coverage report percentage is between 20 to 80 it is indicated with yellow color and

any coverage percentage below 20 is indicated by red color.

5.2.2 Line Coverage

Figure 5-12 Line Coverage Analysis

5.3 SYNTHESIS REPORT

Synopsys Design Vision is used for performing the synthesis of the design. Standard cell

library and symbol library are taken from Faraday 180 libraries. In design vision first the

standard cell and symbol library setup is done. Secondly the design that's going to

synthesized is given as input; along with this the design constraint of the design. For

extracting synthesized netlist the loaded design needs to compile. After successful

compilation gate level synthesized netlist is saved. The synthesized netlist contain the

Page 60: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 47

standard cell which is given in input as a standard cell library. Figure 5-13 shows the design

symbol generated after importing the design into Design vision. Different reports like area

report, power report and timing report are generated from the Design Vision after successful

compilation.

DESIGN VISION

Figure 5-13 Synthesis using VCS Design Vision

5.3.1 Power Report

****************************************

Report : power -analysis_effort low

Design : can

Version: B-2008.09

Date : Fri May 25 12:17:13 2012

****************************************

Library(s) Used: fsa0m_a_generic_core_tt1p8v25c

Page 61: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 48

Operating Conditions: TCCOM

Library: fsa0m_a_generic_core_tt1p8v25c

Global Operating Voltage = 1.8

Power-specific unit information :

Voltage Units = 1V

Capacitance Units = 1.000000pf

Time Units = 1ns

Dynamic Power Units = 1mW (derived from V,C,T units)

Leakage Power Units = 1pW

Cell Internal Power = 60.2757 uW (62%)

Net Switching Power = 37.1613 uW (38%)

---------

Total Dynamic Power = 97.4370 uW (100%)

Cell Leakage Power = 528.8107 nW

5.3.2 Timing Report

****************************************

Report : timing

-path full

-delay max

-max_paths 1

-sort_by group

Design : can

Page 62: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 49

Version: B-2008.09

Date : Fri May 25 12:24:20 2012

****************************************

Operating Conditions: TCCOM Library:

fsa0m_a_generic_core_tt1p8v25c

Wire Load Model Mode: enclosed

Startpoint: can_bus_in (input port clocked by osc_clk)

Endpoint: synchro/ph_seg1_cnt_reg[2]

(rising edge-triggered flip-flop clocked by osc_clk)

Path Group: osc_clk

Path Type: max

Des/Clust/Port Wire Load Model Library

------------------------------------------------

can enG30K fsa0m_a_generic_core_tt1p8v25c

synchronizer enG5K fsa0m_a_generic_core_tt1p8v25c

Point Incr Path

------------------------------------------------------

clock osc_clk (rise edge) 0.00 0.00

clock network delay (ideal) 3.00 3.00

input external delay 50.00 53.00 f

can_bus_in (in) 0.00 53.00 f

synchro/can_bus_in (synchronizer) 0.00 53.00 f

synchro/U39/O (XOR2HS) 0.09 53.09 f

Page 63: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 50

synchro/U57/O (AO12) 0.21 53.30 f

synchro/U22/O (MOAI1S) 0.18 53.48 f

synchro/U42/O (AOI22S) 0.17 53.64 r

synchro/U40/O (MOAI1) 0.11 53.75 f

synchro/U14/O (NR3) 0.24 54.00 r

synchro/U8/O (INV1S) 0.12 54.11 f

synchro/U58/O (NR2) 0.16 54.28 r

synchro/U32/O (AO12) 0.14 54.42 r

synchro/U54/O (MOAI1S) 0.16 54.58 r

synchro/ph_seg1_cnt_reg[2]/D(QDFFRBN)0.00 54.58 r

data arrival time 54.58

clock osc_clk (rise edge) 125.00 125.00

clock network delay (ideal) 3.00 128.00

clock uncertainty -0.50 127.50

synchro/ph_seg1_cnt_reg[2]/CK(QDFFRBN)0.00 127.50 r

library setup time -0.11 127.39

data required time 127.39

------------------------------------------------------

data required time 127.39

data arrival time -54.58

------------------------------------------------------

slack (MET) 72.80

Page 64: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 51

5.3.3 Area Report

****************************************

Report : area

Design : can

Version: B-2008.09

Date : Fri May 25 12:15:05 2012

****************************************

Library(s) Used: fsa0m_a_generic_core_tt1p8v25c

Number of ports: 20

Number of nets: 531

Number of cells: 31

Number of references: 24

Combinational area: 77982.508525

Non-combinational area: 66505.118927

Total cell area: 144487.627452

……………

5.4 GATE LEVEL SIMULATION RESULTS

After the gate level synthesized netlist is created; the functional verification is done by

simulating the synthesized netlist. Both the RTL code for the design and the synthesized

netlist of the design tested with same test bench. On comparing the simulation result; it shows

whether the gate level synthesized netlist created properly or not. While simulating the gate

level synthesized netlist standard cell library is given to the simulator to define the standard

Page 65: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 52

cell. Previously Figure 5-9 shows the RTL coding simulation result; Figure 5-14 shows the

gate level simulation result.

Figure 5-14 Synthesized Gate level Simulation result

5.5 PLACE AND ROUTE

Cadence SoC encounter is used for place and route of the design. For importing the design

into Cadence SoC encounter, standard lib (library), lef (Library Exchange Format) and

synthesized netlist of the design is given as basic input. Input output (.io) file is used to

defining the orientation of the input output and SDC (synopsys design constraint) file is used

for defining the constraint of the design. Faraday 180 standard cell library file is used here for

place and route the design. Figure 5-15 shows the detailed layout of the design after place and

route.

Page 66: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 53

Figure 5-15 Place and Route in SoC Encounter

All violation like connectivity error, drc error, design error are checked before generating the

GDS II file from the layout.

5.5.1 Gate Count Report

The gate count report is generated from Cadence SoC encounter which is given below.

Page 67: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 54

************************* Gate Count Report ******************************

Gate area 9.3744 um^2

Level 0 Module can Gates=13732 Cells=4944

Area=128732.4 um^2

Level 1 Module reg_file Gates=363 Cells=96

Area=3402.9 um^2

Level 1 Module tx_buffer Gates=939 Cells=262

Area=8802.6 um^2

Level 1 Module data_remote_frm Gates=2004 Cells=701

Area=18792.5 um^2

Level 1 Module parser Gates=928 Cells=237

Area=8702.6 um^2

Level 1 Module tx_crc Gates=150 Cells=51

Area=1412.4 um^2

Level 1 Module bt_stf Gates=1881 Cells=610

Area=17639.5 um^2

Level 2 Module bt_stf/eq_108 Gates=367 Cells=145

Area=3446.7 um^2

Level 1 Module msg_prsr Gates=288 Cells=127

Area=2703.0 um^2

Level 1 Module ovld_err Gates=897 Cells=365

Area=8415.1 um^2

Level 1 Module synchro Gates=286 Cells=109

Area=2681.1 um^2

Level 1 Module destuff Gates=3135 Cells=1322

Area=29391.9 um^2

Page 68: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 55

Level 2 Module destuff/srl_646 Gates=375 Cells=264

Area=3521.6 um^2

Level 2 Module destuff/sll_642 Gates=442 Cells=249

Area=4149.7 um^2

Level 1 Module rx_crc Gates=152 Cells=52

Area=1431.2 um^2

Level 1 Module frm_error Gates=208 Cells=116

Area=1949.9 um^2

Level 1 Module rx_buffer Gates=1933 Cells=683

Area=18127.0 um^2

Level 1 Module Serial_out Gates=239 Cells=71

Area=2240.5 um^2

########################################################

From the above report total cell area is 128732.4 µm2

From umc 180 Standard cell libraries Area of ND2 (Nand Gate) is 9.3744 µm2

Total number of gate count is (128732.4 / 9.3744) = 13732.334

From the above report total number of gate count is 13732

Total number of transistor count = 4* total number of gate count ≈55k

5.6 SYMBOL AND SCHEMATIC GENERATION

After automatic routing in Cadence SoC encounter still some error exists; to fix the error, the

design needs to import into icfb for manually fixing the error.

Synthesized netlist is imported into the Cadence icfb for generating the symbol and schematic

for the design. While generating the symbol and schematic for the design, standard cell

library is given as a standard reference to icfb. After schematic and symbol generation the

Page 69: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 56

detailed structure of the design can be visible up to gate level hierarchy. Figure 5-16 shows

the symbol and Figure 5-17 shows the schematic of the design.

Figure 5-16 CAN Symbol Generated from Gate level Netlist

Figure 5-17 CAN Schematic Generated from Gate level Netlist

Page 70: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 57

5.7 LAYOUT VERIFICATION

Figure 5-18 CAN Layout Generated from GDSII

Figure 5-18 shows the Layout of the design after importing into icfb. GDS file which is

generating from SoC encounter is used for importing the design into icfb. While exporting

from SoC encounter and importing into icfb proper map file (contain layer map information)

is required to choose.

Page 71: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 5 Results and Analysis

Submitted by TAPAS RANJAN JENA [210EC2310] Page 58

5.8 INTEGRATION FOR TAPE-OUT

Figure 5-19 CAN Final Integration with PAD Ring

Pad ring is designed by taking input output pin, power (vdd and gnd) pin, filler cell and

corner cell. For mini ASIC the size of the design is 1525 µm *1525 µm, the number of pin

count is 48. The minimum pad to pad distance is 90µm. The design is placed inside the ring

and routed with the corresponding pin. After final integration DRC is checked and GDS file

is created for final tape-out. Figure 5-19 shows the final integration of the design.

Page 72: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 6

Conclusion

1. CONCLUSION

Page 73: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 6 Conclusion

Submitted by TAPAS RANJAN JENA [210EC2310] Page 60

6.1 CONCLUSION

Controller Area Network (CAN) is a multi master broad cast serial communication bus

widely used in the real time automobile system. CAN network follow bus topology, due to

which on the damage of one functional block will not affect the whole network. For

maintaining the synchronization among the node in a network bit stuffing technique in CAN

plays an important role. A noble bit stuffing technique; Eight to Eleven Modulation (EEM) is

used in the place of old Software Bit Stuffing (SBS) technique for reducing the jitter due to

variable message length variation. By using Xilinx ISE tool logic utilization and frequency of

operation of both the module is verified and desired results are obtained.

CAN controller is designed for tape-out by using UMC 180 libraries with six metal layers

and 1 poly layer. RTL code for a CAN controller is designed and the behavioral simulation

result is verified by using Synopsys VCS simulator. Synthesized netlist is generated by using

Synopsys design vision by using Faraday 180 Standard cell library. For automatic place and

route Cadence Soc encounter is used. Pad ring is designed in Cadence icfb and integrated

with the module. After verifying the DRC (Design Rule Check) violation GDS II file is

created from the final integrated module for tape-out.

Page 74: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 7

Future work

1. FUTURE WORK

Page 75: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

Chapter 7 Future Work

Submitted by TAPAS RANJAN JENA [210EC2310] Page 62

7.1 FUTURE WORK

• Set up an environment where different cases can be generated for testing the chip after

fabrication.

• Designing the system where it can be used.

Figure 7-1 shows the model how it can be used in real-time.

Figure 7-1 CAN in Real time Application

Page 76: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

References

Submitted by TAPAS RANJAN JENA [210EC2310] Page 63

REFERENCES

[1] CAN Specification Version 2.0, Robert Bosch GmbH, Stuttgart, Germany, 1991.

[2] Wolfhard Lawrenz, CAN System Engineering: From Theory to Practical

Applications, Springer-Verlag, 1997, ISBN 0–387–94939-9.

[3] Daniel Mannisto, Mark Dawson, An Overview of Controller Area Network (CAN)

Technology, mBus, 2003.

[4] Steve Corrigan, Introduction to the Controller Area Network (CAN) – Texas

Instruments Application Report, SLOA101, 2002.

[5] Mouaaz Nahas, Applying EEM to reduce message length variations in distributed

embedded system using the CAN protocol, 2011.

[6] Peter B., An Introduction to CAN, I+ME ACTIA GmbH, ISO 7498, 1998.

[7] W. Voss, A Comprehensible Guide to CAN, Copperhill Media Corporation

[8] John Smith, Application Specific Integrated Circuit, LPE Pearson Education.

[9] Himanshu Bhatnagar, Advanced ASIC chip using Synopsys, Kluwer Academic

Publishers.

[10] Sreeram Krishnamoorthy, “Design an ASIC Chip for a Controlller Area Network

(CAN) Protocol Controller”.

[11] M. Short, and M.J. Pont, “Fault-Tolerant Time-Triggered Communication Using

CAN”, IEEE Transactions on Industrial Informatics, Vol. 3, No. 2, 2007, pp. 13-142.

[12] K.W. Tindell, A. Burns, and A.J. Wellings, “Calculating Controller Area Network

(CAN) Message Response Times”, Control Engineering Practice, Vol. 3, No. 8, 1995,

pp. 1163-1169.

[13] Navet, N. and Song, Y.Q. (1998) “Design of reliable real time applications distributed

over CAN (controller area network)”,Proceedings of INCOM’98, IFAC Symposium on

Information Control in Manufacturing, Metz 22–24 June, 1998, pp. 391-396.

[14] R. Rudiger, “Evaluating the temporal behaviour of CAN based systems by means of a

cost functional”, Proceedings of the Fifth International CAN Conference, San Jose, CA,

USA, November, 1998, pp. 10.09-10.26.

Page 77: CONTROLLER AREA NETWORK PROTOCOL; DESIGN …ethesis.nitrkl.ac.in/4057/1/Final_Thesis_Tapas.pdf · Cadence SoC encounter is used for automatic place and route and cadence icfb is used

References

Submitted by TAPAS RANJAN JENA [210EC2310] Page 64

[15] A. Stothert, and I. MacLeod, “Effect of Timing Jitter on Distributed Computer

Control System Performance”. Proceedings of DCCS’98 –15th IFAC Workshop on

Distributed Computer Control Systems, September 1998.

[16] P. Verissimo, and L. Rodrigues, “A posteriori Agreement for Fault-Tolerant Clock

Synchronization on Broadcast Networks”, the 22ndInternational Symposium on Fault-

Tolerant Computing, Boston, USA,July, 1992.

[17] L. Rodrigues, M. Guimarães, and J. Rufino, “Fault-Tolerant Clock Synchronization in

CAN”, Proceedings of the 19th IEEE Real-Time Systems Symposium, Madrid, Spain,

December 2-4, 1998.

[18] J. Barreiros, E. Costa, J. Fonseca, and F. Coutinho, “Jitter reduction in a real-time

message transmission system using genetic algorithms”, Proceedings of the CEC 2000

– Conference of Evolutionary Computation, USA, July 2000.

[19] M. Nahas, and M.J. Pont, “Using XOR operations to reduce variations in the

transmission time of CAN messages: A pilot study”. In: Koelmans, A., Bystrov, A.,

Pont, M.J., Ong, R. and Brown, A. (Eds.),Proceedings of the Second UK Embedded

Forum, Birmingham, UK, October 2005, pp. 4-17. Published by University of

Newcastle uponTyne.

[20] M. Nahas, M. J. Pont, and M. Short, “Reducing message-length variations in

resource-constrained embedded systems implemented using the CAN protocol”, Journal

of Systems Architecture, Vol. 55, No.5-6, 2009, pp. 344-354.

[21] T. Nolte, H. Hansson, C. Norström, and S. Punnekkat, “Using Bit stuffing

Distributions in CAN Analysis”, IEEE/IEE Real-Time Embedded Systems Workshop

(Satellite of the IEEE Real-Time Systems Symposium) London, 2001.

[22] T. Nolte, H. Hansson. and C. Norström, “Minimizing CAN response time jitter by

message manipulation”, IEEE Real Time Technology and Applications Symposium

2002, pp. 197-206.

[23] J. Watkinson, Introduction to Digital Audio, Focal Press, 2002.