Menu

TNT-MMTL crosstalk is proportional to rise time?

Buenos
2023-02-01
2023-03-14
  • Buenos

    Buenos - 2023-02-01

    I have noticed that the FEXT crosstalk seems to be proportional to the rise time in the simulation results. If we look at a FEXT s-parameter curve in another simulator, we can notice that FEXT linearly increases with the knee frequency (f=0.35/trise), but only up to fmax=0.5/t_pd. bove that it goes up and down periodically, and lingers around -60...-20dB. On a 5" trace that limit is 0.5GHz. TNT MMTL still gives me linearly increasing FEXT as I keep changing the rise time parameter in the range of few picoseconds, and rerun the simulation.
    Am I missing something, or is it a glitch?

     
  • Tom Li

    Tom Li - 2023-03-14

    I know this is an old thread and that the project is unmaintained. But as another user of TNT-MMTL, I think it's useful to answer this question.

    At low frequencies, crosstalk increases linearly, but high frequencies, transmission line resonance effect starts to take over. MMTL calculates the crosstalk solely based on the mutual capacitance, mutual inductance, and propagation velocity, thus, resonance effects are completely neglected.

    This can be seen from the source code: bem/src/nmmtl_xtk_calculate.cpp.

    If a simple analytical formula of crosstalk as a function of velocity factor and length of the line exists (is there?), I think it should be possible to improve the calculation by adding transmission line resonance effect into the calculation.

      /************************************************************
       *                                                            *
       * Calculate the Near-end Noise (Backward Crosstalk) on line *
       * i from line j.  The voltage amplitude on the active line  *
       * is assumed to be 1.    The calculation differs depending   *
       * upon signal risetime, coupling length and propogation      *
       * velocity.                                                  *
       *                                                            *
       ************************************************************/
      back_xtk_factor = 2.0 * coupling / propagation_velocity[i];
      if (risetime < back_xtk_factor)   /* long line */
      {   
        backward_xtk[i][j] = 0.25 * (cap_coef + ind_coef);
      }   
      else                              /* short line */
      {   
        backward_xtk[i][j] = 0.25 * (cap_coef + ind_coef) *
          back_xtk_factor / risetime;
      }   
    
      /************************************************************
       *                                                            *
       * Calculate the Far-end Noise (Forward Crosstalk) on line i *
       * from line j.                                               *
       *                                                            *
       ************************************************************/
      forward_xtk[i][j] = 0.5 * coupling *
        pow((double) (electrostatic_induction[i][i]
             *electrostatic_induction[j][j]
             *inductance[i][i]
             *inductance[j][j]), (double) 0.25) *
               (cap_coef - ind_coef) / risetime;
    
     

    Last edit: Tom Li 2023-03-14

Log in to post a comment.