clean up the sample arch
This commit is contained in:
parent
a598929fe7
commit
95edd3c091
|
@ -9,14 +9,17 @@
|
||||||
-->
|
-->
|
||||||
<openfpga_architecture>
|
<openfpga_architecture>
|
||||||
<technology>
|
<technology>
|
||||||
<library lib_type="academia" transistor_type="TOP_TT" lib_path="OPENFPGAPATHKEYWORD/fpga_flow/tech/PTM_45nm/45nm.pm" nominal_vdd="1.0" io_vdd="2.5"/>
|
<library type="academia" corner="TOP_TT" path="${OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.pm"/>
|
||||||
<transistors pn_ratio="2" model_ref="M">
|
<logic_transistors pn_ratio="2" model_ref="M" vdd="0.9">
|
||||||
<nmos model_name="nch" chan_length="40e-9" min_width="140e-9"/>
|
<nmos model_name="nch" chan_length="40e-9" min_width="140e-9"/>
|
||||||
<pmos model_name="pch" chan_length="40e-9" min_width="140e-9"/>
|
<pmos model_name="pch" chan_length="40e-9" min_width="140e-9"/>
|
||||||
<io_nmos model_name="nch_25" chan_length="270e-9" min_width="320e-9"/>
|
</logic_transistors>
|
||||||
<io_pmos model_name="pch_25" chan_length="270e-9" min_width="320e-9"/>
|
<io_transistors pn_ratio="2" model_ref="M" vdd="2.5">
|
||||||
</transistors>
|
<nmos model_name="nch_25" chan_length="270e-9" min_width="320e-9"/>
|
||||||
<rram model_name="rram" rlrs="5e3" rhrs="20e6"/>
|
<pmos model_name="pch_25" chan_length="270e-9" min_width="320e-9"/>
|
||||||
|
</io_transistors>
|
||||||
|
<rram model_name="rram_mem" rlrs="1e4" rhrs="1e5"/>
|
||||||
|
<rram model_name="rram_logic" rlrs="5e3" rhrs="20e6"/>
|
||||||
</technology>
|
</technology>
|
||||||
<circuit_library>
|
<circuit_library>
|
||||||
<circuit_model type="inv_buf" name="INVTX1" prefix="INVTX1" is_default="true">
|
<circuit_model type="inv_buf" name="INVTX1" prefix="INVTX1" is_default="true">
|
||||||
|
@ -234,10 +237,9 @@
|
||||||
</circuit_model>
|
</circuit_model>
|
||||||
</circuit_library>
|
</circuit_library>
|
||||||
</openfpga_architecture>
|
</openfpga_architecture>
|
||||||
<openfpga_verification>
|
<openfpga_simulation_setting>
|
||||||
<simulation_parameters>
|
<general sim_temp="25" post="false" captab="false" fast="true"/>
|
||||||
<options sim_temp="25" post="off" captab="off" fast="on"/>
|
<monte_carlo mc_sim="false" num_mc_points="2" cmos_variation="false" rram_variation="false">
|
||||||
<monte_carlo mc_sim="off" num_mc_points="2" cmos_variation="off" rram_variation="off">
|
|
||||||
<cmos abs_variation="0.1" num_sigma="3"/>
|
<cmos abs_variation="0.1" num_sigma="3"/>
|
||||||
<rram abs_variation="0.1" num_sigma="3"/>
|
<rram abs_variation="0.1" num_sigma="3"/>
|
||||||
</monte_carlo>
|
</monte_carlo>
|
||||||
|
@ -261,5 +263,4 @@
|
||||||
<fall slew_time="25e-12" slew_type="abs"/>
|
<fall slew_time="25e-12" slew_type="abs"/>
|
||||||
</input>
|
</input>
|
||||||
</stimuli>
|
</stimuli>
|
||||||
</simulation_parameters>
|
</openfpga_simulation_setting>
|
||||||
</openfpga_verification>
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ openfpga::Arch read_xml_openfpga_arch(const char* arch_file_name) {
|
||||||
try {
|
try {
|
||||||
loc_data = pugiutil::load_xml(doc, arch_file_name);
|
loc_data = pugiutil::load_xml(doc, arch_file_name);
|
||||||
|
|
||||||
/* Root node should be <circuit_settings> */
|
/* First node should be <openfpga_architecture> */
|
||||||
auto xml_circuit_settings = get_single_child(doc, "openfpga_architecture", loc_data);
|
auto xml_circuit_settings = get_single_child(doc, "openfpga_architecture", loc_data);
|
||||||
|
|
||||||
/* Parse circuit_models to circuit library
|
/* Parse circuit_models to circuit library
|
||||||
|
@ -47,6 +47,11 @@ openfpga::Arch read_xml_openfpga_arch(const char* arch_file_name) {
|
||||||
/* Build the timing graph inside the circuit library */
|
/* Build the timing graph inside the circuit library */
|
||||||
openfpga_arch.circuit_lib.build_timing_graphs();
|
openfpga_arch.circuit_lib.build_timing_graphs();
|
||||||
|
|
||||||
|
/* Second node should be <openfpga_simulation_setting> */
|
||||||
|
auto xml_simulation_settings = get_single_child(doc, "openfpga_simulation_setting", loc_data);
|
||||||
|
|
||||||
|
/* Parse simulation settings to data structure */
|
||||||
|
|
||||||
} catch (pugiutil::XmlError& e) {
|
} catch (pugiutil::XmlError& e) {
|
||||||
archfpga_throw(arch_file_name, e.line(),
|
archfpga_throw(arch_file_name, e.line(),
|
||||||
"%s", e.what());
|
"%s", e.what());
|
||||||
|
|
Loading…
Reference in New Issue