Skip to content

pindjouf/uart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UART

A Universal Asynchronous Receiver/Transmitter (UART) with a configurable baud rate, implemented in Verilog. While functional, please note that I will revisit and refactor this project with more sensible and clean code as I continue improving my Verilog skills.

🎯 Project Goals

Echo "Hello, World!" in bytes, as per Wikipedia:

echo is the local display of data, either initially as it is locally sourced and sent, or finally as a copy of it is received back from a remote destination. Local echo is where the local sending equipment displays the outgoing sent data. Remote echo is where the display is a return copy of data as received remotely.

Character ASCII (Hex) ASCII (Binary)
H 0x48 01001000
e 0x65 01100101
l 0x6C 01101100
l 0x6C 01101100
o 0x6F 01101111
, 0x2C 00101100
(space) 0x20 00100000
W 0x57 01010111
o 0x6F 01101111
r 0x72 01110010
l 0x6C 01101100
d 0x64 01100100
! 0x21 00100001

πŸ“‚ Project Structure

Here's what the project layout looks like:

.
β”œβ”€β”€ README.md                # This file!
β”œβ”€β”€ rtl                      # RTL modules (core logic)
β”‚   β”œβ”€β”€ baudUnit.v           # Baud Rate Generator
β”‚   β”œβ”€β”€ transmitter.v        # UART transmitter
β”‚   β”œβ”€β”€ receiver.v           # UART receiver
β”‚   └── uart.v               # UART top-module
β”œβ”€β”€ sim                      # Simulation outputs
β”‚   └── waveforms            # Generated waveforms (output)
└── tb                       # Testbenches for simulation
    β”œβ”€β”€ baudTest.v           # Testbench for Baud Unit
    β”œβ”€β”€ uartTest.v           # Testbench for UART top-module
    β”œβ”€β”€ transmitterTest.v    # Testbench for Transmitter
    └── receiverTest.v       # Testbench for Receiver 

Keep in mind, this project was primarily developed during a tiring 5+ layover journey, so some of the code might be verbose or less polished. Future revisions will address these shortcomings.

About

A simple configurable UART implementation

Resources

Stars

Watchers

Forks