All true.
Been learning for about 6 months now, due in main to there being a MASSIVE hole in my CV where 'FPGA' & 'VHDL' should be written. Got hold of FreeRange VHDL tutorial and went from there. After getting bored with making numbers appear on a HEX display on my version of the Papilio Pro board, I thought 'sod it, I wonder if I can can make an entire computer run in my FPGA'. Like they did for the ZX Spectrum, I am now trying to do for a Camputers Lynx.
Using the OpenCores Z80 (T80 core) I found it amazingly simple for my FPGA to run the original ROM code as a VHDL LUT. In went all the glue logic (re-written many times as I learn the correct way to do things), block RAM acting as old-school DRAM etc. That works. Then went in sound, and it 'Beeps' now when powered up, just like the original Lynx. Now to make something appear on an old TV. To do that, the old Lynx computer uses a CRTC6845 chip. Again, on OpenCores, there it was so in it went (little point in reinventing the wheel). Unfortunately that core for the 6845 was not complete, so I have rewritten almost all of it and now it works (OK, simulates)... but as a result of trying to unravel it I see non-standard libraries and as you've pointed out, unnecessary functions. So I will re-write that to make it more compatible and 'correct'.
Yes I am learning, but the way I learn is through practice and by chucking myself in at the deep end and I never give up! Admittedly, a bit ar$e about face way of learning but there you go that's just the way I am. I am enjoying learning VHDL so much (apart from the many, many frustrations in getting my brain to work) and in doing so, dispelling the old theory that you cannot teach an old dog new tricks. I'm getting there (he says).
Thank you again for taking the time to respond to my thread!
Andy