The Common Data Bus connects the Functional Units to the Reservation Stations and the Reorder Buffer. Having a single Common Data Bus avoids any form of contention. The job of the Functional Unit is to write the result on the Common Data Bus. All the Reservation Stations are connected to this bus and are listening for the operands they need. This way the same result can be propagated to multiple Reservation Stations.
Generally, the operand values are ready one cycle after it is written on the CDB. However, in some architectures, the value is ready only after it is available in the ROB. This will cause a delay of another cycle. In the first cycle the Function Unit writes to CDB. In the second cycle the ROB writes to the Reservation Stations.
Pingback: Tomasulo's Algorithm - Instruction Lifecycle - TheBeardSage