Routing is the process of moving a packet of data from source to destination and enables messages to pass from one computer to another and eventually reach the target machine. A router is a networking device that forwards data packets between computer networks. It is connected to two or more data lines from different networks.
In this project, the proposed design of the router includes components like FIFO, register, synchronizer, FSM and input and output signals between them. The register implements 4 internal registers in order to hold a header byte, FIFO full state byte, internal parity and packet parity byte. The synchronizer provides synchronization between router FSM and router FIFO modules. It provides faithful communication between the single input port and three output ports.
This router has eight stages:
Next ==> STATE_LOAD_FIRST_DATA (Sig_Packet_Valid = 1, Sig_Fifo_Empty = 1)
Next ==> STATE_WAIT_TILL_EMPTY (Sig_Packet_Valid = 1, Sig_Fifo_Empty = 0)
Next ==> STATE_WAIT_TILL_EMPTY (Sig_Fifo_Empty = 1)
Next ==> STATE_LOAD_FIRST_DATA (Sig_Fifo_Empty = 0)
Next ==> STATE_LOAD_DATA
Next ==> STATE_LOAD_PARITY (Sig_Packet_Valid = 0, Sig_Fifo_Full = 0)
Next ==> STATE_FIFO_FULL (Sig_Fifo_Full = 1)
Next ==> STATE_LOAD_DATA
Next ==> STATE_FIFO_FULL (Sig_Fifo_Full = 1)
Next ==> STATE_CHECK_PARITY_ERROR
Next ==> STATE_FIFO_FULL (Sig_Fifo_Full = 1)
Next ==> STATE_LOAD_AFTER_FULL (Sig_Fifo_Full = 0)
Next ==> STATE_LOAD_DATA (Sig_Parity_Done = 0, Sig_Low_Packet_Valid = 0)
Next ==> STATE_LOAD_PARITY (Sig_Parity_Done = 0, Sig_Low_Packet_Valid = 1)
Next ==> STATE_FIFO_FULL (Sig_Fifo_Full = 1)
Next ==> STATE_DECODE_ADDRESS (Sig_Fifo_Full = 0)
This project needs Icarus-Verilog and a VCD viewer.
$ brew install icarus-verilog
$ make simulate
will:$ make display
will:🔍Generate details your statistics of Github data information when searching
A pipelined implementation of the MIPS processor featuring hazard detection as well as forwarding
A RESTful Full-stack Typescript boilerplate with MongoDB, Express framework and ReactJS library (MERN stack with Typescript)
PhpRouter is a powerful, minimal, and very fast HTTP URL router for PHP projects
Vite starter template for an Opinionated simple, scalable, and powerful architecture for building production-ready React applications.
A lightweight yet powerful HTTP router for the Go programming language
ARM Processor, Computer Architecture laboratory, University of Tehran