Hello Kleckse,
I suggest you have a look on this webpage:
http://www.rickmiller.com/si.htm (
http://www.rickmiller.com/si.htm)
As RedSavina previously said, the key thing is not the clock speed but the edge speed of your signal. Nowadays, FPGA are better than 10 years ago, thus the gate commutations are very fast. If a trace is too long between 2 components you can have some reflexion due to the track impedance and you can experiment some bad waveform signals (wrong detection and so)... Refer to Maxwell formulas... ;-)
I'm currently designing a custom Cyclone III board with SDRAM, SRAM and Flash and I had to think on this problem. My clock is at 50Mhz and SDRAM is 100Mhz, I chose to place components very close and try to minimyse the distance between all memory chips and FPGA (< 2.5cm).
Here is my approach to choose termination resistor:
1) Know your maximum signal edge speeds and try to design your PCB by minimysing all the track distances. You should find some "rules of thumb" in the attached webpage to calculate the maximum track distance depending of the edge speed. If you can design a track smaller than the maximum distance you should not need a termination resistor.
2) If you can't reduce the track, you will probably have some signal reflexion on the track. The idea is the emitter driver should generate a waveform signal with a smaller amplitude (divided by 2) in order to retrieve a "normal" amplitude waveform at the receiver side. To do that you need to add a resistor just close to the emitter output to get a voltage divider with the track impedance. For instance: If Z_track = 25 ohms choose R_term = 25 ohms.
By applicating this rule it means when you have a bidirectionnal signal you should put a R_term at the output of each emitter driver (1 resistor ---- track ----- 1 resistor). In this case you can put only 1 resistor at the middle of the track.
Summaryze:
- mono-directionnal signal: 1 resistor close to the emitter driver
- bidir-signal: 1 resistor at the middle of the track
3) Nowadays, Cadence and Mentor have specific tools to compute automatically for each track if it needs a terminator resistor, the value and the position...
I hope it will help you.
Regards,
-Pierre