Hi, I'm very new to FPGA. Most of what I did was PIC and Atmel microcontrollers. I want to know about the design consideration of implementing an FPGA into a system. How do you pick the suitable FPGA to suit your needs? I know there are specifications such as number of logic elements, PLLs, multiplier and such but you will never know how much of those you will need until you finish the vhdl and compile it. Correct me if I'm wrong but I'm pretty sure the hardware has to be finalized before the vhdl codes are done in a general development process.
Also, I see that there are a few companies making FPGA. Namely Xillinx, Altera, Lattice etc. What are the differences between their product? Most of what I can search online talks about their development IDEs in terms of which one has free tools or which company has IP restrictions. It's hard for a beginner like me to make sense of what Cyclone offers compared to Spartan and such.
Third question is how do you objectively quantify and compare the performance between FPGAs? Assuming they all run at the same clock. Since they are all essentially doing the same thing and is functionally the same when loaded with the same vhdl code. How do they fare against each other in terms of efficiency, speed and what not? Googling around I only find people comparing them with GPUs and CPUs. Companies advertising their product using vague and very general descriptions doesn't help at all.
Sorry if these are very newb questions but I am a newb trying to learn FPGA. My college provides FPGA courses which I am now just starting but they only teach how to write vhdl. There are no info on hardware considerations or even how to set up a FPGA chip. Thanks in advance!