@Sharath: Please see the link below which describes different methods to fix setup and hold violations.
Method 5 and method 6 to fix set up violations suggests to add buffers in the datapath. According to the explanation they gave, it seems to be a working method. Are they practical solutions??