/********************************************************************* * The following code is part of the power modelling feature of VTR. * * For support: * http://code.google.com/p/vtr-verilog-to-routing/wiki/Power * * or email: * vtr.power.estimation@gmail.com * * If you are using power estimation for your researach please cite: * * Jeffrey Goeders and Steven Wilton. VersaPower: Power Estimation * for Diverse FPGA Architectures. In International Conference on * Field Programmable Technology, 2012. * ********************************************************************/ /* This file provides functions used to verify the power estimations * againt SPICE. */ #ifndef __POWER_MISC_H__ #define __POWER_MISC_H__ /************************* INCLUDES *********************************/ #include "power.h" /************************* DEFINES **********************************/ const float power_callib_period = 5e-9; /************************* STRUCTS **********************************/ /************************* ENUMS ************************************/ typedef enum { POWER_CALLIB_COMPONENT_BUFFER = 0, POWER_CALLIB_COMPONENT_BUFFER_WITH_LEVR, POWER_CALLIB_COMPONENT_FF, POWER_CALLIB_COMPONENT_MUX, POWER_CALLIB_COMPONENT_LUT, POWER_CALLIB_COMPONENT_MAX } e_power_callib_component; /************************* FUNCTION DECLARATIONS ********************/ void power_print_spice_comparison(); void power_callibrate(); float power_usage_buf_for_callibration(int num_inputs, float transistor_size); float power_usage_buf_levr_for_callibration(int num_inputs, float transistor_size); float power_usage_mux_for_callibration(int num_inputs, float transistor_size); float power_usage_lut_for_callibration(int num_inputs, float transistor_size); float power_usage_ff_for_callibration(int num_inputs, float transistor_size); void power_print_callibration(); #endif