How to set up an FPGA Development Environment

In this post I describe the nine key elements needed for setting up a professional FPGA development environment, including specific choices for each category.