Lengthening a 5 ns pulse
A retriggerable monostable multivibrator such as 74LV123 would meet your requirements well:
- Minimum pulse width 3.0 ns for 3 volt operation, 2.5 ns at 5 volts.
- Output pulse width configured by external R/C, typically 470 microseconds
- Retrigger time 45 ns (3 volts) to 40 ns (5 volts).
It is a standard logic IC, very little complexity, and there are two monostables in the package in case you need to stretch another pulse source.
The part is available in DIP as well as TSSOP, so breadboard and production options.
Hope this helped.
Here is a simple positive pulse stretcher with some conditions:
The gain of the transistor will make the output rise quickly, but then it will decay back to ground according to the RC time constant, which is 47 ns in this example.
One of the problems is that you may not be able to tolerate the B-E voltage drop. If the PIC input requires 80% of Vdd for a guaranteed high and the processor is running from 3.3 V, then OUT must be above 2.6 V to be interpreted as a high. However, if IN is also a 3.3 V logic signal and assuming 700 mV B-E drop, then OUT only ever gets up to 2.6 V in the first place.
This circuit may still be usable if the PIC minimum logic high threshold is lower or IN is a higher voltage. Some inputs on some 33F parts are 5 V tolerant. If you can arrange IN to be a 5 V logic signal and use a 5 V tolerant input, you will have enough margin for the time constant to keep the line high for longer than the pulse.
If OUT can somehow be guaranteed to go to 3.3 V at the peak of the pulse and the guaranteed logic high input of the PIC is 2.6 V, then this circuit will stretch the pulse by about 1/2 time constant, or about 24 ns in this example.
How frequently are you getting pulses? Can your counter count both rising and falling edges instead of pulses?
If the pulses are not very frequent then run you pulse into the clock input of a T-Flip-Flop. Every time you get a pulse the TFF output will toggle, creating an edge. The pulses have to be far enough apart so that the MCU has time to register the edge before the next one comes in.
If you MCU can't work off of both rising and falling edges then you might be able to use two counters (one rising edge, one falling edge), or even just accept that you can only count every two pulses.