Bidirectional com between FPGA and other devices

Thread Starter

Shagas

Joined May 13, 2013
804
Hello

I'm currently playing with an Altera DE2-115 FPGA development board that a prof at my uni was so kind to lend me and I'm planning to try
to interface it to an external camera and use the SRAM which is on the dev board.

Question:
How do embedded designers/programmers make sure that devices communicating between each other where at least one device is 'soft' don't
have physical conflicts on bidirectional pins?

For example:
Let's say I'm trying to interface an FPGA to an SRAM chip. There are 16 pins which are the 'Data' pins and which are bidirectional, meaning
that I will be both reading and writing to them. My question is that if I by mistake (or due to a design bug)enable those pins on the FPGA as outputs and at the same time the SRAM tries to write data out on them then one (or both) of the devices will get damaged right?

Is there a specific methodic way to deal with this or is it just a 'triple check and simulate everything before implementing it' kind of thing? I guess you would use something like an FSM where you clearly define the behavior of the pins given the control states but still i'm a bit hesitant.

Thanks in advance.
 

DickCappels

Joined Aug 21, 2008
10,186
You would not necessarily damage the devices -check the max output current specifications for both states for both devices.

If the case of one pin driving high while the other driving low exceeds the maximum current rating for either pin and if speed is not an issue, you can try placing some resistance in the connection between the two devices to reduce the maximum current.

Yes, you should simulate it.
 

Thread Starter

Shagas

Joined May 13, 2013
804
I unfortunately can't place any resistors in between the devices because they are on a development board
but I was wondering on how it is usually done in the industry.

Anyhow thanks for the answer.
 
Top