Implemented a CAN protocol based mini system in SystemC with the following SystemC models
* CAN Master (Transmitter),
* a CAN Bus and * CAN device/slave (Receiver).
The mini system consisted of 2 Masters, BUS, and 2 Slaves.
* CAN Masters access the BUS when it is IDLE i.e. there are 7 consecutive cycles with RECESSIVE value on the BUS.
* Data is transmitted serially (and synchronously) in Frame format - There are different frame formats like DATA frame, REMOTE frame, ERROR frame, OVERLOAD frame, etc.
* The BUS is implemented as a wired-AND model with multiple Masters and multiple slaves connectivity.
* All slaves/receivers get data from BUS as broadcast data. All slaves use filtering based on IDENTIFIER in the frame to accept the received data and forward it to the transport layer.
* Verified the system for simultaneous transfers from both Masters (arbitration), REMOTE frame to request DATA frame with the same identifier and ERROR frame.
* Waveform was traced in VCD as well as log-based verification was done to trace transactions.
22 Aug 2019
Trusted by 50200+ Generalists. Try it now, free to use
Start making more money