how can i achieve a TTL pulses with duration of 1ns and what board do I need
You can create narrow pulses from the 20 kHz rising edge, maybe down to a few ns, and occurring a few ns after the rising edge, with a couple of logic parts,by taking advantage of their propagation delays.  Say 74AHC04 and 74AHC08.

http://www.ti.com/lit/ds/symlink/sn74ahc04.pdf

http://www.ti.com/lit/ds/symlink/sn74ahc08.pdf

You can investigate other logic families to see it there is anything faster.

20 kHz = 50 µs period, you can create that with an Uno using the micros() times.

Something like this in loop:

void loop() {
  oldTime = micros();
  while (1) { // avoids jitter from the loop behind the scene actions
    timeNow = micros();
    if ((timeNow - oldTime) &gt;= halfPeriod) {
      PINB = PINB | 0b00000001; // toggle D8 by writing a 1 to the Input port
      oldTime = timeNow;
    } // end time check
  } // end while
} // end loop


Check the timing with a scope, might have to shorten halfPeriod a little to allow for the time checking and the port manipulation.