Merge pull request #36 from LNIS-Projects/xt_dev

Critical Patch on VPR Arch for Shift Register Implementation
This commit is contained in:
Laboratory for Nano Integrated Systems (LNIS) 2020-11-25 20:14:43 -07:00 committed by GitHub
commit 82c00eda30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 1377513 additions and 21 deletions

1
.gitattributes vendored
View File

@ -1,2 +1,3 @@
*.gds filter=lfs diff=lfs merge=lfs -text
*.spef filter=lfs diff=lfs merge=lfs -text
*.v filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,237 @@
<!-- Architecture annotation for OpenFPGA framework
This annotation supports the k4_frac_cc_sky130nm.xml
- General purpose logic block
- K = 6, N = 10, I = 40
- Single mode
- Routing architecture
- L = 4, fc_in = 0.15, fc_out = 0.1
- Skywater 130nm PDK
- circuit models are binded to the opensource skywater
foundry middle-speed (ms) standard cell library
-->
<openfpga_architecture>
<technology_library>
<device_library>
<device_model name="logic" type="transistor">
<lib type="industry" corner="TOP_TT" ref="M" path="${OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.pm"/>
<design vdd="0.9" pn_ratio="2"/>
<pmos name="pch" chan_length="40e-9" min_width="140e-9" variation="logic_transistor_var"/>
<nmos name="nch" chan_length="40e-9" min_width="140e-9" variation="logic_transistor_var"/>
</device_model>
<device_model name="io" type="transistor">
<lib type="academia" ref="M" path="${OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.pm"/>
<design vdd="2.5" pn_ratio="3"/>
<pmos name="pch_25" chan_length="270e-9" min_width="320e-9" variation="io_transistor_var"/>
<nmos name="nch_25" chan_length="270e-9" min_width="320e-9" variation="io_transistor_var"/>
</device_model>
</device_library>
<variation_library>
<variation name="logic_transistor_var" abs_deviation="0.1" num_sigma="3"/>
<variation name="io_transistor_var" abs_deviation="0.1" num_sigma="3"/>
</variation_library>
</technology_library>
<circuit_library>
<circuit_model type="inv_buf" name="sky130_fd_sc_hd__inv_1" prefix="sky130_fd_sc_hd__inv_1" is_default="true" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_1.v">
<design_technology type="cmos" topology="inverter" size="1"/>
<device_technology device_model_name="logic"/>
<port type="input" prefix="in" lib_name="A" size="1"/>
<port type="output" prefix="out" lib_name="Y" size="1"/>
<delay_matrix type="rise" in_port="in" out_port="out">
10e-12
</delay_matrix>
<delay_matrix type="fall" in_port="in" out_port="out">
10e-12
</delay_matrix>
</circuit_model>
<circuit_model type="inv_buf" name="sky130_fd_sc_hd__buf_2" prefix="sky130_fd_sc_hd__buf_2" is_default="false" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_2.v">
<design_technology type="cmos" topology="buffer" size="1" num_level="2" f_per_stage="2"/>
<device_technology device_model_name="logic"/>
<port type="input" prefix="in" lib_name="A" size="1"/>
<port type="output" prefix="out" lib_name="X" size="1"/>
<delay_matrix type="rise" in_port="in" out_port="out">
10e-12
</delay_matrix>
<delay_matrix type="fall" in_port="in" out_port="out">
10e-12
</delay_matrix>
</circuit_model>
<circuit_model type="inv_buf" name="sky130_fd_sc_hd__buf_4" prefix="sky130_fd_sc_hd__buf_4" is_default="false" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_4.v">
<design_technology type="cmos" topology="buffer" size="1" num_level="2" f_per_stage="4"/>
<device_technology device_model_name="logic"/>
<port type="input" prefix="in" lib_name="A" size="1"/>
<port type="output" prefix="out" lib_name="X" size="1"/>
<delay_matrix type="rise" in_port="in" out_port="out">
10e-12
</delay_matrix>
<delay_matrix type="fall" in_port="in" out_port="out">
10e-12
</delay_matrix>
</circuit_model>
<circuit_model type="inv_buf" name="sky130_fd_sc_hd__inv_2" prefix="sky130_fd_sc_hd__inv_2" is_default="false" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_2.v">
<design_technology type="cmos" topology="buffer" size="1"/>
<device_technology device_model_name="logic"/>
<port type="input" prefix="in" lib_name="A" size="1"/>
<port type="output" prefix="out" lib_name="Y" size="1"/>
<delay_matrix type="rise" in_port="in" out_port="out">
10e-12
</delay_matrix>
<delay_matrix type="fall" in_port="in" out_port="out">
10e-12
</delay_matrix>
</circuit_model>
<!-- Define a circuit model for the standard cell MUX2
OpenFPGA requires the following truth table for the MUX2
When the select signal sel is enabled, the first input, i.e., in0
will be propagated to the output, i.e., out
If your standard cell provider does not offer the exact truth table,
you can simply swap the inputs as shown in the example below
-->
<circuit_model type="gate" name="sky130_fd_sc_hd__mux2_1" prefix="sky130_fd_sc_hd__mux2_1" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_1.v">
<design_technology type="cmos" topology="MUX2"/>
<device_technology device_model_name="logic"/>
<input_buffer exist="false"/>
<output_buffer exist="false"/>
<port type="input" prefix="in0" lib_name="A1" size="1"/>
<port type="input" prefix="in1" lib_name="A0" size="1"/>
<port type="input" prefix="sel" lib_name="S" size="1"/>
<port type="output" prefix="out" lib_name="X" size="1"/>
</circuit_model>
<circuit_model type="chan_wire" name="chan_segment" prefix="track_seg" is_default="true">
<design_technology type="cmos"/>
<input_buffer exist="false"/>
<output_buffer exist="false"/>
<port type="input" prefix="in" size="1"/>
<port type="output" prefix="out" size="1"/>
<wire_param model_type="pi" R="101" C="22.5e-15" num_level="1"/>
<!-- model_type could be T, res_val and cap_val DON'T CARE -->
</circuit_model>
<circuit_model type="wire" name="direct_interc" prefix="direct_interc" is_default="true">
<design_technology type="cmos"/>
<input_buffer exist="false"/>
<output_buffer exist="false"/>
<port type="input" prefix="in" size="1"/>
<port type="output" prefix="out" size="1"/>
<wire_param model_type="pi" R="0" C="0" num_level="1"/>
<!-- model_type could be T, res_val cap_val should be defined -->
</circuit_model>
<circuit_model type="mux" name="mux_tree" prefix="mux_tree" is_default="true" dump_structural_verilog="true">
<design_technology type="cmos" structure="tree" add_const_input="true" const_input_val="1"/>
<input_buffer exist="false"/>
<output_buffer exist="false"/>
<pass_gate_logic circuit_model_name="sky130_fd_sc_hd__mux2_1"/>
<port type="input" prefix="in" size="1"/>
<port type="output" prefix="out" size="1"/>
<port type="sram" prefix="sram" size="1"/>
</circuit_model>
<circuit_model type="mux" name="mux_tree_tapbuf" prefix="mux_tree_tapbuf" dump_structural_verilog="true">
<design_technology type="cmos" structure="tree" add_const_input="true" const_input_val="1"/>
<input_buffer exist="false"/>
<output_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__buf_4"/>
<pass_gate_logic circuit_model_name="sky130_fd_sc_hd__mux2_1"/>
<port type="input" prefix="in" size="1"/>
<port type="output" prefix="out" size="1"/>
<port type="sram" prefix="sram" size="1"/>
</circuit_model>
<!--DFF subckt ports should be defined as <D> <Q> <CLK> <RESET> <SET> -->
<circuit_model type="ff" name="sky130_fd_sc_hd__dfxtp_1" prefix="sky130_fd_sc_hd__dfxtp_1" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v">
<design_technology type="cmos"/>
<input_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<output_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<port type="input" prefix="D" size="1"/>
<port type="output" prefix="Q" size="1"/>
<port type="clock" prefix="clk" lib_name="CLK" size="1" is_global="false" default_val="0" />
</circuit_model>
<circuit_model type="lut" name="frac_lut4" prefix="frac_lut4" dump_structural_verilog="true">
<design_technology type="cmos" fracturable_lut="true"/>
<input_buffer exist="false"/>
<output_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__buf_2"/>
<lut_input_inverter exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<lut_input_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__buf_2"/>
<lut_intermediate_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__buf_2" location_map="-1-"/>
<pass_gate_logic circuit_model_name="sky130_fd_sc_hd__mux2_1"/>
<port type="input" prefix="in" size="4"/>
<port type="output" prefix="lut3_out" size="1" lut_frac_level="3" lut_output_mask="1"/>
<port type="output" prefix="lut4_out" size="1" lut_output_mask="0"/>
<port type="sram" prefix="sram" size="16"/>
</circuit_model>
<!--Scan-chain DFF subckt ports should be defined as <D> <Q> <Qb> <CLK> <RESET> <SET> -->
<circuit_model type="ccff" name="sky130_fd_sc_hd__dfxtp_1" prefix="sky130_fd_sc_hd__dfxtp_1" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v">
<design_technology type="cmos"/>
<input_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<output_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<port type="input" prefix="D" size="1"/>
<port type="output" prefix="Q" size="1"/>
<port type="clock" prefix="prog_clk" lib_name="CLK" size="1" is_global="true" default_val="0" is_prog="true"/>
</circuit_model>
<circuit_model type="iopad" name="EMBEDDED_IO_HD" prefix="EMBEDDED_IO_HD" is_default="true" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/HDL/common/digital_io_hd.v">
<design_technology type="cmos"/>
<input_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<output_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<port type="input" prefix="SOC_IN" lib_name="SOC_IN" size="1" is_global="true" is_io="true" is_data_io="true"/>
<port type="output" prefix="SOC_OUT" lib_name="SOC_OUT" size="1" is_global="true" is_io="true" is_data_io="true"/>
<port type="output" prefix="SOC_DIR" lib_name="SOC_DIR" size="1" is_global="true" is_io="true"/>
<port type="input" prefix="IO_ISOL_N" lib_name="IO_ISOL_N" size="1" is_global="true" default_val="1"/>
<port type="output" prefix="inpad" lib_name="FPGA_IN" size="1"/>
<port type="input" prefix="outpad" lib_name="FPGA_OUT" size="1"/>
<port type="sram" prefix="en" lib_name="FPGA_DIR" size="1" mode_select="true" circuit_model_name="sky130_fd_sc_hd__dfxtp_1" default_val="1"/>
</circuit_model>
<circuit_model type="hard_logic" name="LOGIC_VDD" prefix="LOGIC_VDD" is_default="true" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/HDL/common/digital_io_hd.v">
<design_technology type="cmos"/>
<input_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<output_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<port type="output" prefix="a" lib_name="Y" size="1"/>
</circuit_model>
<circuit_model type="hard_logic" name="LOGIC_GND" prefix="LOGIC_GND" is_default="false" verilog_netlist="${SKYWATER_OPENFPGA_HOME}/HDL/common/digital_io_hd.v">
<design_technology type="cmos"/>
<input_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<output_buffer exist="true" circuit_model_name="sky130_fd_sc_hd__inv_1"/>
<port type="output" prefix="a" lib_name="Y" size="1"/>
</circuit_model>
</circuit_library>
<configuration_protocol>
<organization type="scan_chain" circuit_model_name="sky130_fd_sc_hd__dfxtp_1" num_regions="1"/>
</configuration_protocol>
<connection_block>
<switch name="routing" circuit_model_name="mux_tree_tapbuf"/>
</connection_block>
<switch_block>
<switch name="routing" circuit_model_name="mux_tree_tapbuf"/>
</switch_block>
<routing_segment>
<segment name="hop4" circuit_model_name="chan_segment"/>
</routing_segment>
<direct_connection>
<direct name="adder_carry" circuit_model_name="direct_interc"/>
</direct_connection>
<tile_annotations>
<global_port name="clk" tile_port="SUPER_LOGIC_CELL.QCK" is_clock="true" default_val="0"/>
</tile_annotations>
<pb_type_annotations>
<!-- physical pb_type binding in complex block IO -->
<pb_type name="IO" physical_mode_name="PHYSICAL" idle_mode_name="INPUT"/>
<!-- IMPORTANT: must set unused I/Os to operating in INPUT mode !!! -->
<pb_type name="IO[PHYSICAL].PHYSICAL" circuit_model_name="EMBEDDED_IO_HD" mode_bits="1"/>
<pb_type name="IO[INPUT].INPUT" physical_pb_type_name="IO[PHYSICAL].PHYSICAL" mode_bits="1"/>
<pb_type name="IO[OUTPUT].OUTPUT" physical_pb_type_name="IO[PHYSICAL].PHYSICAL" mode_bits="0"/>
<!-- End physical pb_type binding in complex block IO -->
<!-- physical pb_type binding in complex block CLB -->
<!-- physical mode will be the default mode if not specified -->
<pb_type name="SUPER_LOGIC_CELL.LC" physical_mode_name="PHYSICAL"/>
<pb_type name="SUPER_LOGIC_CELL.LC[PHYSICAL].PHYSICAL.frac_logic.frac_lut4" circuit_model_name="frac_lut4" mode_bits="0"/>
<pb_type name="SUPER_LOGIC_CELL.LC[PHYSICAL].PHYSICAL.ff" circuit_model_name="sky130_fd_sc_hd__dfxtp_1"/>
<!-- BEGIN Binding operating pb_types in mode 'ble4' -->
<pb_type name="SUPER_LOGIC_CELL.LC[DEFAULT].DEFAULT.lut_part[VPR_LUT4].VPR_LUT4.lut_inst" physical_pb_type_name="SUPER_LOGIC_CELL.LC[PHYSICAL].PHYSICAL.frac_logic.frac_lut4" mode_bits="0">
<!-- Binding the lut4 to the first 4 inputs of fracturable lut4 -->
<port name="in" physical_mode_port="in[0:3]"/>
<port name="out" physical_mode_port="lut4_out"/>
</pb_type>
<pb_type name="SUPER_LOGIC_CELL.LC[DEFAULT].DEFAULT.ff" physical_pb_type_name="SUPER_LOGIC_CELL.LC[PHYSICAL].PHYSICAL.ff"/>
<!-- END Binding operating pb_types in mode 'ble4' -->
<!-- physical pb_type binding in complex block LOGIC1 -->
<pb_type name="LOGIC_1.logic_1" circuit_model_name="LOGIC_VDD"/>
<!-- physical pb_type binding in complex block LOGIC0 -->
<pb_type name="LOGIC_0.gnd" circuit_model_name="LOGIC_GND"/>
</pb_type_annotations>
</openfpga_architecture>

View File

@ -396,18 +396,21 @@
<direct name="direct3" input="ff[0].Q" output="ff[1].DI"/>
<direct name="direct4" input="ff[1].Q" output="fabric.sc_out"/>
<direct name="direct5" input="ff[1].Q" output="fabric.reg_out"/>
<direct name="direct6" input="frac_logic.out[1:1]" output="ff[1:1].D"/>
<complete name="complete1" input="fabric.clk" output="ff[1:0].clk"/>
<mux name="mux1" input="frac_logic.out[0:0] fabric.reg_in" output="ff[0:0].D">
<delay_constant max="25e-12" in_port="frac_logic.out[0:0]" out_port="ff[0:0].D"/>
<delay_constant max="45e-12" in_port="fabric.reg_in" out_port="ff[0:0].D"/>
</mux>
<mux name="mux2" input="ff[0].Q frac_logic.out[0]" output="fabric.out[0]">
<mux name="mux2" input="frac_logic.out[1:1] ff[0:0].Q" output="ff[1:1].D">
<delay_constant max="25e-12" in_port="frac_logic.out[1:1]" out_port="ff[1:1].D"/>
<delay_constant max="45e-12" in_port="ff[0:0].Q" out_port="ff[1:1].D"/>
</mux>
<mux name="mux3" input="ff[0].Q frac_logic.out[0]" output="fabric.out[0]">
<!-- LUT to output is faster than FF to output on a Stratix IV -->
<delay_constant max="25e-12" in_port="frac_logic.out[0]" out_port="fabric.out[0]"/>
<delay_constant max="45e-12" in_port="ff[0].Q" out_port="fabric.out[0]"/>
</mux>
<mux name="mux3" input="ff[1].Q frac_logic.out[1]" output="fabric.out[1]">
<mux name="mux4" input="ff[1].Q frac_logic.out[1]" output="fabric.out[1]">
<!-- LUT to output is faster than FF to output on a Stratix IV -->
<delay_constant max="25e-12" in_port="frac_logic.out[1]" out_port="fabric.out[1]"/>
<delay_constant max="45e-12" in_port="ff[1].Q" out_port="fabric.out[1]"/>
@ -551,6 +554,7 @@
<mode name="shift_register">
<pb_type name="shift_reg" num_pb="1">
<input name="reg_in" num_pins="1"/>
<output name="ff_out" num_pins="2"/>
<output name="reg_out" num_pins="1"/>
<clock name="clk" num_pins="1"/>
<pb_type name="ff" blif_model=".latch" num_pb="2" class="flipflop">
@ -564,13 +568,16 @@
<direct name="direct1" input="shift_reg.reg_in" output="ff[0].D"/>
<direct name="direct2" input="ff[0].Q" output="ff[1].D"/>
<direct name="direct3" input="ff[1].Q" output="shift_reg.reg_out"/>
<direct name="direct4" input="ff[0].Q" output="shift_reg.ff_out[0:0]"/>
<direct name="direct5" input="ff[1].Q" output="shift_reg.ff_out[1:1]"/>
<complete name="complete1" input="shift_reg.clk" output="ff.clk"/>
</interconnect>
</pb_type>
<interconnect>
<direct name="direct1" input="fle.reg_in" output="shift_reg.reg_in"/>
<direct name="direct2" input="shift_reg.reg_out" output="fle.reg_out"/>
<direct name="direct3" input="fle.clk" output="shift_reg.clk"/>
<direct name="direct3" input="shift_reg.ff_out" output="fle.out"/>
<direct name="direct4" input="fle.clk" output="shift_reg.clk"/>
</interconnect>
</mode>
<!-- Define shift register end -->

View File

@ -0,0 +1,555 @@
<?xml version="1.0" ?>
<architecture name="QL745A" xmlns:xi="http://www.w3.org/2001/XInclude">
<models>
<model name="IO_MACRO">
<input_ports>
<port name="outpad"/>
</input_ports>
<output_ports>
<port name="inpad"/>
</output_ports>
</model>
<model name="openfpga_ff">
<input_ports>
<port clock="QCK" name="D"/>
<port is_clock="1" name="QCK"/>
</input_ports>
<output_ports>
<port clock="QCK" name="CQZ"/>
</output_ports>
</model>
<model name="LUT4">
<input_ports>
<port combinational_sink_ports="O" name="I0"/>
<port combinational_sink_ports="O" name="I1"/>
<port combinational_sink_ports="O" name="I2"/>
<port combinational_sink_ports="O" name="I3"/>
</input_ports>
<output_ports>
<port name="O"/>
</output_ports>
</model>
<model name="logic_1">
<input_ports/>
<output_ports>
<port name="a"/>
</output_ports>
</model>
<model name="logic_0">
<input_ports/>
<output_ports>
<port name="a"/>
</output_ports>
</model>
</models>
<tiles>
<tile capacity="8" name="IO">
<pinlocations pattern="custom">
<loc side="top">
IO.OQI
</loc>
<loc side="right">
IO.IQZ
</loc>
</pinlocations>
<fc in_type="frac" in_val="0.50" out_type="frac" out_val="0.25"/>
<input equivalent="none" name="OQI" num_pins="1"/>
<output equivalent="none" name="IQZ" num_pins="1"/>
<equivalent_sites>
<site pb_type="IO" pin_mapping="custom">
<direct from="IO.IQZ" to="IO.inpad"/>
<direct from="IO.OQI" to="IO.outpad"/>
</site>
</equivalent_sites>
</tile>
<!-- Super Logic Cluster tile -->
<tile area="3900" name="SUPER_LOGIC_CELL">
<pinlocations pattern="custom">
<loc side="top">
SUPER_LOGIC_CELL.L0I
SUPER_LOGIC_CELL.L1I
SUPER_LOGIC_CELL.L2I
SUPER_LOGIC_CELL.L3I
SUPER_LOGIC_CELL.L4I
SUPER_LOGIC_CELL.L5I
SUPER_LOGIC_CELL.L6I
SUPER_LOGIC_CELL.L7I
SUPER_LOGIC_CELL.CI
SUPER_LOGIC_CELL.QCK
</loc>
<loc side="right">
SUPER_LOGIC_CELL.FZ
SUPER_LOGIC_CELL.AQZ
</loc>
<loc side="bottom">
SUPER_LOGIC_CELL.CO
</loc>
</pinlocations>
<fc in_type="frac" in_val="0.5" out_type="frac" out_val="0.25"/>
<clock name="QCK" num_pins="1"/>
<output equivalent="none" name="AQZ" num_pins="8"/>
<output equivalent="none" name="FZ" num_pins="8"/>
<output name="CO" num_pins="1"/>
<!-- Carry output from the last logic cell -->
<input name="CI" num_pins="1"/>
<!-- Carry input to the 1st logic cell -->
<input equivalent="none" name="L7I" num_pins="4"/>
<input equivalent="none" name="L6I" num_pins="4"/>
<input equivalent="none" name="L5I" num_pins="4"/>
<input equivalent="none" name="L4I" num_pins="4"/>
<input equivalent="none" name="L3I" num_pins="4"/>
<input equivalent="none" name="L2I" num_pins="4"/>
<input equivalent="none" name="L1I" num_pins="4"/>
<input equivalent="none" name="L0I" num_pins="4"/>
<!-- Data inputs to each logic cell -->
<equivalent_sites>
<site pb_type="SUPER_LOGIC_CELL" pin_mapping="custom">
<direct from="SUPER_LOGIC_CELL.L0I" to="SUPER_LOGIC_CELL.L0I"/>
<direct from="SUPER_LOGIC_CELL.L1I" to="SUPER_LOGIC_CELL.L1I"/>
<direct from="SUPER_LOGIC_CELL.L2I" to="SUPER_LOGIC_CELL.L2I"/>
<direct from="SUPER_LOGIC_CELL.L3I" to="SUPER_LOGIC_CELL.L3I"/>
<direct from="SUPER_LOGIC_CELL.L4I" to="SUPER_LOGIC_CELL.L4I"/>
<direct from="SUPER_LOGIC_CELL.L5I" to="SUPER_LOGIC_CELL.L5I"/>
<direct from="SUPER_LOGIC_CELL.L6I" to="SUPER_LOGIC_CELL.L6I"/>
<direct from="SUPER_LOGIC_CELL.L7I" to="SUPER_LOGIC_CELL.L7I"/>
<direct from="SUPER_LOGIC_CELL.CI" to="SUPER_LOGIC_CELL.CI"/>
<direct from="SUPER_LOGIC_CELL.CO" to="SUPER_LOGIC_CELL.CO"/>
<direct from="SUPER_LOGIC_CELL.FZ" to="SUPER_LOGIC_CELL.FZ"/>
<direct from="SUPER_LOGIC_CELL.AQZ" to="SUPER_LOGIC_CELL.AQZ"/>
<direct from="SUPER_LOGIC_CELL.QCK" to="SUPER_LOGIC_CELL.QCK"/>
</site>
</equivalent_sites>
</tile>
<tile capacity="1" name="TL-VCC">
<switchbox_locations pattern="all"/>
<pinlocations pattern="custom">
<loc side="right">TL-VCC.VCC</loc>
</pinlocations>
<fc in_type="frac" in_val="0.50" out_type="frac" out_val="0.25"/>
<equivalent_sites>
<site pb_type="LOGIC_1" pin_mapping="custom">
<direct from="TL-VCC.VCC" to="LOGIC_1.a"/>
</site>
</equivalent_sites>
<output name="VCC" num_pins="1"/>
</tile>
<tile capacity="1" name="TL-GND">
<switchbox_locations pattern="all"/>
<pinlocations pattern="custom">
<loc side="right">TL-GND.GND</loc>
</pinlocations>
<fc in_type="frac" in_val="0.50" out_type="frac" out_val="0.25"/>
<equivalent_sites>
<site pb_type="LOGIC_0" pin_mapping="custom">
<direct from="TL-GND.GND" to="LOGIC_0.a"/>
</site>
</equivalent_sites>
<output name="GND" num_pins="1"/>
</tile>
</tiles>
<layout>
<fixed_layout height="12" name="ql-ap3-8x8" width="12">
<!-- Fill the entire grid with empty tiles -->
<region endx="W-1" endy="H-1" priority="1" startx="0" starty="0" type="EMPTY"/>
<!-- Fill with 'SLC' -->
<region endx="W-3" endy="H-3" priority="10" startx="2" starty="2" type="SUPER_LOGIC_CELL"/>
<!-- Top IOs -->
<region endx="W-3" endy="1" priority="20" startx="2" starty="1" type="IO"/>
<!-- Left IOs -->
<region endx="1" endy="H-3" priority="20" startx="1" starty="2" type="IO"/>
<!-- Bottom IOs -->
<region endx="W-3" endy="H-2" priority="20" startx="2" starty="H-2" type="IO"/>
<!-- Right IOs -->
<region endx="W-2" endy="H-3" priority="20" startx="W-2" starty="2" type="IO"/>
<!-- Const sources -->
<single priority="100" type="TL-VCC" x="1" y="1"/>
<single priority="100" type="TL-GND" x="1" y="H-2"/>
</fixed_layout>
</layout>
<device>
<sizing R_minW_nmos="13090.000000" R_minW_pmos="19086.831111"/>
<area grid_logic_tile_area="0"/>
<chan_width_distr>
<x distr="uniform" peak="1.000000"/>
<y distr="uniform" peak="1.000000"/>
</chan_width_distr>
<switch_block fs="3" type="wilton"/>
<connection_block input_switch_name="routing"/>
<default_fc in_type="frac" in_val="0.50" out_type="frac" out_val="0.25"/>
</device>
<switchlist>
<switch Cin="0.0" Cinternal="0.0" Cout="0.0" R="0.0" Tdel="1e-10" buf_size="27.645901" mux_trans_size="2.630740" name="routing" type="mux"/>
</switchlist>
<segmentlist>
<segment Cmetal="22.5e-15" Rmetal="1e-12" freq="1.000000" length="4" name="hop4" type="unidir">
<sb type="pattern">1 1 1 1 1</sb>
<cb type="pattern">1 1 1 1</cb>
<mux name="routing"/>
</segment>
</segmentlist>
<directlist>
<direct from_pin="SUPER_LOGIC_CELL.CO" name="adder_carry" to_pin="SUPER_LOGIC_CELL.CI" x_offset="0" y_offset="-1" z_offset="0"/>
</directlist>
<complexblocklist>
<pb_type name="IO">
<input name="outpad" num_pins="1"/>
<output name="inpad" num_pins="1"/>
<mode name="PHYSICAL">
<pb_type name="PHYSICAL" num_pb="1">
<input name="outpad" num_pins="1"/>
<output name="inpad" num_pins="1"/>
<pb_type blif_model=".subckt IO_MACRO" name="macro" num_pb="1">
<input name="outpad" num_pins="1"/>
<output name="inpad" num_pins="1"/>
</pb_type>
<interconnect>
<direct input="macro.inpad" name="PHYSICAL-inpad" output="PHYSICAL.inpad"/>
<direct input="PHYSICAL.outpad" name="macro-outpad" output="macro.outpad"/>
</interconnect>
</pb_type>
<interconnect>
<direct input="PHYSICAL.inpad" name="IO-inpad" output="IO.inpad"/>
<direct input="IO.outpad" name="PHYSICAL-outpad" output="PHYSICAL.outpad"/>
</interconnect>
</mode>
<mode name="INPUT">
<pb_type name="INPUT" num_pb="1">
<input name="outpad" num_pins="1"/>
<output name="inpad" num_pins="1"/>
<pb_type blif_model=".input" name="i_pad" num_pb="1">
<output name="inpad" num_pins="1"/>
</pb_type>
<interconnect>
<direct input="i_pad.inpad" name="INPUT-inpad" output="INPUT.inpad"/>
</interconnect>
</pb_type>
<interconnect>
<direct input="IO.outpad" name="INPUT-outpad" output="INPUT.outpad"/>
<direct input="INPUT.inpad" name="IO-inpad" output="IO.inpad"/>
</interconnect>
</mode>
<mode name="OUTPUT">
<pb_type name="OUTPUT" num_pb="1">
<input name="outpad" num_pins="1"/>
<output name="inpad" num_pins="1"/>
<pb_type blif_model=".output" name="o_pad" num_pb="1">
<input name="outpad" num_pins="1"/>
</pb_type>
<interconnect>
<direct input="OUTPUT.outpad" name="o_pad-outpad" output="o_pad.outpad"/>
</interconnect>
</pb_type>
<interconnect>
<direct input="OUTPUT.inpad" name="IO-inpad" output="IO.inpad"/>
<direct input="IO.outpad" name="OUTPUT-outpad" output="OUTPUT.outpad"/>
</interconnect>
</mode>
</pb_type>
<pb_type name="SUPER_LOGIC_CELL">
<clock name="QCK" num_pins="1"/>
<input name="CI" num_pins="1"/>
<input name="L0I" num_pins="4"/>
<input name="L1I" num_pins="4"/>
<input name="L2I" num_pins="4"/>
<input name="L3I" num_pins="4"/>
<input name="L4I" num_pins="4"/>
<input name="L5I" num_pins="4"/>
<input name="L6I" num_pins="4"/>
<input name="L7I" num_pins="4"/>
<output name="AQZ" num_pins="8"/>
<output name="CO" num_pins="1"/>
<output name="FZ" num_pins="8"/>
<pb_type name="LC" num_pb="8">
<input name="CI" num_pins="1"/>
<input name="LI" num_pins="4"/>
<input name="QCK" num_pins="1"/>
<output name="AQZ" num_pins="1"/>
<output name="CO" num_pins="1"/>
<output name="FZ" num_pins="1"/>
<mode name="PHYSICAL" disabled_in_pack="true">
<pb_type name="PHYSICAL" num_pb="1">
<input name="CI" num_pins="1"/>
<input name="LI" num_pins="4"/>
<output name="AQZ" num_pins="1"/>
<output name="CO" num_pins="1"/>
<output name="FZ" num_pins="1"/>
<clock name="QCK" num_pins="1"/>
<pb_type name="frac_logic" num_pb="1">
<input name="LI" num_pins="4"/>
<input name="CI" num_pins="1"/>
<output name="O" num_pins="1"/>
<output name="CO" num_pins="1"/>
<!-- Define LUT -->
<pb_type name="frac_lut4" blif_model=".subckt LUT4" num_pb="1">
<input name="in" num_pins="4"/>
<output name="lut3_out" num_pins="1"/>
<output name="lut4_out" num_pins="1"/>
<delay_constant in_port="frac_lut4.in" max="1e-10" out_port="frac_lut4.lut3_out"/>
<delay_constant in_port="frac_lut4.in" max="1e-10" out_port="frac_lut4.lut4_out"/>
</pb_type>
<interconnect>
<direct name="direct1" input="frac_logic.LI[0]" output="frac_lut4.in[0]" />
<direct name="direct2" input="frac_logic.LI[1]" output="frac_lut4.in[1]" />
<mux name="i2_ci" input="frac_logic.LI[2] frac_logic.CI" output="frac_lut4.in[2]"/>
<direct name="direct3" input="frac_logic.LI[3]" output="frac_lut4.in[3]" />
<direct name="direct4" input="frac_lut4.lut4_out" output="frac_logic.O" />
<direct name="direct4" input="frac_lut4.lut3_out" output="frac_logic.CO" />
</interconnect>
</pb_type>
<!-- Define flip-flop with scan-chain capability, DI is the scan-chain data input -->
<pb_type name="ff" blif_model=".subckt openfpga_ff" num_pb="1">
<clock name="QCK" num_pins="1"/>
<input name="D" num_pins="1"/>
<output name="CQZ" num_pins="1"/>
<T_clock_to_Q clock="QCK" max="1e-10" port="ff.CQZ"/>
<T_setup clock="QCK" port="ff.D" value="1e-10"/>
<T_hold clock="QCK" port="ff.D" value="1e-10"/>
</pb_type>
<interconnect>
<direct name="direct_LI0" input="PHYSICAL.LI[0]" output="frac_logic.LI[0]" />
<direct name="direct_LI1" input="PHYSICAL.LI[1]" output="frac_logic.LI[1]" />
<direct name="direct_LI2" input="PHYSICAL.LI[2]" output="frac_logic.LI[2]" />
<direct name="direct_LI3" input="PHYSICAL.LI[3]" output="frac_logic.LI[3]" />
<direct name="direct_CI" input="PHYSICAL.CI" output="frac_logic.CI" />
<direct name="direct_QCK" input="PHYSICAL.QCK" output="ff.QCK" />
<mux name="lut_qdi" input="frac_logic.O PHYSICAL.LI[3]" output="ff.D"/>
<direct name="direct_AQZ" input="ff.CQZ" output="PHYSICAL.AQZ" />
<direct name="direct_FZ" input="frac_logic.O" output="PHYSICAL.FZ" />
<direct name="direct_CO" input="frac_logic.CO" output="PHYSICAL.CO" />
</interconnect>
</pb_type>
<interconnect>
<direct input="PHYSICAL.AQZ" name="LC-AQZ" output="LC.AQZ"/>
<direct input="PHYSICAL.CO" name="LC-CO" output="LC.CO"/>
<direct input="PHYSICAL.FZ" name="LC-FZ" output="LC.FZ"/>
<direct input="LC.CI" name="PHYSICAL-CI" output="PHYSICAL.CI"/>
<direct input="LC.LI" name="PHYSICAL-LI" output="PHYSICAL.LI"/>
<direct input="LC.QCK" name="PHYSICAL-QCK" output="PHYSICAL.QCK"/>
</interconnect>
</mode>
<mode name="DEFAULT">
<pb_type name="DEFAULT" num_pb="1">
<input name="CI" num_pins="1"/>
<input name="LI" num_pins="4"/>
<input name="QCK" num_pins="1"/>
<output name="AQZ" num_pins="1"/>
<output name="CO" num_pins="1"/>
<output name="FZ" num_pins="1"/>
<pb_type blif_model=".subckt openfpga_ff" name="ff" num_pb="1">
<clock name="QCK" num_pins="1"/>
<input name="D" num_pins="1"/>
<output name="CQZ" num_pins="1"/>
<T_clock_to_Q clock="QCK" max="1e-10" port="ff.CQZ"/>
<T_setup clock="QCK" port="ff.D" value="1e-10"/>
<T_hold clock="QCK" port="ff.D" value="1e-10"/>
<metadata>
<meta name="fasm_prefix">BLK2REG</meta>
<meta name="fasm_features"/>
</metadata>
</pb_type>
<pb_type name="lut_part" num_pb="1">
<input name="LI" num_pins="4"/>
<output name="FZ" num_pins="1"/>
<mode name="VPR_LUT4">
<pb_type name="VPR_LUT4" num_pb="1">
<input name="LI" num_pins="4"/>
<output name="FZ" num_pins="1"/>
<pb_type name="lut_inst" num_pb="1">
<input name="in" num_pins="4"/>
<output name="out" num_pins="1"/>
<pb_type blif_model=".names" class="lut" name="lut" num_pb="1">
<input name="in" num_pins="4" port_class="lut_in"/>
<output name="out" num_pins="1" port_class="lut_out"/>
<delay_matrix in_port="lut.in" out_port="lut.out" type="max">
1e-10 1e-10 1e-10 1e-10
</delay_matrix>
</pb_type>
<interconnect>
<direct input="lut_inst.in[0]" name="lut-in[0]" output="lut.in[0]"/>
<direct input="lut_inst.in[1]" name="lut-in[1]" output="lut.in[1]"/>
<direct input="lut_inst.in[2]" name="lut-in[2]" output="lut.in[2]"/>
<direct input="lut_inst.in[3]" name="lut-in[3]" output="lut.in[3]"/>
<direct input="lut.out" name="lut_inst-out" output="lut_inst.out"/>
</interconnect>
<metadata>
<meta name="fasm_prefix">LUT4</meta>
<meta name="fasm_type">LUT</meta>
<meta name="fasm_lut">INIT[15:0] = lut</meta>
</metadata>
</pb_type>
<interconnect>
<direct input="lut_inst.out" name="VPR_LUT4-FZ" output="VPR_LUT4.FZ">
<pack_pattern in_port="lut_inst.out" name="pack-VPR_LUT_to_FF" out_port="VPR_LUT4.FZ"/>
</direct>
<direct input="VPR_LUT4.LI[0]" name="lut_inst-in[0]" output="lut_inst.in[0]"/>
<direct input="VPR_LUT4.LI[1]" name="lut_inst-in[1]" output="lut_inst.in[1]"/>
<direct input="VPR_LUT4.LI[2]" name="lut_inst-in[2]" output="lut_inst.in[2]"/>
<direct input="VPR_LUT4.LI[3]" name="lut_inst-in[3]" output="lut_inst.in[3]"/>
</interconnect>
</pb_type>
<interconnect>
<direct input="lut_part.LI" name="VPR_LUT4-LI" output="VPR_LUT4.LI"/>
<direct input="VPR_LUT4.FZ" name="lut_part-FZ" output="lut_part.FZ"/>
</interconnect>
</mode>
<!--mode name="LUT4">
<pb_type name="LUT4" num_pb="1">
<input name="LI" num_pins="4"/>
<output name="FZ" num_pins="1"/>
<pb_type blif_model=".subckt LUT4" name="lut_inst" num_pb="1">
<input name="I0" num_pins="1"/>
<input name="I1" num_pins="1"/>
<input name="I2" num_pins="1"/>
<input name="I3" num_pins="1"/>
<output name="O" num_pins="1"/>
<delay_constant in_port="lut_inst.I0" max="1e-10" out_port="lut_inst.O"/>
<delay_constant in_port="lut_inst.I1" max="1e-10" out_port="lut_inst.O"/>
<delay_constant in_port="lut_inst.I2" max="1e-10" out_port="lut_inst.O"/>
<delay_constant in_port="lut_inst.I3" max="1e-10" out_port="lut_inst.O"/>
<metadata>
<meta name="fasm_prefix">LUT4</meta>
<meta name="fasm_params">INIT[15:0]=INIT</meta>
</metadata>
</pb_type>
<interconnect>
<direct input="lut_inst.O" name="LUT4-FZ" output="LUT4.FZ">
<pack_pattern in_port="lut_inst.O" name="pack-LUT4_to_FF" out_port="LUT4.FZ"/>
</direct>
<direct input="LUT4.LI[0]" name="lut_inst-I0" output="lut_inst.I0"/>
<direct input="LUT4.LI[1]" name="lut_inst-I1" output="lut_inst.I1"/>
<direct input="LUT4.LI[2]" name="lut_inst-I2" output="lut_inst.I2"/>
<direct input="LUT4.LI[3]" name="lut_inst-I3" output="lut_inst.I3"/>
</interconnect>
</pb_type>
<interconnect>
<direct input="lut_part.LI" name="LUT4-LI" output="LUT4.LI"/>
<direct input="LUT4.FZ" name="lut_part-FZ" output="lut_part.FZ"/>
</interconnect>
</mode-->
</pb_type>
<interconnect>
<direct input="ff.CQZ" name="DEFAULT-AQZ" output="DEFAULT.AQZ"/>
<direct input="lut_part.FZ" name="DEFAULT-FZ" output="DEFAULT.FZ">
<pack_pattern in_port="lut_part.FZ" name="pack-VPR_LUT_to_FF" out_port="DEFAULT.FZ"/>
<!--pack_pattern in_port="lut_part.FZ" name="pack-LUT4_to_FF" out_port="DEFAULT.FZ"/-->
</direct>
<mux input="lut_part.FZ DEFAULT.LI[3]" name="cds_mux" output="ff.D">
<metadata>
<meta name="fasm_mux">
lut_part.FZ : I0
DEFAULT.LI[3] : I1
</meta>
<meta name="type">bel</meta>
<meta name="subtype">routing</meta>
</metadata>
</mux>
<direct input="DEFAULT.QCK" name="ff-QCK" output="ff.QCK"/>
<direct input="DEFAULT.LI[0]" name="lut_part-LI[0]" output="lut_part.LI[0]"/>
<direct input="DEFAULT.LI[1]" name="lut_part-LI[1]" output="lut_part.LI[1]"/>
<direct input="DEFAULT.LI[2]" name="lut_part-LI[2]" output="lut_part.LI[2]"/>
<direct input="DEFAULT.LI[3]" name="lut_part-LI[3]" output="lut_part.LI[3]"/>
</interconnect>
</pb_type>
<interconnect>
<direct input="LC.CI" name="DEFAULT-CI" output="DEFAULT.CI"/>
<direct input="LC.LI" name="DEFAULT-LI" output="DEFAULT.LI"/>
<direct input="LC.QCK" name="DEFAULT-QCK" output="DEFAULT.QCK"/>
<direct input="DEFAULT.AQZ" name="LC-AQZ" output="LC.AQZ"/>
<direct input="DEFAULT.CO" name="LC-CO" output="LC.CO"/>
<direct input="DEFAULT.FZ" name="LC-FZ" output="LC.FZ"/>
</interconnect>
</mode>
<metadata>
<meta name="fasm_prefix">LC0 LC1 LC2 LC3 LC4 LC5 LC6 LC7</meta>
</metadata>
</pb_type>
<interconnect>
<direct input="SUPER_LOGIC_CELL.CI" name="LC[0]-CI" output="LC[0].CI"/>
<direct input="SUPER_LOGIC_CELL.L0I[0]" name="LC[0]-LI[0]" output="LC[0].LI[0]"/>
<direct input="SUPER_LOGIC_CELL.L0I[1]" name="LC[0]-LI[1]" output="LC[0].LI[1]"/>
<direct input="SUPER_LOGIC_CELL.L0I[2]" name="LC[0]-LI[2]" output="LC[0].LI[2]"/>
<direct input="SUPER_LOGIC_CELL.L0I[3]" name="LC[0]-LI[3]" output="LC[0].LI[3]"/>
<direct input="SUPER_LOGIC_CELL.QCK" name="LC[0]-QCK" output="LC[0].QCK"/>
<direct input="LC[0].CO" name="LC[1]-CI" output="LC[1].CI"/>
<direct input="SUPER_LOGIC_CELL.L1I[0]" name="LC[1]-LI[0]" output="LC[1].LI[0]"/>
<direct input="SUPER_LOGIC_CELL.L1I[1]" name="LC[1]-LI[1]" output="LC[1].LI[1]"/>
<direct input="SUPER_LOGIC_CELL.L1I[2]" name="LC[1]-LI[2]" output="LC[1].LI[2]"/>
<direct input="SUPER_LOGIC_CELL.L1I[3]" name="LC[1]-LI[3]" output="LC[1].LI[3]"/>
<direct input="SUPER_LOGIC_CELL.QCK" name="LC[1]-QCK" output="LC[1].QCK"/>
<direct input="LC[1].CO" name="LC[2]-CI" output="LC[2].CI"/>
<direct input="SUPER_LOGIC_CELL.L2I[0]" name="LC[2]-LI[0]" output="LC[2].LI[0]"/>
<direct input="SUPER_LOGIC_CELL.L2I[1]" name="LC[2]-LI[1]" output="LC[2].LI[1]"/>
<direct input="SUPER_LOGIC_CELL.L2I[2]" name="LC[2]-LI[2]" output="LC[2].LI[2]"/>
<direct input="SUPER_LOGIC_CELL.L2I[3]" name="LC[2]-LI[3]" output="LC[2].LI[3]"/>
<direct input="SUPER_LOGIC_CELL.QCK" name="LC[2]-QCK" output="LC[2].QCK"/>
<direct input="LC[2].CO" name="LC[3]-CI" output="LC[3].CI"/>
<direct input="SUPER_LOGIC_CELL.L3I[0]" name="LC[3]-LI[0]" output="LC[3].LI[0]"/>
<direct input="SUPER_LOGIC_CELL.L3I[1]" name="LC[3]-LI[1]" output="LC[3].LI[1]"/>
<direct input="SUPER_LOGIC_CELL.L3I[2]" name="LC[3]-LI[2]" output="LC[3].LI[2]"/>
<direct input="SUPER_LOGIC_CELL.L3I[3]" name="LC[3]-LI[3]" output="LC[3].LI[3]"/>
<direct input="SUPER_LOGIC_CELL.QCK" name="LC[3]-QCK" output="LC[3].QCK"/>
<direct input="LC[3].CO" name="LC[4]-CI" output="LC[4].CI"/>
<direct input="SUPER_LOGIC_CELL.L4I[0]" name="LC[4]-LI[0]" output="LC[4].LI[0]"/>
<direct input="SUPER_LOGIC_CELL.L4I[1]" name="LC[4]-LI[1]" output="LC[4].LI[1]"/>
<direct input="SUPER_LOGIC_CELL.L4I[2]" name="LC[4]-LI[2]" output="LC[4].LI[2]"/>
<direct input="SUPER_LOGIC_CELL.L4I[3]" name="LC[4]-LI[3]" output="LC[4].LI[3]"/>
<direct input="SUPER_LOGIC_CELL.QCK" name="LC[4]-QCK" output="LC[4].QCK"/>
<direct input="LC[4].CO" name="LC[5]-CI" output="LC[5].CI"/>
<direct input="SUPER_LOGIC_CELL.L5I[0]" name="LC[5]-LI[0]" output="LC[5].LI[0]"/>
<direct input="SUPER_LOGIC_CELL.L5I[1]" name="LC[5]-LI[1]" output="LC[5].LI[1]"/>
<direct input="SUPER_LOGIC_CELL.L5I[2]" name="LC[5]-LI[2]" output="LC[5].LI[2]"/>
<direct input="SUPER_LOGIC_CELL.L5I[3]" name="LC[5]-LI[3]" output="LC[5].LI[3]"/>
<direct input="SUPER_LOGIC_CELL.QCK" name="LC[5]-QCK" output="LC[5].QCK"/>
<direct input="LC[5].CO" name="LC[6]-CI" output="LC[6].CI"/>
<direct input="SUPER_LOGIC_CELL.L6I[0]" name="LC[6]-LI[0]" output="LC[6].LI[0]"/>
<direct input="SUPER_LOGIC_CELL.L6I[1]" name="LC[6]-LI[1]" output="LC[6].LI[1]"/>
<direct input="SUPER_LOGIC_CELL.L6I[2]" name="LC[6]-LI[2]" output="LC[6].LI[2]"/>
<direct input="SUPER_LOGIC_CELL.L6I[3]" name="LC[6]-LI[3]" output="LC[6].LI[3]"/>
<direct input="SUPER_LOGIC_CELL.QCK" name="LC[6]-QCK" output="LC[6].QCK"/>
<direct input="LC[6].CO" name="LC[7]-CI" output="LC[7].CI"/>
<direct input="SUPER_LOGIC_CELL.L7I[0]" name="LC[7]-LI[0]" output="LC[7].LI[0]"/>
<direct input="SUPER_LOGIC_CELL.L7I[1]" name="LC[7]-LI[1]" output="LC[7].LI[1]"/>
<direct input="SUPER_LOGIC_CELL.L7I[2]" name="LC[7]-LI[2]" output="LC[7].LI[2]"/>
<direct input="SUPER_LOGIC_CELL.L7I[3]" name="LC[7]-LI[3]" output="LC[7].LI[3]"/>
<direct input="SUPER_LOGIC_CELL.QCK" name="LC[7]-QCK" output="LC[7].QCK"/>
<direct input="LC[0].AQZ" name="SUPER_LOGIC_CELL-AQZ[0]" output="SUPER_LOGIC_CELL.AQZ[0]"/>
<direct input="LC[1].AQZ" name="SUPER_LOGIC_CELL-AQZ[1]" output="SUPER_LOGIC_CELL.AQZ[1]"/>
<direct input="LC[2].AQZ" name="SUPER_LOGIC_CELL-AQZ[2]" output="SUPER_LOGIC_CELL.AQZ[2]"/>
<direct input="LC[3].AQZ" name="SUPER_LOGIC_CELL-AQZ[3]" output="SUPER_LOGIC_CELL.AQZ[3]"/>
<direct input="LC[4].AQZ" name="SUPER_LOGIC_CELL-AQZ[4]" output="SUPER_LOGIC_CELL.AQZ[4]"/>
<direct input="LC[5].AQZ" name="SUPER_LOGIC_CELL-AQZ[5]" output="SUPER_LOGIC_CELL.AQZ[5]"/>
<direct input="LC[6].AQZ" name="SUPER_LOGIC_CELL-AQZ[6]" output="SUPER_LOGIC_CELL.AQZ[6]"/>
<direct input="LC[7].AQZ" name="SUPER_LOGIC_CELL-AQZ[7]" output="SUPER_LOGIC_CELL.AQZ[7]"/>
<direct input="LC[7].CO" name="SUPER_LOGIC_CELL-CO" output="SUPER_LOGIC_CELL.CO"/>
<direct input="LC[0].FZ" name="SUPER_LOGIC_CELL-FZ[0]" output="SUPER_LOGIC_CELL.FZ[0]"/>
<direct input="LC[1].FZ" name="SUPER_LOGIC_CELL-FZ[1]" output="SUPER_LOGIC_CELL.FZ[1]"/>
<direct input="LC[2].FZ" name="SUPER_LOGIC_CELL-FZ[2]" output="SUPER_LOGIC_CELL.FZ[2]"/>
<direct input="LC[3].FZ" name="SUPER_LOGIC_CELL-FZ[3]" output="SUPER_LOGIC_CELL.FZ[3]"/>
<direct input="LC[4].FZ" name="SUPER_LOGIC_CELL-FZ[4]" output="SUPER_LOGIC_CELL.FZ[4]"/>
<direct input="LC[5].FZ" name="SUPER_LOGIC_CELL-FZ[5]" output="SUPER_LOGIC_CELL.FZ[5]"/>
<direct input="LC[6].FZ" name="SUPER_LOGIC_CELL-FZ[6]" output="SUPER_LOGIC_CELL.FZ[6]"/>
<direct input="LC[7].FZ" name="SUPER_LOGIC_CELL-FZ[7]" output="SUPER_LOGIC_CELL.FZ[7]"/>
</interconnect>
</pb_type>
<pb_type name="LOGIC_1">
<output name="a" num_pins="1"/>
<pb_type blif_model=".subckt logic_1" name="logic_1" num_pb="1">
<output name="a" num_pins="1"/>
</pb_type>
<interconnect>
<direct input="logic_1.a" name="LOGIC_1-a" output="LOGIC_1.a"/>
</interconnect>
</pb_type>
<pb_type name="LOGIC_0">
<output name="a" num_pins="1"/>
<pb_type blif_model=".subckt logic_0" name="gnd" num_pb="1">
<output name="a" num_pins="1"/>
</pb_type>
<interconnect>
<direct input="gnd.a" name="LOGIC_0-a" output="LOGIC_0.a"/>
</interconnect>
</pb_type>
</complexblocklist>
</architecture>

View File

@ -25,6 +25,9 @@ Feedback connections between LEs are implemented by the global routing architect
Multi-mode Logic Element
~~~~~~~~~~~~~~~~~~~~~~~~
Physical Implementation
^^^^^^^^^^^^^^^^^^^^^^^
As shown in :numref:`fig_fle_arch`, each Logic Element (LE) consists of
- a fracturable 4-input Look-Up Table (LUT)
@ -40,9 +43,63 @@ As shown in :numref:`fig_fle_arch`, each Logic Element (LE) consists of
The LE can operate in different modes to map logic function efficiently
- 4-input LUT and single FF
- Dual 3-input LUTs and 2 FFs
- 2-bit shift registers
- 4-input LUT and single FF (see details in :ref:`clb_arch_le_single_lut4_mode`).
- Dual 3-input LUTs and 2 FFs (see details in :ref:`clb_arch_le_dual_lut3_mode`).
- 2-bit shift registers (see details in :ref:`clb_arch_le_shift_reg_mode`).
.. _clb_arch_le_single_lut4_mode:
Operating mode: LUT4 + FF
^^^^^^^^^^^^^^^^^^^^^^^^^
The logic element can operate in the Look-Up Table (LUT) + Flip-flop (FF) mode as many classical FPGA logic elements.
As depicted in :numref:`fig_fle_arch_single_lut4_mode`, the fracturable LUT will operate as a single-output 4-input LUT and the upper FF is used to implemented sequential logic.
The operating mode is designed to efficiently implement 4-input functions.
.. _fig_fle_arch_single_lut4_mode:
.. figure:: ./figures/fle_arch_single_lut4_mode.svg
:scale: 30%
:alt: Logic element schematic
Resource usage of the logic element operating in LUT4 + FF mode (Grey blocks and lines are unused resources).
.. _clb_arch_le_dual_lut3_mode:
Operating mode: Dual-LUT3
^^^^^^^^^^^^^^^^^^^^^^^^^
The logic element can operate in the dual Look-Up Tables (LUTs) and Flip-flops (FFs) mode as many modern FPGA logic elements.
As depicted in :numref:`fig_fle_arch_dual_lut3_mode`, the fracturable LUT will operate as two 3-input LUTs with shared inputs.
The operating mode is designed to efficiently implement two 3-input functions with shared input variables. A popular example is the adder function, where the carry logic can be mapped to the upper LUT3 and the sum logic can be mapped to the lower LUT3.
.. _fig_fle_arch_dual_lut3_mode:
.. figure:: ./figures/fle_arch_dual_lut3_mode.svg
:scale: 30%
:alt: Logic element schematic
Resource usage of the logic element operating in dual LUT3 + FFs mode (Grey blocks and lines are unused resources).
.. _clb_arch_le_shift_reg_mode:
Operating mode: Shift-Register
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
As depicted in :numref:`fig_fle_arch_shift_reg_mode`, the Flip-flops (FFs) can be connected in dedicated routing wires to implement high-performance shift registers.
The operating mode is designed to efficiently implement shift registers which are widely used in buffer logic, e.g., FIFOs.
.. _fig_fle_arch_shift_reg_mode:
.. figure:: ./figures/fle_arch_shift_reg_mode.svg
:scale: 30%
:alt: Logic element schematic
Resource usage of the logic element operating in shift register mode (Grey blocks and lines are unused resources).
.. _clb_arch_scan_chain:

View File

@ -18,7 +18,7 @@
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-19 22:55:20 +0000</metadata>
<metadata> Produced by OmniGraffle 7.18\n2020-11-25 23:50:03 +0000</metadata>
<g id="frac_lut4" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>frac_lut4</title>
<g id="frac_lut4_图层_1">
@ -125,7 +125,7 @@
</text>
</g>
<g id="Line_181">
<line x1="438.287" y1="324" x2="526.93593" y2="323.47703" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<line x1="408.22477" y1="323.66667" x2="526.93593" y2="323.47703" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_180">
<line x1="499.3163" y1="346.9114" x2="525.98805" y2="347.2405" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
@ -137,7 +137,7 @@
<line x1="460.0294" y1="358.36674" x2="470.1433" y2="358.36674" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_169">
<path d="M 435.6845 327.798 L 435.5637 347.33333 L 458.141 346.9114" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M 405.65013 327.79804 L 405.72657 359.66667 L 437.5637 359.66667 L 435.5637 347.33333 L 458.141 346.9114" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_168">
<line x1="541.1507" y1="335.3576" x2="553.153" y2="335.3576" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
@ -148,8 +148,8 @@
</text>
</g>
<g id="Graphic_166">
<ellipse cx="435.7046" cy="324.54805" rx="2.58243758861829" ry="2.75000439423018" fill="black"/>
<ellipse cx="435.7046" cy="324.54805" rx="2.58243758861829" ry="2.75000439423018" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<ellipse cx="405.64233" cy="324.54805" rx="2.58243758861832" ry="2.75000439423018" fill="black"/>
<ellipse cx="405.64233" cy="324.54805" rx="2.58243758861832" ry="2.75000439423018" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_187">
<text transform="translate(296.82473 251.7978)" fill="black">
@ -236,7 +236,7 @@
<ellipse cx="405.64233" cy="250.738" rx="2.58243758861832" ry="2.75000439423021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_230">
<line x1="338.24768" y1="324.04805" x2="432.6222" y2="324.53224" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<line x1="338.24768" y1="324.04805" x2="402.55997" y2="324.5252" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_231">
<text transform="translate(510.381 408.67923)" fill="black">
@ -288,6 +288,24 @@
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Graphic_242">
<path d="M 429.816 326.56605 L 429.8208 375.6054 C 429.8208 375.6054 445.12786 368.23534 444.8444 367.95188 C 444.56093 367.6684 444.55615 331.95188 444.55615 331.95188 Z" fill="#417fff"/>
<path d="M 429.816 326.56605 L 429.8208 375.6054 C 429.8208 375.6054 445.12786 368.23534 444.8444 367.95188 C 444.56093 367.6684 444.55615 331.95188 444.55615 331.95188 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_241">
<text transform="translate(430.4519 328.96835)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_243">
<path d="M 429.21986 340.20005 L 429.816 341 L 416 341.3335 L 416 312.86334 L 484.9886 312.79427" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_244">
<ellipse cx="484.99324" cy="313.3301" rx="2.58243758861832" ry="2.7500043942302" fill="black"/>
<ellipse cx="484.99324" cy="313.3301" rx="2.58243758861832" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,311 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="194.75033 200.8125 415.5905 256.87067" width="415.5905" height="256.87067">
<defs>
<font-face font-family="Times New Roman" font-size="15" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="15" panose-1="2 2 7 3 6 5 5 9 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="-1088.8662" x-height="438.96484" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-style="italic" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldItalicMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="12" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-25 23:50:03 +0000</metadata>
<g id="dual_lut3" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>dual_lut3</title>
<g id="dual_lut3_图层_1">
<title>图层 1</title>
<g id="Graphic_419">
<rect x="224.2075" y="221.0625" width="344.69553" height="213.72704" fill="#ffffc0"/>
<path d="M 568.903 221.0625 L 224.2075 221.0625 L 224.2075 434.78954 L 568.903 434.78954 Z" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
</g>
<g id="Line_418">
<line x1="309.323" y1="271.7446" x2="398.93888" y2="270.9375" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_417">
<rect x="250.71644" y="249.0491" width="56.5337" height="139.87187" fill="#417fff"/>
<rect x="250.71644" y="249.0491" width="56.5337" height="139.87187" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(255.71644 310.66643)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="1.5981503" y="13">4-LUT</tspan>
</text>
</g>
<g id="Line_416">
<line x1="224.61372" y1="303.06197" x2="250.96038" y2="303.2143" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_415">
<line x1="224.28864" y1="342.13418" x2="250.6353" y2="342.2865" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_414">
<text transform="translate(201.45638 365.16465)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">in3</tspan>
</text>
</g>
<g id="Graphic_413">
<text transform="translate(202.20032 256.16208)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in0</tspan>
</text>
</g>
<g id="Graphic_412">
<text transform="translate(202.20032 294.7463)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in1</tspan>
</text>
</g>
<g id="Graphic_411">
<text transform="translate(201.45638 333.33053)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in2</tspan>
</text>
</g>
<g id="Graphic_410">
<rect x="486.0066" y="295.55473" width="29.338917" height="32.89894" fill="#0679ff"/>
<rect x="486.0066" y="295.55473" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_409">
<path d="M 541.4659 273.46525 L 553.4682 284.43156 L 553.4682 306.05957 L 541.4659 317.63512 L 541.4659 273.46525" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_408">
<text transform="translate(490.7888 303.6856)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="0" y="13">FF</tspan>
</text>
</g>
<g id="Line_407">
<line x1="414.8631" y1="281.64207" x2="537.6807" y2="282.27083" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_406">
<line x1="516.51346" y1="308.77083" x2="540.518" y2="308.82562" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_405">
<line x1="472.671" y1="308.49654" x2="484.6733" y2="308.49654" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_404">
<line x1="475.8927" y1="319.95187" x2="484.6733" y2="319.95187" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_403">
<line x1="452.73503" y1="308.27083" x2="472.671" y2="308.49654" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_402">
<line x1="555.6807" y1="296.94274" x2="567.683" y2="296.94274" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_401">
<text transform="translate(572.84085 287.1057)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">out[0]</tspan>
</text>
</g>
<g id="Graphic_400">
<path d="M 398.93888 258.34444 L 398.94366 307.3838 C 398.94366 307.3838 414.25074 300.01373 413.9673 299.73026 C 413.6838 299.4468 413.67903 263.73026 413.67903 263.73026 Z" fill="#417fff"/>
<path d="M 398.93888 258.34444 L 398.94366 307.3838 C 398.94366 307.3838 414.25074 300.01373 413.9673 299.73026 C 413.6838 299.4468 413.67903 263.73026 413.67903 263.73026 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_399">
<text transform="translate(400.79194 259.83438)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_398">
<line x1="224.4601" y1="264.05562" x2="250.80676" y2="264.20793" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_397">
<rect x="486.39405" y="364.59793" width="29.338917" height="32.89894" fill="#0679ff"/>
<rect x="486.39405" y="364.59793" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_396">
<path d="M 542.68593 342.8176 L 554.6882 353.78393 L 554.6882 375.41194 L 542.68593 386.9875 L 542.68593 342.8176" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_395">
<text transform="translate(492.0088 373.03796)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="0" y="13">FF</tspan>
</text>
</g>
<g id="Line_394">
<line x1="423.97477" y1="354.60417" x2="542.68593" y2="354.41453" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_393">
<line x1="515.0663" y1="377.8489" x2="541.73805" y2="378.178" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_392">
<line x1="473.891" y1="377.8489" x2="485.8933" y2="377.8489" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_391">
<line x1="475.7794" y1="389.30424" x2="485.8933" y2="389.30424" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_390">
<path d="M 421.40013 358.73554 L 421.47657 390.60417 L 453.3137 390.60417 L 451.3137 378.27083 L 473.891 377.8489" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_389">
<line x1="556.9007" y1="366.2951" x2="568.903" y2="366.2951" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_388">
<text transform="translate(572.84085 356.4581)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">out[1]</tspan>
</text>
</g>
<g id="Graphic_387">
<ellipse cx="421.39233" cy="355.48555" rx="2.5824375886183" ry="2.7500043942302" fill="black"/>
<ellipse cx="421.39233" cy="355.48555" rx="2.5824375886183" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_386">
<text transform="translate(312.57473 282.7353)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">LUT4_out</tspan>
</text>
</g>
<g id="Line_385">
<line x1="224.4601" y1="375.271" x2="250.80676" y2="375.4233" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_384">
<line x1="307.5224" y1="302.3982" x2="398.04696" y2="301.9375" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_383">
<line x1="307.3313" y1="355.44625" x2="353.99768" y2="354.98555" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_382">
<text transform="translate(309.40994 250.47833)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">LUT3_out[0]</tspan>
</text>
</g>
<g id="Graphic_381">
<text transform="translate(311.95583 336.9191)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">LUT3_out[1]</tspan>
</text>
</g>
<g id="Line_380">
<line x1="500.6761" y1="294.55473" x2="500.6761" y2="220.30817" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_379">
<text transform="translate(488.17364 202.24173)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">scin</tspan>
</text>
</g>
<g id="Line_378">
<path d="M 500.91157 363.59797 L 500.7386 343.73177 L 529.97684 343.4375 L 530.2322 308.80215" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_377">
<path d="M 500.89743 434.78954 L 500.89743 414.10417 L 531.8083 414.1079" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_376">
<text transform="translate(483.69894 439.61673)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">scout</tspan>
</text>
</g>
<g id="Line_375">
<line x1="531.85255" y1="434.78954" x2="531.73077" y2="377.8489" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_374">
<ellipse cx="531.22594" cy="378.0483" rx="2.58243758861824" ry="2.7500043942302" fill="black"/>
<ellipse cx="531.22594" cy="378.0483" rx="2.58243758861824" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_373">
<ellipse cx="531.80846" cy="414.1745" rx="2.58243758861826" ry="2.75000439423018" fill="black"/>
<ellipse cx="531.80846" cy="414.1745" rx="2.58243758861826" ry="2.75000439423018" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_372">
<ellipse cx="529.8098" cy="308.8012" rx="2.58243758861826" ry="2.75000439423018" fill="black"/>
<ellipse cx="529.8098" cy="308.8012" rx="2.58243758861826" ry="2.75000439423018" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_371">
<text transform="translate(422.3918 202.5803)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">regin</tspan>
</text>
</g>
<g id="Graphic_370">
<path d="M 449.76406 284.75115 L 449.76885 333.7905 C 449.76885 333.7905 465.07593 326.42044 464.79247 326.13697 C 464.509 325.8535 464.5042 290.13698 464.5042 290.13698 Z" fill="#417fff"/>
<path d="M 449.76406 284.75115 L 449.76885 333.7905 C 449.76885 333.7905 465.07593 326.42044 464.79247 326.13697 C 464.509 325.8535 464.5042 290.13698 464.5042 290.13698 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_369">
<text transform="translate(451.6171 286.21443)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_368">
<path d="M 438.53366 220.64674 L 437.65706 297.92972 L 449.76406 297.60417" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_367">
<path d="M 421.42654 281.67567 L 421.41667 323.61854 L 448.87215 323.60417" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_366">
<ellipse cx="421.39233" cy="281.6755" rx="2.58243758861827" ry="2.75000439423021" fill="black"/>
<ellipse cx="421.39233" cy="281.6755" rx="2.58243758861827" ry="2.75000439423021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_365">
<line x1="353.99768" y1="354.98555" x2="418.30997" y2="355.4627" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_364">
<text transform="translate(526.131 439.61673)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">regout</tspan>
</text>
</g>
<g id="Graphic_363">
<text transform="translate(194.75033 406.9196)" fill="black">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="black" x="0" y="11">CLK</tspan>
</text>
</g>
<g id="Line_362">
<path d="M 224.61372 412.9375 L 475.7794 413.60417 L 475.7794 389.30424" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_361">
<line x1="475.8927" y1="319.95187" x2="475.7794" y2="389.30424" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_360">
<ellipse cx="475.7805" cy="388.6107" rx="2.5824375886183" ry="2.75000439423021" fill="black"/>
<ellipse cx="475.7805" cy="388.6107" rx="2.5824375886183" ry="2.75000439423021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_359">
<path d="M 485.9486 317.15567 L 494.7292 320.45187 L 485.9486 323.74807 Z" fill="#ccc"/>
<path d="M 485.9486 317.15567 L 494.7292 320.45187 L 485.9486 323.74807 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_358">
<path d="M 486.39405 385.8607 L 495.17464 389.1569 L 486.39405 392.4531 Z" fill="#ccc"/>
<path d="M 486.39405 385.8607 L 495.17464 389.1569 L 486.39405 392.4531 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_357">
<path d="M 539.58856 271.0305 L 539.59334 320.06987 C 539.59334 320.06987 554.9004 312.6998 554.61696 312.41633 C 554.3335 312.13286 554.3287 276.41633 554.3287 276.41633 Z" fill="#417fff"/>
<path d="M 539.58856 271.0305 L 539.59334 320.06987 C 539.59334 320.06987 554.9004 312.6998 554.61696 312.41633 C 554.3335 312.13286 554.3287 276.41633 554.3287 276.41633 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_356">
<text transform="translate(541.21094 272.9447)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Graphic_355">
<path d="M 541.4016 342.8176 L 541.4064 391.857 C 541.4064 391.857 556.7135 384.4869 556.43 384.20344 C 556.14654 383.91998 556.14176 348.20344 556.14176 348.20344 Z" fill="#417fff"/>
<path d="M 541.4016 342.8176 L 541.4064 391.857 C 541.4064 391.857 556.7135 384.4869 556.43 384.20344 C 556.14654 383.91998 556.14176 348.20344 556.14176 348.20344 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_354">
<text transform="translate(543.024 344.7318)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Graphic_353">
<path d="M 445.566 357.50355 L 445.5708 406.5429 C 445.5708 406.5429 460.87786 399.17284 460.5944 398.88938 C 460.31093 398.6059 460.30615 362.88938 460.30615 362.88938 Z" fill="#417fff"/>
<path d="M 445.566 357.50355 L 445.5708 406.5429 C 445.5708 406.5429 460.87786 399.17284 460.5944 398.88938 C 460.31093 398.6059 460.30615 362.88938 460.30615 362.88938 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_352">
<text transform="translate(446.2019 359.90585)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_351">
<path d="M 444.96986 371.13755 L 445.566 371.9375 L 431.75 372.271 L 431.75 343.80084 L 500.7386 343.73177" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_350">
<ellipse cx="500.74324" cy="344.2676" rx="2.58243758861829" ry="2.7500043942302" fill="black"/>
<ellipse cx="500.74324" cy="344.2676" rx="2.58243758861829" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,317 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="179.00033 169.875 415.5905 256.87067" width="415.5905" height="256.87067">
<defs>
<font-face font-family="Times New Roman" font-size="15" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="15" panose-1="2 2 7 3 6 5 5 9 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="-1088.8662" x-height="438.96484" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-style="italic" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldItalicMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="12" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-25 23:50:03 +0000</metadata>
<g id="shift_reg" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>shift_reg</title>
<g id="shift_reg_图层_1">
<title>图层 1</title>
<g id="Graphic_310">
<rect x="208.45749" y="190.125" width="344.69553" height="213.72704" fill="#ffffc0"/>
<path d="M 553.153 190.125 L 208.45749 190.125 L 208.45749 403.85204 L 553.153 403.85204 Z" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
</g>
<g id="Line_309">
<line x1="293.573" y1="240.8071" x2="383.18888" y2="240" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_308">
<rect x="234.96644" y="218.1116" width="56.5337" height="139.87187" fill="#9a9a9a"/>
<rect x="234.96644" y="218.1116" width="56.5337" height="139.87187" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(239.96644 279.72893)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="1.5981503" y="13">4-LUT</tspan>
</text>
</g>
<g id="Line_307">
<line x1="208.86372" y1="272.12447" x2="235.21038" y2="272.27678" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_306">
<line x1="208.53864" y1="311.19668" x2="234.8853" y2="311.349" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_305">
<text transform="translate(185.70638 334.22715)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">in3</tspan>
</text>
</g>
<g id="Graphic_304">
<text transform="translate(186.45032 225.22458)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">in0</tspan>
</text>
</g>
<g id="Graphic_303">
<text transform="translate(186.45032 263.8088)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">in1</tspan>
</text>
</g>
<g id="Graphic_302">
<text transform="translate(185.70638 302.39303)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">in2</tspan>
</text>
</g>
<g id="Graphic_301">
<rect x="470.2566" y="264.61723" width="29.338917" height="32.89894" fill="#0679ff"/>
<rect x="470.2566" y="264.61723" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_300">
<path d="M 525.7159 242.52775 L 537.7182 253.49406 L 537.7182 275.12207 L 525.7159 286.69762 L 525.7159 242.52775" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_299">
<text transform="translate(475.0388 272.7481)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="0" y="13">FF</tspan>
</text>
</g>
<g id="Line_298">
<line x1="399.1131" y1="250.70457" x2="521.9307" y2="251.33333" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_297">
<line x1="500.76346" y1="277.83333" x2="524.768" y2="277.88812" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_296">
<line x1="456.921" y1="277.55904" x2="468.9233" y2="277.55904" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_295">
<line x1="460.1427" y1="289.01437" x2="468.9233" y2="289.01437" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_294">
<line x1="436.98503" y1="277.33333" x2="456.921" y2="277.55904" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_293">
<line x1="539.9307" y1="266.00524" x2="551.933" y2="266.00524" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_292">
<text transform="translate(557.09085 256.1682)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">out[0]</tspan>
</text>
</g>
<g id="Graphic_291">
<path d="M 383.18888 227.40694 L 383.19366 276.4463 C 383.19366 276.4463 398.50074 269.07623 398.2173 268.79276 C 397.9338 268.5093 397.92903 232.79276 397.92903 232.79276 Z" fill="#9a9a9a"/>
<path d="M 383.18888 227.40694 L 383.19366 276.4463 C 383.19366 276.4463 398.50074 269.07623 398.2173 268.79276 C 397.9338 268.5093 397.92903 232.79276 397.92903 232.79276 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_290">
<text transform="translate(385.04194 228.89688)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_289">
<line x1="208.7101" y1="233.11812" x2="235.05676" y2="233.27043" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_288">
<rect x="470.64405" y="333.66043" width="29.338917" height="32.89894" fill="#0679ff"/>
<rect x="470.64405" y="333.66043" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_287">
<path d="M 526.93593 311.8801 L 538.9382 322.84643 L 538.9382 344.47444 L 526.93593 356.05 L 526.93593 311.8801" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_286">
<text transform="translate(476.2588 342.10046)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="0" y="13">FF</tspan>
</text>
</g>
<g id="Line_285">
<line x1="408.22477" y1="323.66667" x2="526.93593" y2="323.47703" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_284">
<line x1="499.3163" y1="346.9114" x2="525.98805" y2="347.2405" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_283">
<line x1="458.141" y1="346.9114" x2="470.1433" y2="346.9114" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_282">
<line x1="460.0294" y1="358.36674" x2="470.1433" y2="358.36674" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_281">
<path d="M 405.65013 327.79804 L 405.72657 359.66667 L 437.5637 359.66667 L 435.5637 347.33333 L 458.141 346.9114" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_280">
<line x1="541.1507" y1="335.3576" x2="553.153" y2="335.3576" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_279">
<text transform="translate(557.09085 325.5206)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">out[1]</tspan>
</text>
</g>
<g id="Graphic_278">
<ellipse cx="405.64233" cy="324.54805" rx="2.58243758861832" ry="2.75000439423018" fill="black"/>
<ellipse cx="405.64233" cy="324.54805" rx="2.58243758861832" ry="2.75000439423018" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_277">
<text transform="translate(296.82473 251.7978)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">LUT4_out</tspan>
</text>
</g>
<g id="Line_276">
<line x1="208.7101" y1="344.3335" x2="235.05676" y2="344.4858" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_275">
<line x1="291.7724" y1="271.4607" x2="382.29696" y2="271" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_274">
<line x1="291.5813" y1="324.50875" x2="338.24768" y2="324.04805" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_273">
<text transform="translate(293.65994 219.54083)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">LUT3_out[0]</tspan>
</text>
</g>
<g id="Graphic_272">
<text transform="translate(296.20583 305.9816)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">LUT3_out[1]</tspan>
</text>
</g>
<g id="Line_271">
<line x1="484.9261" y1="263.61723" x2="484.9261" y2="189.37067" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_270">
<text transform="translate(472.42364 171.30423)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">scin</tspan>
</text>
</g>
<g id="Line_269">
<path d="M 485.16157 332.66047 L 484.9886 312.79427 L 514.22684 312.5 L 514.4822 277.86465" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_268">
<path d="M 485.14743 403.85204 L 485.14743 383.16667 L 516.0583 383.1704" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_267">
<text transform="translate(467.94894 408.67923)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">scout</tspan>
</text>
</g>
<g id="Line_266">
<line x1="516.10255" y1="403.85204" x2="515.98077" y2="346.9114" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_265">
<ellipse cx="515.47594" cy="347.1108" rx="2.58243758861826" ry="2.7500043942302" fill="black"/>
<ellipse cx="515.47594" cy="347.1108" rx="2.58243758861826" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_264">
<ellipse cx="516.05846" cy="383.237" rx="2.58243758861826" ry="2.75000439423021" fill="black"/>
<ellipse cx="516.05846" cy="383.237" rx="2.58243758861826" ry="2.75000439423021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_263">
<ellipse cx="514.0598" cy="277.86368" rx="2.58243758861826" ry="2.7500043942302" fill="black"/>
<ellipse cx="514.0598" cy="277.86368" rx="2.58243758861826" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_262">
<text transform="translate(406.6418 171.6428)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">regin</tspan>
</text>
</g>
<g id="Graphic_261">
<path d="M 434.01406 253.81365 L 434.01885 302.853 C 434.01885 302.853 449.32593 295.48294 449.04247 295.19947 C 448.759 294.916 448.7542 259.19948 448.7542 259.19948 Z" fill="#417fff"/>
<path d="M 434.01406 253.81365 L 434.01885 302.853 C 434.01885 302.853 449.32593 295.48294 449.04247 295.19947 C 448.759 294.916 448.7542 259.19948 448.7542 259.19948 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_260">
<text transform="translate(435.8671 255.27693)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_259">
<path d="M 422.78366 189.70924 L 421.90706 266.99222 L 434.01406 266.66667" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_258">
<path d="M 405.67654 250.73817 L 405.66667 292.68104 L 433.12215 292.66667" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_257">
<ellipse cx="405.64233" cy="250.738" rx="2.58243758861832" ry="2.75000439423021" fill="black"/>
<ellipse cx="405.64233" cy="250.738" rx="2.58243758861832" ry="2.75000439423021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_256">
<line x1="338.24768" y1="324.04805" x2="402.55997" y2="324.5252" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_255">
<text transform="translate(510.381 408.67923)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">regout</tspan>
</text>
</g>
<g id="Graphic_254">
<text transform="translate(179.00033 375.9821)" fill="black">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="black" x="0" y="11">CLK</tspan>
</text>
</g>
<g id="Line_253">
<path d="M 208.86372 382 L 460.0294 382.66667 L 460.0294 358.36674" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_252">
<line x1="460.1427" y1="289.01437" x2="460.0294" y2="358.36674" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_251">
<ellipse cx="460.0305" cy="357.6732" rx="2.58243758861832" ry="2.75000439423017" fill="black"/>
<ellipse cx="460.0305" cy="357.6732" rx="2.58243758861832" ry="2.75000439423017" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_250">
<path d="M 470.1986 286.21817 L 478.9792 289.51437 L 470.1986 292.81057 Z" fill="#ccc"/>
<path d="M 470.1986 286.21817 L 478.9792 289.51437 L 470.1986 292.81057 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_249">
<path d="M 470.64405 354.9232 L 479.42464 358.2194 L 470.64405 361.5156 Z" fill="#ccc"/>
<path d="M 470.64405 354.9232 L 479.42464 358.2194 L 470.64405 361.5156 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_248">
<path d="M 523.83856 240.093 L 523.84334 289.13237 C 523.84334 289.13237 539.1504 281.7623 538.86696 281.47883 C 538.5835 281.19536 538.5787 245.47883 538.5787 245.47883 Z" fill="#417fff"/>
<path d="M 523.83856 240.093 L 523.84334 289.13237 C 523.84334 289.13237 539.1504 281.7623 538.86696 281.47883 C 538.5835 281.19536 538.5787 245.47883 538.5787 245.47883 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_247">
<text transform="translate(525.46094 242.0072)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Graphic_246">
<path d="M 525.6516 311.8801 L 525.6564 360.9195 C 525.6564 360.9195 540.9635 353.5494 540.68 353.26594 C 540.39654 352.98248 540.39176 317.26594 540.39176 317.26594 Z" fill="#417fff"/>
<path d="M 525.6516 311.8801 L 525.6564 360.9195 C 525.6564 360.9195 540.9635 353.5494 540.68 353.26594 C 540.39654 352.98248 540.39176 317.26594 540.39176 317.26594 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_245">
<text transform="translate(527.274 313.7943)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Graphic_244">
<path d="M 429.816 326.56605 L 429.8208 375.6054 C 429.8208 375.6054 445.12786 368.23534 444.8444 367.95188 C 444.56093 367.6684 444.55615 331.95188 444.55615 331.95188 Z" fill="#417fff"/>
<path d="M 429.816 326.56605 L 429.8208 375.6054 C 429.8208 375.6054 445.12786 368.23534 444.8444 367.95188 C 444.56093 367.6684 444.55615 331.95188 444.55615 331.95188 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_243">
<text transform="translate(430.4519 328.96835)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_242">
<path d="M 429.21986 340.20005 L 429.816 341 L 416 341.3335 L 416 312.86334 L 484.9886 312.79427" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_241">
<ellipse cx="484.99324" cy="313.3301" rx="2.58243758861829" ry="2.75000439423021" fill="black"/>
<ellipse cx="484.99324" cy="313.3301" rx="2.58243758861829" ry="2.75000439423021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_311">
<line x1="485.16157" y1="332.66047" x2="485.02154" y2="316.57995" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_313">
<path d="M 405.79666 328.3607 L 405.8731 360.22934 L 426.5 359.66667" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,311 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="158.18783 58.5 415.5905 256.87067" width="415.5905" height="256.87067">
<defs>
<font-face font-family="Times New Roman" font-size="15" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="15" panose-1="2 2 7 3 6 5 5 9 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="-1088.8662" x-height="438.96484" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-style="italic" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldItalicMT"/>
</font-face-src>
</font-face>
<font-face font-family="Times New Roman" font-size="12" panose-1="2 2 8 3 7 5 5 2 3 4" units-per-em="1000" underline-position="-108.88672" underline-thickness="95.21484" slope="0" x-height="456.54297" cap-height="662.1094" ascent="891.1133" descent="-216.3086" font-weight="700">
<font-face-src>
<font-face-name name="TimesNewRomanPS-BoldMT"/>
</font-face-src>
</font-face>
</defs>
<metadata> Produced by OmniGraffle 7.18\n2020-11-25 23:50:03 +0000</metadata>
<g id="single_lut4" fill="none" stroke="none" stroke-opacity="1" stroke-dasharray="none" fill-opacity="1">
<title>single_lut4</title>
<g id="single_lut4_图层_1">
<title>图层 1</title>
<g id="Graphic_170">
<rect x="187.64499" y="78.75" width="344.69553" height="213.72704" fill="#ffffc0"/>
<path d="M 532.3405 78.75 L 187.64499 78.75 L 187.64499 292.47704 L 532.3405 292.47704 Z" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
</g>
<g id="Line_169">
<line x1="272.7605" y1="129.43209" x2="362.37638" y2="128.625" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_168">
<rect x="214.15394" y="106.7366" width="56.5337" height="139.87187" fill="#417fff"/>
<rect x="214.15394" y="106.7366" width="56.5337" height="139.87187" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<text transform="translate(219.15394 168.35393)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="1.5981503" y="13">4-LUT</tspan>
</text>
</g>
<g id="Line_167">
<line x1="188.05122" y1="160.74947" x2="214.39788" y2="160.90178" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_166">
<line x1="187.72614" y1="199.82168" x2="214.0728" y2="199.97399" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_165">
<text transform="translate(164.89388 222.85215)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in3</tspan>
</text>
</g>
<g id="Graphic_164">
<text transform="translate(165.63782 113.84958)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in0</tspan>
</text>
</g>
<g id="Graphic_163">
<text transform="translate(165.63782 152.4338)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in1</tspan>
</text>
</g>
<g id="Graphic_162">
<text transform="translate(164.89388 191.01803)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">in2</tspan>
</text>
</g>
<g id="Graphic_161">
<rect x="449.4441" y="153.24223" width="29.338917" height="32.89894" fill="#0679ff"/>
<rect x="449.4441" y="153.24223" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_160">
<path d="M 504.9034 131.15275 L 516.9057 142.11906 L 516.9057 163.74707 L 504.9034 175.32262 L 504.9034 131.15275" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_159">
<text transform="translate(454.2263 161.3731)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="0" y="13">FF</tspan>
</text>
</g>
<g id="Line_158">
<line x1="378.3006" y1="139.32957" x2="501.1182" y2="139.95833" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_157">
<line x1="479.95096" y1="166.45833" x2="503.9555" y2="166.51312" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_156">
<line x1="436.1085" y1="166.18404" x2="448.1108" y2="166.18404" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_155">
<line x1="439.3302" y1="177.63937" x2="448.1108" y2="177.63937" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_154">
<line x1="416.17253" y1="165.95833" x2="436.1085" y2="166.18404" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_153">
<line x1="519.1182" y1="154.63024" x2="531.1205" y2="154.63024" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_152">
<text transform="translate(536.27835 144.79321)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">out[0]</tspan>
</text>
</g>
<g id="Graphic_151">
<path d="M 362.37638 116.03194 L 362.38116 165.0713 C 362.38116 165.0713 377.68824 157.70123 377.4048 157.41776 C 377.1213 157.1343 377.11653 121.41776 377.11653 121.41776 Z" fill="#417fff"/>
<path d="M 362.37638 116.03194 L 362.38116 165.0713 C 362.38116 165.0713 377.68824 157.70123 377.4048 157.41776 C 377.1213 157.1343 377.11653 121.41776 377.11653 121.41776 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_150">
<text transform="translate(364.22944 117.52188)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_149">
<line x1="187.8976" y1="121.74312" x2="214.24426" y2="121.89543" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_148">
<rect x="449.83155" y="222.28543" width="29.338917" height="32.89894" fill="#9a9a9a"/>
<rect x="449.83155" y="222.28543" width="29.338917" height="32.89894" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_147">
<path d="M 506.12343 200.50512 L 518.1257 211.47143 L 518.1257 233.09944 L 506.12343 244.675 L 506.12343 200.50512" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_146">
<text transform="translate(455.4463 230.72546)" fill="white">
<tspan font-family="Times New Roman" font-size="15" font-weight="700" fill="white" x="0" y="13">FF</tspan>
</text>
</g>
<g id="Line_145">
<line x1="387.41227" y1="212.29167" x2="506.12343" y2="212.10203" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_144">
<line x1="478.5038" y1="235.5364" x2="505.17555" y2="235.8655" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_143">
<line x1="437.3285" y1="235.5364" x2="449.3308" y2="235.5364" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_142">
<line x1="439.2169" y1="246.99174" x2="449.3308" y2="246.99174" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_141">
<path d="M 384.83763 216.42304 L 384.91407 248.29167 L 416.7512 248.29167 L 414.7512 235.95833 L 437.3285 235.5364" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_140">
<line x1="520.3382" y1="223.9826" x2="532.3405" y2="223.9826" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_139">
<text transform="translate(536.27835 214.14558)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">out[1]</tspan>
</text>
</g>
<g id="Graphic_138">
<ellipse cx="384.82983" cy="213.17305" rx="2.5824375886183" ry="2.75000439423018" fill="black"/>
<ellipse cx="384.82983" cy="213.17305" rx="2.5824375886183" ry="2.75000439423018" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_137">
<text transform="translate(276.01223 140.4228)" fill="black">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="black" x="0" y="13">LUT4_out</tspan>
</text>
</g>
<g id="Line_136">
<line x1="187.8976" y1="232.9585" x2="214.24426" y2="233.11081" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_135">
<line x1="270.9599" y1="160.0857" x2="361.48446" y2="159.625" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_134">
<line x1="270.7688" y1="213.13375" x2="317.43518" y2="212.67305" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_133">
<text transform="translate(272.84744 108.16583)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">LUT3_out[0]</tspan>
</text>
</g>
<g id="Graphic_132">
<text transform="translate(275.39333 194.60662)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">LUT3_out[1]</tspan>
</text>
</g>
<g id="Line_131">
<line x1="464.1136" y1="152.24223" x2="464.1136" y2="77.99567" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_130">
<text transform="translate(451.61114 59.92923)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">scin</tspan>
</text>
</g>
<g id="Line_129">
<path d="M 464.34907 221.28547 L 464.1761 201.41927 L 493.41434 201.125 L 493.6697 166.48965" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_128">
<path d="M 464.33493 292.47704 L 464.33493 271.79167 L 495.2458 271.79542" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_127">
<text transform="translate(447.13644 297.30423)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">scout</tspan>
</text>
</g>
<g id="Line_126">
<line x1="495.29005" y1="292.47704" x2="495.16827" y2="235.5364" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_125">
<ellipse cx="494.66344" cy="235.7358" rx="2.58243758861829" ry="2.75000439423019" fill="black"/>
<ellipse cx="494.66344" cy="235.7358" rx="2.58243758861829" ry="2.75000439423019" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_124">
<ellipse cx="495.24596" cy="271.862" rx="2.58243758861829" ry="2.75000439423021" fill="black"/>
<ellipse cx="495.24596" cy="271.862" rx="2.58243758861829" ry="2.75000439423021" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_123">
<ellipse cx="493.24733" cy="166.48868" rx="2.58243758861829" ry="2.75000439423019" fill="black"/>
<ellipse cx="493.24733" cy="166.48868" rx="2.58243758861829" ry="2.75000439423019" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_122">
<text transform="translate(385.8293 60.267805)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">regin</tspan>
</text>
</g>
<g id="Graphic_121">
<path d="M 413.20156 142.43865 L 413.20635 191.47802 C 413.20635 191.47802 428.51343 184.10794 428.22997 183.82447 C 427.9465 183.541 427.9417 147.82448 427.9417 147.82448 Z" fill="#417fff"/>
<path d="M 413.20156 142.43865 L 413.20635 191.47802 C 413.20635 191.47802 428.51343 184.10794 428.22997 183.82447 C 427.9465 183.541 427.9417 147.82448 427.9417 147.82448 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_120">
<text transform="translate(415.0546 143.90193)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_119">
<path d="M 401.97116 78.33424 L 401.09456 155.61722 L 413.20156 155.29167" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_118">
<path d="M 384.86404 139.36317 L 384.85417 181.30604 L 412.30965 181.29167" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_117">
<ellipse cx="384.82983" cy="139.363" rx="2.58243758861826" ry="2.7500043942302" fill="black"/>
<ellipse cx="384.82983" cy="139.363" rx="2.58243758861826" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_116">
<line x1="317.43518" y1="212.67305" x2="381.74747" y2="213.15019" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_115">
<text transform="translate(489.5685 297.30423)" fill="#9a9a9a">
<tspan font-family="Times New Roman" font-size="15" font-style="italic" font-weight="700" fill="#9a9a9a" x="0" y="13">regout</tspan>
</text>
</g>
<g id="Graphic_114">
<text transform="translate(158.18783 264.6071)" fill="black">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="black" x="0" y="11">CLK</tspan>
</text>
</g>
<g id="Line_113">
<path d="M 188.05122 270.625 L 439.2169 271.29167 L 439.2169 246.99174" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Line_112">
<line x1="439.3302" y1="177.63937" x2="439.2169" y2="246.99174" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_111">
<ellipse cx="439.218" cy="246.29822" rx="2.58243758861829" ry="2.7500043942302" fill="black"/>
<ellipse cx="439.218" cy="246.29822" rx="2.58243758861829" ry="2.7500043942302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_110">
<path d="M 449.3861 174.84317 L 458.1667 178.13937 L 449.3861 181.43557 Z" fill="#ccc"/>
<path d="M 449.3861 174.84317 L 458.1667 178.13937 L 449.3861 181.43557 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_109">
<path d="M 449.83155 243.54822 L 458.61214 246.84442 L 449.83155 250.1406 Z" fill="#ccc"/>
<path d="M 449.83155 243.54822 L 458.61214 246.84442 L 449.83155 250.1406 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Graphic_108">
<path d="M 503.02606 128.718 L 503.03084 177.75737 C 503.03084 177.75737 518.3379 170.3873 518.05446 170.10383 C 517.771 169.82036 517.7662 134.10383 517.7662 134.10383 Z" fill="#417fff"/>
<path d="M 503.02606 128.718 L 503.03084 177.75737 C 503.03084 177.75737 518.3379 170.3873 518.05446 170.10383 C 517.771 169.82036 517.7662 134.10383 517.7662 134.10383 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_107">
<text transform="translate(504.64844 130.6322)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Graphic_106">
<path d="M 504.8391 200.50512 L 504.8439 249.54448 C 504.8439 249.54448 520.151 242.1744 519.8675 241.89094 C 519.58404 241.60748 519.57926 205.89094 519.57926 205.89094 Z" fill="#9a9a9a"/>
<path d="M 504.8391 200.50512 L 504.8439 249.54448 C 504.8439 249.54448 520.151 242.1744 519.8675 241.89094 C 519.58404 241.60748 519.57926 205.89094 519.57926 205.89094 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_105">
<text transform="translate(506.4615 202.4193)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Graphic_104">
<path d="M 409.0035 215.19105 L 409.0083 264.23042 C 409.0083 264.23042 424.31536 256.86034 424.0319 256.57688 C 423.74843 256.2934 423.74365 220.57688 423.74365 220.57688 Z" fill="#9a9a9a"/>
<path d="M 409.0035 215.19105 L 409.0083 264.23042 C 409.0083 264.23042 424.31536 256.86034 424.0319 256.57688 C 423.74843 256.2934 423.74365 220.57688 423.74365 220.57688 Z" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_103">
<text transform="translate(409.6394 217.59335)" fill="white">
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="0" y="11">M</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="25.509766">U</tspan>
<tspan font-family="Times New Roman" font-size="12" font-weight="700" fill="white" x="1.3300781" y="40.01953">X</tspan>
</text>
</g>
<g id="Line_102">
<path d="M 408.40736 228.82505 L 409.0035 229.625 L 395.1875 229.9585 L 395.1875 201.48834 L 464.1761 201.41927" stroke="#9a9a9a" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</g>
<g id="Graphic_101">
<ellipse cx="464.18074" cy="201.95509" rx="2.58243758861832" ry="2.75000439423018" fill="black"/>
<ellipse cx="464.18074" cy="201.95509" rx="2.58243758861832" ry="2.75000439423018" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -59,6 +59,7 @@ write_verilog_testbench --file ${OPENFPGA_VERILOG_OUTPUT_DIR}/verilog_testbench
--print_top_testbench \
--print_preconfig_top_testbench \
--print_simulation_ini ${OPENFPGA_VERILOG_OUTPUT_DIR}/SimulationDeck/simulation_deck.ini \
--include_signal_init \
--explicit_port_mapping
# Write the SDC to run timing analysis for a mapped FPGA fabric

View File

@ -6,20 +6,21 @@
##################################
# Define environment variables
set SKYWATER_PDK_HOME "../../PDK/skywater-pdk";
set FPGA_NETLIST_HOME "../../FPGA1212_FC_HD_SKY_PNR/fpga_core";
#set FPGA_NETLIST_HOME "../../FPGA1212_FC_HD_SKY_PNR/fpga_top";
set FPGA_NETLIST_HOME "/research/ece/lnis/USERS/DARPA_ERI/Tapeout/Nov2020_Skywater/FPGA1212_FLAT_HD_SKY_PNR/fpga_top";
set SDF_HOME "../../SDF"
#
# Enable reporting ALL the timing paths even those are NOT constrained
set_app_var svr_enable_vpp true
set search_path ". * ${SKYWATER_PDK_HOME}/vendor/synopsys/results/lib/skywater130_fd_sc_hd/db_nldm"
set search_path ". * ${SKYWATER_PDK_HOME}/vendor/synopsys/results/lib/sky130_fd_sc_hd/db_nldm"
set link_path "* sky130_fd_sc_hd__tt_025C_1v80.db"
# Top-level module name
set DESIGN_NAME fpga_core;
set DESIGN_NAME fpga_top;
set FPGA_NETLIST_FILES "fpga_core_icv_in_design.pt.v"
set FPGA_NETLIST_FILES "fpga_top_icv_in_design.pt.v"
##################################
# Read timing libraries
@ -30,15 +31,20 @@ read_db "${SKYWATER_PDK_HOME}/vendor/synopsys/results/lib/sky130_fd_sc_hd/db_nld
read_verilog ${FPGA_NETLIST_HOME}/${FPGA_NETLIST_FILES}
link_design ${DESIGN_NAME}
#########################################
# Setup constraints to break combinational loops
set_disable_timing [get_pins */*/*chan*]
set_disable_timing [get_pins */*/*grid_pin*]
##################################
# Read post-PnR parasitics
read_parasitics ${FPGA_NETLIST_HOME}/fpga_core_icv_in_design.nominal_25.spef
read_parasitics ${FPGA_NETLIST_HOME}/fpga_top_icv_in_design.nominal_25.spef
##################################
# Write sdf file
write_sdf -version 3.0 ${SDF_HOME}/FPGA1212_FC_HD_SKY_PNR/fpga_core_icv_in_design.pt.sdf
write_sdf -version 3.0 ${SDF_HOME}/FPGA1212_FC_HD_SKY_PNR/fpga_top_icv_in_design.pt.sdf
##################################
# Finish and quit
# Comment it out if you want to debug
#exit
exit