Before we gets into timing, you may want to verify its functionality. Does your design work in Functional Simulation? If yes, then we only can conclude it is a timing issues. Then later you set your timing contraint of your design and run Timing Analysis. If no timing violation occurs, then only try run Timing Simulation. If it fails, then we only start debugging from there. If timing contraints are set correctly, and functional simulation has been verified, and your stimulus are correct, most likely the Timing Simulation will pass unless your design contains a lot of asynchronous stuff.