Hi,
I'm totally new to FPGA design. I've just downloaded Altrea's Quartus II version 11.1 software to program some Cyclone II FPGA boards I have. I also have some Max II CPDLs.
The boards I have:
FPGA Altera Cyclone II EP2C5
CPLD Altera MAX II EPM240
I'm totally NEW to this so I have almost no clue what I'm doing. I'm hoping to find other hobbyists who could help me learn, or perhaps we could learn together?
So far I've installed the software and USB Blaster. I've typed in a VHDL hardware description from a YouTube tutorial that uses the same software and the same board I have.
This is the YouTube tutorial I used. I have this exact same board.
Everything went just fine. I typed it all in, complied it, downloaded it onto the board, and it does exactly what it's supposed to do. In fact, I even modified it some to do a few different things and to my utter shock and amazement even my modifications worked as expected. So I'm off to a good start.
However, in spite of the great success up to this point I still have a lot of things I'm not understanding. I was able to create a schematic file using the original VHDL code. And then I wanted to modified the schematic, but I'm running into problems there when I tried to break out pins on a bus.
I have a specific goal in mind that I would like to achieve. Well, for one thing, I'd like to learn how to work with the Schematic diagram better. I understand electronics and I've worked with many schematic programs in the past so it's not that I don't understand schematics. For some reason I'm just not having any luck connecting individual pins to a bus.
My ultimate goal is to re-design this entire project using the schematic alone without typing in any VHDL. The reason I want to do this is so I can work in schematic mode for a while to see if there are ways to reduce gate count in the design. Then I can go back into the VHDL and see what I would need to do there to reproduce the schematics I created by hand.
In short, this entire project is just for leaning how to program the Cyclone II efficiently. I'm not concerned with any actual finished product at this time. What I would like to do is start a thread on this where I can post everything we're doing step-by-step for others to follow along and perhaps even suggest improvements. But I can't do it alone since I'm not clear myself on exactly how to work with the software tools.
So the project right now is the following:
I have a 50 MHz clock. This clock needs to be reduced to 1 Hz.
The very first thing I would like to do is write a hardware schematic that achieves this reduction using the fewest possible logic gates.
Then learn how to write a VHDL description that will produce the same hardware using the same number of gates.
From there I would then move on to doing something similar with a binary counter.
This is all just for the purpose of learning VHDL and schematic design with a full understanding of precisely what's going on.
If possible, once the above has been achieved, I would then like to move on to seeing if the same thing could be designed using a Finite State Machine? Again, just for the purpose of understanding how to use these design tools.
~~~~~~
My ultimate long term goal is to eventually program neural networks onto the FPGA. But I don't want to jump into that until I've gained a really solid understanding of how to program the FPGA in general. I'm also sure I'll be interested in using the FPGA to control PWM motors, as well as other projects. But for now, I just want to start with this very basic project. Reduce 50 MHz to 1Hz using the least number of gates, and fully understand it in both VHDL, schematic, and perhaps even as a Finite State Machine.
Big dreams. But I want to start with very simple stuff until I feel confident with the tools.
Anyone interested in contributing to this project?
If we create a nice step-by-step thread it should be useful for a lot of people.
Thanks for reading.