enigmaFPGA icon indicating copy to clipboard operation
enigmaFPGA copied to clipboard

Enigma in FPGA

enigmaFPGA

Enigma in FPGA, made for learning Verilog as part of presentation on BalcCon 2017.

Version of code from conference is at separate branch (Balccon2017): https://github.com/mmicko/enigmafpga/tree/Balccon2017

Due to limitation of presentation uart_rx and uart_tx modules are used from : https://www.nandland.com/vhdl/modules/module-uart-serial-port-rs232.html

Project contains build files for various targets.

  • make - creates binary for Go Board (using yosis and arachne-pnr)
  • make blackice - creates binary for BlackIce FPGA
  • make prog - programs Go Board (using iceprog)
  • make test - run Verilog test for encryption (using iverilog)
  • make testrotor - run Verilog test for rotor rotating (using iverilog)
  • make run - run C++ tests (using verilator)

More explanation and Javascript reference application at : http://enigma.louisedade.co.uk/enigma.html