It is very difficult to understand the FPGA if you don't have any experience with at least one HDLC language.
If you want to understand the basics of FPGA, I would recommend you the following:
- Define one FPGA Family as target - do not choose a high end FPGA, becauste they are very expensive. Chose a cheaper one, but try to go to a new technology. For example, Spartan 7 from Xilinx is a start.
- Based on your chosen FPGA family, download and install one FPGA environment, for example (ISE for olds Xilinx FPGAs, Vivado for newer Xilinx FPGAs, Quartus for Altera FPGAs).
- Learn at least the basics of one HDL language. For example, there is the
Verilog in one day
- From the basics examples, you can synthesize your code and check what is the synthesized hardware inside your FPGA tool.
- Once you get the basics, you can go deeply into FPGA datasheets and user guides.
Unfortunately there is no other way to learn how to FPGA works, except learning how FPGA works. You have to pass trough the coding phase because it is the only good way to generate a FPGA HW (some would say schematics, but really, it is not an option normally and certainly it is not an option from a SW guy entering into FPGA world).
If you want to see some relationship between generated codes and HW, I would indicate this document with some examples of code and generated HW, it is a good start to understand some concepts:
https://www.xilinx.com/support/documentation/white_papers/wp231.pdf
Also, a series overview might be interesting:
https://www.xilinx.com/support/documentation/data_sheets/ds180_7Series_Overview.pdf (from Spartan-7, if you chose other family then look for series overview from other FPGA family).