Skip to content

shahzeelahmed/TMR-verilog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Triple Modular Redundancy (TMR) in Verilog

This project demonstrates the implementation of Triple Modular Redundancy (TMR) using Verilog HDL, with two primary components:

  1. Master Slave communication using the SPI protocol
  2. Fault tolerant logic design via majority gate based TMR

Project Functionality

Component Description
SPI Communication Implements synchronous master slave data transfer using the SPI protocol
TMR Logic Introduces fault tolerant logic replication with a majority voter mechanism
Modular Verilog Each subsystem is implemented as an isolated Verilog module
Testbench Verified Includes testbenches to simulate and verify functionality

Master-Slave Communication via SPI

Serial Peripheral Interface (SPI) is a full-duplex synchronous protocol often used in embedded systems for short distance communication.

SPI Line Description

Signal Direction Description
MISO Slave → Master Transfers data from slave to master
MOSI Master → Slave Transfers data from master to slave
SCLK Master → Slave Clock generated by master to sync data
SS Master → Slave Active low signal to select slave devices

SPI Role Definitions

Role Responsibility
Master Initiates and controls communication and provides clock and chip select
Slave Responds to master’s commands and transmits or receives data accordingly

This implementation includes Verilog modules for both master and slave, handling bit-level data exchange over the SPI bus.


Triple Modular Redundancy (TMR)

TMR is a hardware redundancy strategy where logic is triplicated and a majority voter is used to determine the final output. It is commonly used in critical systems to mitigate faults due to single event upsets (SEU) , hardware errors, or environmental noise.

Majority Voter Logic Table

Input A Input B Input C Voter Output
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Only one module failure (bit-flip or logic error) will not affect the final output, ensuring continued correct operation.


Use Cases

Domain Application
Aerospace Fault tolerant avionics and control systems
Medical Devices Reliable life supporting equipment
Industrial Control Safety critical automation systems
Embedded Systems Secure data processing units

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published