FPGA - SRAM communication problem

R

rootz

Guest
I have a design on Virtex II that tests sram controller. To save pins,
the sram is always enabled and in a non-sleep mode. My test app is able
to read and write to the sram. Upon reconfiguration of the fpga, it
stops talking to the sram. It only resumes reading and writing to the
sram only when the entire board is reset (or system rebooted). Anyone
experienced this problem before? Does this have anything to do with the
IO pins possibly glitching during reconfiguration.
Xilinx Answer records also says IO buffers might be in a high state
during reconfiguration. I am not sure how this should affect the sram
communication.
 
rootz wrote:
I have a design on Virtex II that tests sram controller. To save pins,
the sram is always enabled and in a non-sleep mode. My test app is able
to read and write to the sram. Upon reconfiguration of the fpga, it
stops talking to the sram. It only resumes reading and writing to the
sram only when the entire board is reset (or system rebooted). Anyone
experienced this problem before? Does this have anything to do with the
IO pins possibly glitching during reconfiguration.
Xilinx Answer records also says IO buffers might be in a high state
during reconfiguration. I am not sure how this should affect the sram
communication.
Not knowing what sort of SRAM you use, it's hard to say exactly what
causes the lock-up. However the state of the Virtex II IO pins
during configuration is determined by the HSWAP_EN pin. "By default,
HSWAP_EN is set high, which disables the pull-up resistors on user I/O
pins. When HSWAP_EN is set low, the pull-up resistors are activated
on user I/O pins."

The IOB drivers themselves are tristated, so any reasonable resistor
(say 4.7K) can overcome the pull-up resistors in the IOB. Your best
bet is to look at the SRAM control pins and determine which of them
would benefit from pull-up or pull-down during configuration. If you
don't need pull-downs (e.g. all controls are active low) you can use
the HSWAP_EN to create pull-ups in the Virtex II during configuration.
However realize that these weak pull-ups will take some time to drive
a capacitive load high and could cause problems due to inputs drifting
slowly through the threshold region. Usually putting a pull-up
resistor
on an active low chip select line is enough to prevent problems during
re-config, but again it depends on the type of SRAM you use.
 

Welcome to EDABoard.com

Sponsor

Back
Top