which IOSTANDARD to use for IO-bank in Spartan-3

Feb 21, 2008 2 Replies

Hi, We are currently designing a Xilinx Spartan-3 FPGA based tool that needs to communicate with a daughter card. Multiple variations of daughtercard exist, each of which have a different IO voltage ( 1.5 to 3.3v)



As we dont know what voltage the FPGA IO bank is going to operate, (as daughtercard will be hot-plugged, so we may remove a 1.5V daughtercard and replace it with 1.8v one) the daughtercards are going to power the VCCO of FPGA (1.5 to 3.3v). The daughtercards are connected using 2 ft ribbon cable. so we would like to be able to tinker with the slew rate and drive strengths too. (that narrows me down to LVCMOS and LVTTL)



Only one daughtercard will be plugged in at a time, so i am not trying to use 2 IOSTANDARDs at the same time.



My question is, 1) In the UCF file, what IOSTANDARD should i set for the pins ? will it be ok if i select LVCMOS15 and expect that the IOs will work fine even at applied VCCO of 3.3v ? (setting the pin to LVCMOS33 may not go down well for 1.5v daughtercard ... ?)



2) how are the VOH/VOL values of the (input section of) FPGA pins related to VCCO actually applied and IOSTANDARD selected in the UCF ? My assumption is that the VOH/VOL are a percentage of VCCO actually applied to the VCCO pin. IOSTANDARD is just used by place-n-route tool to ensure that user does not place incompatible IOs in same bank.

any pointers that lead to answers are also fine.



meanwhile, i have already gone through the following before posting here. 1) xilinx ug331.pdf, "using IO resources" chapter, page-352, contains a table. in the IOSTD vs VCCO table, for the entry LVCMOS25 vs VCCO of 1.8v there is a '-' (which means, undefined). for Spartan 3A/AN, VCCO of 1.8 acts as input for LVCMOS25.



2) This comes surprisingly close to my problem.
formatting link

Thanks



-mp


mp,

An IO programmed for a specific Vcco as LVCMOS will function at any higher Vcco applied to the bank. The input threshold depends on the Vcco voltage to the bank (~ 1/2 Vcco), so that is not an issue.

The only concern is that a 8 mA slow IO at 1.5 volts, may be a 24 mA fast IO at 3.3 volts (too many output drivers enabled at a lower voltage to meet current requirement).

You would have to consider the signal integrity, and be sure this will meet your needs.

Again, it will function as desired, but SI may not be what you want.

I suggest setting the IO for something like 8 mA slow at 1.8, or 2.5 volts, and then seeing how they look at 1.5 and 3.3 volts. Split the difference (compromise).

Austin

Thanks Austin, looks like we need to do some characterization once the boards are ready and come up with drive strengths and slew rates.

Thanks

-mp

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required