Contains the source code from the course work throughout my undergraduate Computer Engineering degree at Brigham Young University. There is a mixture of Go, Python, C, C++, Java, VHDL, Verilog, Matlab, Bash, Assembly, etc..
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Derek McQuay 0c4c6d5a96 updated readme for ecen320 7 years ago
rx_decoder adding ecen 320 final project 7 years ago
tx_encoder adding ecen 320 final project 7 years ago updated readme for ecen320 7 years ago
Spartan3EMaster.ucf adding ecen 320 final project 7 years ago


  • Aaron Norris
  • Derek McQuay


  • ECEN 320
  • Winter 2014
  • Dr. Mike Wirthlin
  • Brigham Young University


  • This is a color based encryption/decryption program that sends its data over UART


  • Hardware:
    • Nexys 2 FPGA (2)
    • Serial Cable (1)
    • Serial Null Modem (1)
    • Computer (1)
    • ps2 Keyboard (1)
    • Vga monitor & cable (2)
  • Running:
    • Load rx onto one board, and plug in the ps2 keyboard.
    • Load tx onto the other board.
    • Connect the two boards with the null modem and the serial cable.
    • You can now send messages between the boards.
    • As long as background color is the same on the two screens, the message will appear on both.
    • When the colors mismatch, gibberish will print.
    • Move the switches to select colors.


  • Remove the jitter on the tx. After hours of work, we can't get the display quite right.
  • Load an image into the memory, and read it pixel by pixel using one pixel for one character. This way both sides need an identical picture to send and recieve. Use switch 8 to indicate this option.
  • Write it so each board does both rx and tx. Select by button?


  • Normal synthsis


  • RX:

    • 188 Slices used (2%)
    • approx 3366 lines of code (some identical to tx)
  • TX:

    • 373 Slices used (8%)
    • approx 4006 lines of code (some identical to rx)
    • This is larger because of the ps2 code for the keyboard.