Cheap FPGA boards for educational purposes: https://store.digilentinc.com/fpga-for-beginners/
The software is free: https://www.xilinx.com/products/design-tools/ise-design-suit...
The hard part is several semesters worth of textbooks to go through that cover digital logic (try Mano's "Digital Design: With an Introduction to the Verilog HDL" to start with) through computer architecture in order to know what to do with the board.
Community support is indeed just beginning but the risc-V community and the HiFive1 - SiFive community support these polarfire FPGA's. Even 50 Risc-V softcores fit on this FPGA.
Just a happy user, not affiliated with Microchip/Microsemi
If you want something even cheaper look for some ICE40 boards, like up5k MDP, or tinyfpga.
A few interesting things to try out: https://www.cl.cam.ac.uk/teaching/1112/ECAD+Arch/background/... https://www.cl.cam.ac.uk/teaching/1112/ECAD+Arch/files/Thack...
An intro to verilog: http://zipcpu.com/tutorial/
About the simplest environment for doing what you just described is http://papilio.cc/
While using the existing Xilinx Webpack tools for actual synthesis, place and routing, etc. the Papilio Design-IDE will LITERALLY let you add peripherals to virtual Arduino like appendages! It takes advantage of a number of community projects like the Wishbone bus, and achieves a nearly drag-n-drop level of visual design tool.
Once you have loaded your custom arduino chip onto the papilio boards FPGA you can program it with a modified version of the Arduino IDE!!!!
One of their virtual chips you can start with IS the arduino atmega 328! Another is the ZPU-ino, an implementation of the Zylin ZPU (a 32bit mcu) done by Alvie Boy that allows you to program this much more powerful device ALSO by the Arduino IDE!
When I started with MCUs I started with an arduino. The thing it did for me was to give me a feeling when to use a microcontroller and when to use something else entirely.
Of course the level of control I had with an arduino was far from optimal, but it worked out of the box and guided me into the subject (a bit like a childrens bicycle: neither fast nor special, but helps in avoiding pain and frustration for the learner).
I wished I had this kind of thing in an affordable fpga way. Simple enough to get me hooked, with examples and good sane defaults etc.
This is what mainstream means: idiots like me who didn’t get a formal education on the subject but want to try things out.