Skip to content

Implementation of several common digital communication protocols, to be used in FPGAs.

License

Notifications You must be signed in to change notification settings

Ashwin-Rajesh/Verilog_comm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Verilog blocks

Behavioral verilog implementations of components including peripherals for communication protocols and other components commonly used in design of digital systems. Primarily meant for use in FPGAs

This is mostly a learning exercise for me, for practicing writing and verifying RTL code


Index

Peripherals

  1. UART master, slave : Universal Asyncrhnronous Read/Transmit
  2. SPI master, slave : Serial Peripheral Interconnect
  3. I2C master, slave : Inter-Integrated Circuit

Computation

  1. CRC : Cyclic Redundance Check

Memory

  1. FIFO : First In First Out
  2. ROB : Re-Order Buffer

Planned

  1. Wishbone, AXI wrappers and interfaces for existing peripherals
  2. Checksum
  3. AES encryption, SHA hashing
  4. GPIO
  5. NVIC
  6. Programmable timer
  7. Programmable counter

Prefix notation

This is the notation used (for the most part) as prefix for identifier names to indicate their type

Prefix Meaning
i_ Input port
o_ Output port
p_ Parameter (or localparam)
r_ Register
w_ Wire
s_ State definitions (as localparam)

Tools used

  1. Icarus verilog for compilation
  2. Makefiles for build automation
  3. GTKwave for visualization of waveforms
  4. Sigrok, pulseview for protocol decoding (from .vcd files)
  5. Draw.io for flowcharts

About

Implementation of several common digital communication protocols, to be used in FPGAs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published