OpenFPGA/libopenfpga/libarchopenfpga/src/technology_library.h

62 lines
2.4 KiB
C
Raw Normal View History

#ifndef TECHNOLOGY_LIBRARY_H
#define TECHNOLOGY_LIBRARY_H
/********************************************************************
* This file include the declaration of technology library
*******************************************************************/
/********************************************************************
* Types for technology library attributes
* Industrial library: the .lib file which define technology
* This is ubiquitous in commercial vendors
* For industry library, we allow users to define
* process corners.
* Academia library: the .pm file which define technology
* This is mainly used in PTM-like technology library
* PTM is the Predictive Technology Model provided by the Arizona
* State University (ASU). Available at ptm.asu.edu
*******************************************************************/
enum e_tech_lib_type {
TECH_LIB_INDUSTRY,
2020-01-17 10:38:35 -06:00
TECH_LIB_ACADEMIA,
NUM_TECH_LIB_TYPES
};
2020-01-17 10:38:35 -06:00
/* Strings correspond to each technology library type */
constexpr std::array<const char*, NUM_TECH_LIB_TYPES> TECH_LIB_TYPE_STRING = {{"industry", "academia"}};
/********************************************************************
2020-01-17 10:38:35 -06:00
* Types of transistor groups which may be defined in a technology library
* We categorize the transistors in terms of their usage in FPGA architecture
2020-01-17 10:38:35 -06:00
* 1. NMOS transistor
* 2. PMOS transistor
*******************************************************************/
enum e_tech_lib_trans_type {
TECH_LIB_TRANS_NMOS,
TECH_LIB_TRANS_PMOS,
};
/* Strings correspond to transistor type type */
constexpr std::array<const char*, NUM_TECH_LIB_TYPES> TECH_LIB_TRANS_TYPE_STRING = {{"industry", "academia"}};
/********************************************************************
* Types of transistors which may be defined in a technology library
* 1. NMOS transistor
* 2. PMOS transistor
*******************************************************************/
enum e_tech_lib_trans_type {
TECH_LIB_TRANS_NMOS,
TECH_LIB_TRANS_PMOS,
};
2020-01-17 10:38:35 -06:00
/* Strings correspond to transistor type type */
constexpr std::array<const char*, NUM_TECH_LIB_TYPES> TECH_LIB_TRANS_TYPE_STRING = {{"industry", "academia"}};
/********************************************************************
* Process corners supported
*******************************************************************/
enum e_process_corner {
BEST_CORNER,
TYPICAL_CORNER,
WORST_CORNER
};
#endif