This document discusses using OpenCL to automatically generate platform architectures for FPGAs. It introduces FPGAs and their architecture, then discusses how OpenCL can be used as a hardware description language. The Silicon OpenCL (SOpenCL) tool flow is presented, which takes an unmodified OpenCL application and converts it into an FPGA system design with hardware and software components. Key steps in SOpenCL include code transformations, granularity management, and architectural synthesis to generate customized FPGA accelerators from OpenCL kernels. Monte Carlo simulations are provided as an example of an application that could exploit multiple levels of parallelism on FPGAs using this approach.