In Lattice Diamond, spreadsheet view where I assign the signals to pins of the FPGA chip, there is IO type. Restricting the discussion to single-ended CMOS signals, then my choices are given by the voltage level: LVCMOS12, LVCMOS15, LVCMOS18, LVCMOS25 (which is the default), and LVCMOS33.
In all the tutorials I've seen, they just stay away from this issue, usually saying that leaving it as LVCMOS25 works (which it does).
I have a design (with an XP2-8, BGA256) where one bank has a 3.3V Vcc, and all the other banks use 1.8V. All of the IO Types are set to LVCMOS25.
What's the relevance of the different IO Types? Any benefit to matching the IO type to the corresponding VCCIO voltage? (i.e., set LVCMOS18 for all pins that are part of a bank powered by 1.8V, and LVCMOS33 for the pins in the bank that uses 3.3V)
Any risks? (for example, is it a problem if I select LVCMOS18 for some of the pins but leave the rest with its default LVCMOS25?)
I'm tempted to "do the right thing" and use the appropriate type to match the VCCIO ... but then, I'm rather worried about changing something that has been working "like a charm" (at least it appears to be working like a charm)