The definition is not the same in digital and analog circuits.
Analog: A buffer is an amplifier with gain=1 but that can drive big capacitive load or small resistance. Mainly it has a low output inpedance. For exemple there is the source follower circuit.
Digital: There is two possiblities
- 2 inverters connected in series. By increasing the size you can drive big capacitive load.
- Chain of latch: use to store temporarily an input. For exemple in a serial to parralel: you strore n bit and output them at once. For this you use a buffer.
The only one you can use as a memory is the last one.
I agree the opinion of skal81.
But in digital, buffer can be implemented by DFF or SRAM.
For little buffer, DFF is preferable like fifo, But for big buffer , SRAM is preferable.
For big fanout you can use buffers to divide the inputs that you need to drive into groups each driven by a diffrent buffer. Long lines are better terminated on one or both sides especially for high speed digital signals to avoid reflections and EMI. (treat them as transmission lines)
I'm not sure to fully understand your question. What do you mean "to insert" the buffer?
Anyhow, for digital a buffer is a chain of inverter with incresing size. Let's say the first has unit size, you can have:
1 -> 2 -> 4 -> 8
This means that the last one is 8 times bigger and therefore can drive a capacitive load 8 times bigger than a normal inverter.
What is your target? ASIC of FPGA? In both case you should have a library of component furnished with. There will be inverters, nand and so. You will find the buffer inside. Refer to the documentation to get the detail on how to instantiate it and specifie it's size. It might be a parameter or a meta command.
As I don't have detail about your application I can only give you general comment. Sorry.