Hi *,
since switching to ISE9.2, one of my favourite topics has come up again... Basically, what I have is an FPGA with a bank that has a VCCO of 3.3V. This bank has several LVTTL outputs and a few LVDS25-inputs. At the time when the board was designed, this was a valid configuration: LVDS-input buffers are powered from VCCAUX, which is always 2.5V, so it doesn't matter what your VCCO on that bank is. ISE8.2, which was used at the beginning of development, didn't even issue a warning here.
Starting with ISE9.1, par would stop with a FATAL_ERROR, because I was using the DIFF_TERM-attribute on those LVDS-inputs, and it turns out that even though the input buffers are powered from VCCAUX, the termination is not, i.e. in the case where VCCO!=2.5V the termination value is not 100 Ohms, but something else, unspecified. In my case it didn't matter, everything works fine with that "wrong" termination as well, and it turns out that there is some magical environment variable you can set so par will just ignore this and finish its job.
Now I tried the design in ISE9.2, and it again fails (despite setting the mentioned environment variable), this time issuing an error message stating that LVDS-inputs cannot be put in the same bank as LVTTL-outputs. This combination of IO standards is now forbidden completely.
Question is: Why?
Looking at the latest Virtex4 data sheet (ug070 2.3 from 8/10/2007, page
304, table 6-38), there is one footnote that was added 4 days after the previous doc release. It says: "Differential inputs and inputs using VREF are powered from VCCAUX. However, pin voltage must not exceed VCCO, due to the presence of clamp diodes to VCCO.".I don't quite see the relevance to my case here, but that's what changed last...
cu, Sean