20.06.2013 Views

Design Challenges: Avoiding the Pitfalls, winning the game - Xilinx

Design Challenges: Avoiding the Pitfalls, winning the game - Xilinx

Design Challenges: Avoiding the Pitfalls, winning the game - Xilinx

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ages and densities for increased flexibility<br />

and can be gluelessly connected to <strong>the</strong><br />

Spartan-3E FPGA to store any of <strong>the</strong> following:<br />

• Bitstreams for one or more FPGAs<br />

• Boot code, parameters, and data for<br />

soft CPU cores in <strong>the</strong> FPGA<br />

• Multiple bitstreams for <strong>the</strong> same<br />

FPGA utilizing <strong>the</strong> MultiBoot feature<br />

of <strong>the</strong> Spartan-3E device<br />

Figure 1 shows how dual bitstreams<br />

(for MultiBoot) and code/data storage can<br />

coexist in a J3 Memory device.<br />

<strong>Design</strong> Notes<br />

Figure 2 illustrates <strong>the</strong> connection<br />

between two Spartan-3E FPGAs and a J3<br />

Memory flash device in a 3.3V environment.<br />

In this section, we’ll examine key<br />

design considerations, such as power<br />

sequence, reset, hot-swap, flash content<br />

protection, and x8/x16 mode toggling.<br />

Power-Up Sequence<br />

Three supply voltages are required to support<br />

<strong>the</strong> Spartan-3E device and J3<br />

Memory in a 3.3V application:<br />

• 3.3V: connected to <strong>the</strong> VCC and<br />

VCCQ supplies of J3 Memory, as well<br />

as to <strong>the</strong> VCCO_1 and VCCO_2<br />

supplies of <strong>the</strong> FPGA<br />

• 2.5V: connected to <strong>the</strong> VCCAUX<br />

supply of <strong>the</strong> FPGA<br />

• 1.2V: connected to <strong>the</strong> VCCINT<br />

supply of <strong>the</strong> FPGA<br />

VCCO_0 and VCCO_3 supplies of<br />

<strong>the</strong> FPGA can be 3.3V, 2.5V, 1.8V, 1.5V,<br />

or 1.2V, as required by <strong>the</strong> application.<br />

The Spartan-3E FPGA datasheet<br />

describes <strong>the</strong> power-on precaution in <strong>the</strong><br />

serial flash mode (SPI mode), where <strong>the</strong><br />

FPGA might be reading from <strong>the</strong> flash<br />

device before <strong>the</strong> flash memory is ready.<br />

The same consideration applies to parallel<br />

flash devices, because typical flash<br />

devices require some time (60 µs for J3<br />

Memory) to complete internal initialization<br />

after <strong>the</strong> voltage reaches a nominal<br />

level (2.7V for J3 Memory).<br />

If <strong>the</strong> 2.5V and 1.2V are valid and <strong>the</strong><br />

3.3V reaches 0.4V to 1.0V (a voltage level<br />

below <strong>the</strong> minimum operating voltage of<br />

a flash device such as J3 Memory), <strong>the</strong><br />

FPGA starts its programming sequence<br />

before <strong>the</strong> flash device is ready. Ei<strong>the</strong>r of<br />

two scenarios might occur:<br />

• 3.3V is valid (reaching 2.7V) before<br />

2.5V and 1.2V reach <strong>the</strong>ir minimum<br />

Intel StrataFlash Memory (J3)<br />

TDO<br />

TMS<br />

TCK<br />

FPGA Application<br />

Bitstream<br />

Soft CPU Core Boot &<br />

Application Code<br />

+<br />

Data<br />

0x1FFFFF<br />

STARTUP_SPARTAN3E<br />

required voltage. This scenario typically<br />

does not cause issues because <strong>the</strong><br />

flash device (such as J3 Memory) is<br />

ready for reading when <strong>the</strong> FPGA<br />

starts its programming sequence.<br />

• 3.3V is valid after 2.5V and 1.2V. To<br />

work around this scenario, you can<br />

typically use a 3.3V voltage monitor<br />

to hold <strong>the</strong> PROG_B or INIT_B pin<br />

FPGA Application<br />

Bitstream<br />

Soft CPU Core Boot &<br />

Application Code<br />

+<br />

Data<br />

FPGA Diagnostics<br />

FPGA Diagnostics<br />

Bitstream<br />

Bitstream<br />

First Configuration<br />

0x00000<br />

0<br />

Second Configuration<br />

0x1FFFFF<br />

0x000000<br />

Third Quarter 2005 Xcell Journal 73<br />

>300 ns<br />

GSR<br />

GTS<br />

MBT<br />

CLK<br />

Intel StrataFlash Memo ry (J3)<br />

For more information on using <strong>the</strong> <strong>Xilinx</strong> Spartan-3E FPGA in this setup, see <strong>Xilinx</strong> datasheet DS312-2<br />

JTAG Header<br />

Optional<br />

3.3V Monitor<br />

Open Drain POR<br />

(>1ms Delay)<br />

3.3V<br />

330<br />

BPI Mode<br />

4.7K<br />

0<br />

1<br />

0/1<br />

0<br />

0<br />

TDI<br />

0<br />

CCLK<br />

CSI_B<br />

1<br />

1<br />

0<br />

CSI_B<br />

0<br />

TDI<br />

TMS<br />

TCK<br />

TDO<br />

0<br />

CCLK<br />

<strong>Xilinx</strong> Spartan-3E<br />

M2<br />

M1<br />

M0<br />

CSI_B<br />

RDWR_B<br />

TDI<br />

TMS<br />

TCK<br />

TDO<br />

HSWAP<br />

CCLK<br />

CSO_B<br />

PROG_B<br />

DONE<br />

Slave Parallel Mode<br />

M2<br />

M1<br />

M0<br />

CSI_B<br />

RDWR_B<br />

TDI<br />

TMS<br />

TCK<br />

TDO<br />

HSWAP<br />

CCLK<br />

CSO_B<br />

PROG_B<br />

DONE<br />

GND<br />

VCCO_1<br />

VCCO_2<br />

LDC0<br />

LDC1<br />

HDC<br />

LDC2<br />

A[23:0]<br />

D[7:0]<br />

INIT_B<br />

VCCAUX<br />

USER I/Os<br />

VCCINT<br />

VCCO_1<br />

VCCO_2<br />

D[7:0]<br />

INIT_B<br />

VCCAUX<br />

USER I/Os<br />

VCCINT<br />

<strong>Xilinx</strong> Spartan-3E<br />

2.5V<br />

1.2V<br />

3.3V<br />

2.5V<br />

1.2V<br />

4.7K<br />

Intel StrataFlash Memory (J3)<br />

340<br />

Optional<br />

3.3V<br />

CONNECTIVITY<br />

Figure 1 – Multiple bitstream and code/data storage in flash devices (B4980)<br />

CE0<br />

OE#<br />

WE#<br />

BYTE#<br />

A[23:0]<br />

D[7:0]<br />

D[15:8]<br />

VCC<br />

VCCQ<br />

RP#<br />

VPEN<br />

STS<br />

CE1<br />

CE2<br />

GND<br />

3.3V<br />

4.7K 4.7K<br />

Figure 2 – A 2x <strong>Xilinx</strong> Spartan-3E FPGA to Intel StrataFlash memory (J3) connection (B4981)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!