I had no prior experience with FPGAs, but I learned a lot along the way (and made a lot of mistakes too). I used Chisel, a Scala based HDL that compiles down to Verilog.
All of the code and precompiled bitstreams are available on GitHub— you’ll need a Pynq-Z2 development board to run it.