Starting 2013.1, bottom-up synthesis flow can be automatically set within the tool by selecting any HDL object as a separate Out_of_context module. This is achieved by right-clicking on the HDL object and selecting the "Set as Out-of-Context Module". This will set a new run in the tool which can be executed by right clicking and selecting "Launch Runs". This action sets the lower-level as a top module and runs synthesis on that module without creating I/O buffers.
For detail information on this bottom-up synthesis flow, refer to UG901 starting from 2013.1, and look for "Setting a Bottom Up Flow" (for 2013.1) and "Setting a Bottom Up Flow Using the Out-of-Context Flow" (for 2013.2).
Be careful with this option when the lower level netlist has parameters/generics that control behavior, and in which case this option will take the default values for parameter/generics, so if a module is instantiated twice, or with overriding parameters, this could result in incorrect logic.
Prior 2013.1, the following steps are recommended to be followed when using the Vivado Synthesis tool for bottom-up synthesis: