FPGA Design Automation: A Survey