I ended up getting a Spartan 3E development board. It came with all sorts of cool peripherals... now I just have to start learning more Verilog! I really need to get a book or something, the online resources are fairly good but I need simple designs that you can actually put on an FPGA. For example, basic logic gates, and things like that... or simple signal processing, ie put a pulse in by pressing a button and get three pulses out on another pin. Stuff like that.
I picked up a copy of "FPGA Prototyping by VHDL Examples" however, as the title states, it's all in VHDL. I've got nothing against it, I've just been told by many that Verilog is a better starting point. I flipped through the book a little bit, and I do know they make a copy with the identical format but with Verilog instead. The great part is the particular copy my library has is the "Xilinx Spartan-3E Edition" which is the exact chip family I have. However the book retails for around $100 a pop.
I'm going to Toronto next year to go to Humber College's Electronics Engineering program, and I'm fairly sure they have FPGA classes, so I guess I'll learn more there. But I really want to get going with this board! I've really been searching hard for books, and trying to find good web resources but I've ended up having to cobble many sources together to learn a single point. I am understanding the basic structure of a Verilog program quite well -- all the modules, and ports, and wires, etc. but I need simple design examples to start understanding it a bit better.
In the meantime I'm developing a new tutorial video for my YouTube channel, Frozen Electronics. It's going to be aimed at relatively new beginners to AVRs. I'm aiming it at people who are in the same place I was quite a while back: just grasping the basics of C, and wanting to delve into all the features the chip has to offer. I take the audience through designing a simple SPI EEPROM programming routine, to creating feedback through UART. Essentially, the program uses interrupts to wait for a button to be pressed: it echoes the address it's going to read from to the terminal, executes the read, then spits the data out to the terminal as well. Every time the user presses the button the address is incremented.
I will probably add in write capability in a Part 2 video. I'm trying to keep the steps simple enough that someone with less experience in C can follow. Once the time comes, and I'm comfortable with Verilog, I will most certainly do a multi-part video on spinning FPGAs for beginners. Well, relative beginners. I don't think there are many electronics beginners who could wrap their heads around an FPGA easily.
Thanks for the comments on the last post! I'll keep writing if people keep reading. Hopefully, more interesting things than these two posts.