module sf_camera_controller (
input                 clk,
input                 rst,

//Physical Interface
output                o_cam_rst,
output                o_flash,
input                 i_flash_strobe,

output                o_cam_in_clk,

//Configuration Registers
input                 i_auto_flash,
input                 i_manual_flash_on,
input                 i_enable,
input                 i_camera_reset,

output                o_clk_locked,

//Core Controller
output                o_enable_dma,
output                o_enable_reader,
output                o_enable_interrupt

);

//Local Parameters
//Registers/Wires
//Submodules

//20MHz Clock Genertors
sf_camera_clk_gen clk_gen(
  .clk              (clk                ),
  .rst              (rst                ),
  .locked           (o_clk_locked       ),
  .phy_out_clk      (o_cam_in_clk       )
);

//Asynchronous Logic
assign  o_flash             = (i_auto_flash) ? i_flash_strobe:
                                               i_manual_flash_on;
assign  o_cam_rst           = i_camera_reset;

//Synchronous Logic
endmodule