further clean-up sample arch.xml

This commit is contained in:
tangxifan 2020-01-17 09:38:35 -07:00
parent 910c69d7e5
commit aa070b2a41
2 changed files with 40 additions and 21 deletions

View File

@ -8,20 +8,26 @@
each primitives in FPGA architecture
-->
<openfpga_architecture>
<technology>
<library type="academia" corner="TOP_TT" path="${OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.pm"/>
<transistors name="logic" type="logic" pn_ratio="2" model_ref="M" vdd="0.9">
<nmos model_name="nch" chan_length="40e-9" min_width="140e-9" variation="logic_transistor_var"/>
<pmos model_name="pch" chan_length="40e-9" min_width="140e-9" variation="logic_transistor_var"/>
<technology_library>
<transistors name="logic" type="logic">
<model type="academia" corner="TOP_TT" ref="M" path="${OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.pm"/>
<design vdd="0.9" pn_ratio="2"/>
<nmos name="nch" chan_length="40e-9" min_width="140e-9" variation="logic_transistor_var"/>
<pmos name="pch" chan_length="40e-9" min_width="140e-9" variation="logic_transistor_var"/>
</transistors>
<transistors name="io" type="io" pn_ratio="3" model_ref="M" vdd="2.5">
<nmos model_name="nch_25" chan_length="270e-9" min_width="320e-9" variation="io_transistor_var"/>
<pmos model_name="pch_25" chan_length="270e-9" min_width="320e-9" variation="io_transistor_var"/>
<transistors name="io" type="io"/>
<model type="academia" corner="TT" ref="M" path="${OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.pm"/>
<design vdd="2.5" pn_ratio="3"/>
<nmos name="nch_25" chan_length="270e-9" min_width="320e-9" variation="io_transistor_var"/>
<pmos name="pch_25" chan_length="270e-9" min_width="320e-9" variation="io_transistor_var"/>
</transistors>
<rram_devices>
<rram model_name="mem_rram" rlrs="1e4" rhrs="1e5" variation="mem_rram_var">
<rram model_name="logic_rram" rlrs="5e3" rhrs="20e6" variation="logic_rram_var">
</rram_devices>
<rram name="mem_rram">
<model type="academia" ref="X" path="${OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/rram.pm"/>
<device rlrs="1e4" rhrs="1e5" variation="mem_rram_var"/>
</rram>
<rram name="logic_rram">
<model type="academia" ref="X" path="${OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/rram.pm"/>
<device rlrs="5e3" rhrs="20e6" variation="logic_rram_var"/>
</rram>
<device_variation>
<variation name="logic_transistor_var" abs_variation="0.1" num_sigma="3"/>
@ -29,7 +35,7 @@
<variation name="mem_rram_var" abs_variation="0.1" num_sigma="3"/>
<variation name="logic_rram_var" abs_variation="0.1" num_sigma="3"/>
</device_variation>
</technology>
</technology_library>
<circuit_library>
<circuit_model type="inv_buf" name="INVTX1" prefix="INVTX1" is_default="true">
<design_technology type="cmos" topology="inverter" size="1"/>

View File

@ -18,23 +18,36 @@
*******************************************************************/
enum e_tech_lib_type {
TECH_LIB_INDUSTRY,
TECH_LIB_ACADEMIA
TECH_LIB_ACADEMIA,
NUM_TECH_LIB_TYPES
};
/* Strings correspond to each technology library type */
constexpr std::array<const char*, NUM_TECH_LIB_TYPES> TECH_LIB_TYPE_STRING = {{"industry", "academia"}};
/********************************************************************
* Types of transistors which may be defined in a technology library
* Types of transistor groups which may be defined in a technology library
* We categorize the transistors in terms of their usage in FPGA architecture
* 1. NMOS transistor used in datapath logic
* 2. PMOS transistor used in datapath logic
* 3. NMOS transistor used in the I/O blocks
* 3. PMOS transistor used in the I/O blocks
* 1. NMOS transistor
* 2. PMOS transistor
*******************************************************************/
enum e_tech_lib_trans_type {
TECH_LIB_TRANS_NMOS,
TECH_LIB_TRANS_PMOS,
TECH_LIB_TRANS_IO_NMOS,
TECH_LIB_TRANS_IO_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,
};
/* 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