Virtual clocks can be defined for all input and output clocks in a design. This separates the clock domains for the I/O and core, allowing for separate and distinct clock uncertainty constraints. Virtual clocks provide unique clock transfers for I/O versus internal transfers, ensuring the correct uncertainty values are set.