created timing annotation file

This commit is contained in:
Andrew Pond 2021-07-20 11:45:35 -06:00
parent afea5bb44c
commit 805053f4be
3 changed files with 255 additions and 192 deletions

View File

@ -22,5 +22,68 @@ LUT3_DELAY: 0.92e-9
LUT3_OUT_TO_FLE_OUT_DELAY: 1.44e-9 LUT3_OUT_TO_FLE_OUT_DELAY: 1.44e-9
LUT4_DELAY: 1.21e-9 LUT4_DELAY: 1.21e-9
LUT4_OUT_TO_FLE_OUT_DELAY: 1.46e-9 LUT4_OUT_TO_FLE_OUT_DELAY: 1.46e-9
LUT5_DELAY: 235e-12 # LUT5_DELAY NOT ACCURATE
LUT5_OUT_TO_FLE_OUT_DELAY: 25e-12 # LUT5_OUT_TO_FLE_OUT_DELAY NOT ACCURATE
LUT6_DELAY: 235e-12 # LUT6_DELAY NOT ACCURATE
LUT6_OUT_TO_FLE_OUT_DELAY: 25e-12 # LUT6_OUT_TO_FLE_OUT_DELAY NOT ACCURATE
REGIN_TO_FF0_DELAY: 1.12e-9 REGIN_TO_FF0_DELAY: 1.12e-9
FF0_TO_FF1_DELAY: 0.56e-9 FF0_TO_FF1_DELAY: 0.56e-9
CROSSBAR_I_TO_FLE_IN_DELAY: 95e-12 # CROSSBAR_I_TO_FLE_IN_DELAY NOT ACCURATE
CROSSBAR_FLE_OUT_TO_FLE_IN_DELAY: 95e-12 # FLE_OUT_TO_FLE_IN_DELAY NOT ACCURATE
CLB_CIN_TO_FLE_CIN: 0.16e-9 # CLB_CIN_TO_FLE_CIN NOT ACCURATE
################# Adder Delays #################
ADDER_LUT4_CIN2OUT_DELAY: 1.21e-9
ADDER_LUT4_CIN2COUT_DELAY: 1.21e-9
ADDER_LUT4_IN2OUT_DELAY: 1.21e-9
ADDER_LUT4_IN2COUT_DELAY: 1.21e-9
ARITHMETIC_ADDER_OUT_TO_ARITHMETIC_OUT: 25e-12
ARITHMETIC_FF_OUT_TO_ARITHMETIC_OUT: 45e-12
################# MULT9 Delays #################
MULT9_A2Y_DELAY_MAX: 1.523e-9
MULT9_A2Y_DELAY_MIN: 0.776e-9
MULT9_B2Y_DELAY_MAX: 1.523e-9
MULT9_B2Y_DELAY_MIN: 0.776e-9
################# MULT18 Delays #################
MULT18_A2Y_DELAY_MAX: 1.523e-9
MULT18_A2Y_DELAY_MIN: 0.776e-9
MULT18_B2Y_DELAY_MAX: 1.523e-9
MULT18_B2Y_DELAY_MIN: 0.776e-9
MULT18_SLICE_A2A_DELAY_MAX: 134e-12 # MULT18_SLICE_A2A_DELAY_MAX NOT ACCURATE
MULT18_SLICE_A2A_DELAY_MIN: 74e-12 # MULT18_SLICE_A2A_DELAY_MIN NOT ACCURATE
MULT18_SLICE_B2B_DELAY_MAX: 134e-12 # MULT18_SLICE_B2B_DELAY_MAX NOT ACCURATE
MULT18_SLICE_B2B_DELAY_MIN: 74e-12 # MULT18_SLICE_B2B_DELAY_MIN NOT ACCURATE
MULT18_SLICE_OUT2OUT_DELAY_MAX: 1.93e-9 # MULT18_SLICE_OUT2OUT_DELAY_MAX NOT ACCURATE
MULT18_SLICE_OUT2OUT_DELAY_MIN: 74e-12 # MULT18_SLICE_OUT2OUT_DELAY_MIN NOT ACCURATE
################# BRAM Delays #################
DPRAM_128x8_CLK_TO_WADDR_DELAY: 509e-12
DPRAM_128x8_CLK_TO_RADDR_DELAY: 509e-12
DPRAM_128x8_CLK_TO_DATA_IN_DELAY: 509e-12
DPRAM_128x8_CLK_TO_WEN_DELAY: 509e-12
DPRAM_128x8_CLK_TO_REN_DELAY: 509e-12
DPRAM_128x8_CLK_TO_DATA_OUT_DELAY: 1.234e-9
MEMORY_WADDR_TO_BRAM_WADDR_DELAY: 132e-12
MEMORY_RADDR_TO_BRAM_RADDR_DELAY: 132e-12
MEMORY_DATA_IN_TO_BRAM_DATA_IN_DELAY: 132e-12
MEMORY_WEN_TO_BRAM_WEN_DELAY: 132e-12
MEMORY_REN_TO_BRAM_REN_DELAY: 132e-12
BRAM_DATA_OUT_TO_MEMORY_DATA_OUT_DELAY: 40e-12

View File

@ -399,10 +399,10 @@
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="outpad" input="io.outpad" output="iopad.outpad"> <direct name="outpad" input="io.outpad" output="iopad.outpad">
<delay_constant max="1.394e-11" in_port="io.outpad" out_port="iopad.outpad"/> <delay_constant max="${OUTPAD_DELAY}" in_port="io.outpad" out_port="iopad.outpad"/>
</direct> </direct>
<direct name="inpad" input="iopad.inpad" output="io.inpad"> <direct name="inpad" input="iopad.inpad" output="io.inpad">
<delay_constant max="4.243e-11" in_port="iopad.inpad" out_port="io.inpad"/> <delay_constant max="${INPAD_DELAY}" in_port="iopad.inpad" out_port="io.inpad"/>
</direct> </direct>
</interconnect> </interconnect>
</mode> </mode>
@ -418,7 +418,7 @@
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="inpad" input="inpad.inpad" output="io.inpad"> <direct name="inpad" input="inpad.inpad" output="io.inpad">
<delay_constant max="4.243e-11" in_port="inpad.inpad" out_port="io.inpad"/> <delay_constant max="${INPAD_DELAY}" in_port="inpad.inpad" out_port="io.inpad"/>
</direct> </direct>
</interconnect> </interconnect>
</mode> </mode>
@ -428,7 +428,7 @@
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="outpad" input="io.outpad" output="outpad.outpad"> <direct name="outpad" input="io.outpad" output="outpad.outpad">
<delay_constant max="1.394e-11" in_port="io.outpad" out_port="outpad.outpad"/> <delay_constant max="${OUTPAD_DELAY}" in_port="io.outpad" out_port="outpad.outpad"/>
</direct> </direct>
</interconnect> </interconnect>
</mode> </mode>
@ -507,10 +507,10 @@
<input name="S" num_pins="1"/> <input name="S" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="ff.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="ff.D" clock="C"/>
<T_setup value="66e-12" port="ff.R" clock="C"/> <T_setup value="${FF_T_SETUP}" port="ff.R" clock="C"/>
<T_setup value="66e-12" port="ff.S" clock="C"/> <T_setup value="${FF_T_SETUP}" port="ff.S" clock="C"/>
<T_clock_to_Q max="124e-12" port="ff.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="ff.Q" clock="C"/>
</pb_type> </pb_type>
<!-- Define adders --> <!-- Define adders -->
<pb_type name="adder" blif_model=".subckt adder" num_pb="2"> <pb_type name="adder" blif_model=".subckt adder" num_pb="2">
@ -519,12 +519,12 @@
<input name="cin" num_pins="1"/> <input name="cin" num_pins="1"/>
<output name="cout" num_pins="1"/> <output name="cout" num_pins="1"/>
<output name="sumout" num_pins="1"/> <output name="sumout" num_pins="1"/>
<delay_constant max="0.3e-9" in_port="adder.a" out_port="adder.sumout"/> <delay_constant max="${ADDER_LUT4_IN2OUT_DELAY}" in_port="adder.a" out_port="adder.sumout"/>
<delay_constant max="0.3e-9" in_port="adder.b" out_port="adder.sumout"/> <delay_constant max="${ADDER_LUT4_IN2OUT_DELAY}" in_port="adder.b" out_port="adder.sumout"/>
<delay_constant max="0.3e-9" in_port="adder.cin" out_port="adder.sumout"/> <delay_constant max="${ADDER_LUT4_CIN2OUT_DELAY}" in_port="adder.cin" out_port="adder.sumout"/>
<delay_constant max="0.3e-9" in_port="adder.a" out_port="adder.cout"/> <delay_constant max="${ADDER_LUT4_IN2COUT_DELAY}" in_port="adder.a" out_port="adder.cout"/>
<delay_constant max="0.3e-9" in_port="adder.b" out_port="adder.cout"/> <delay_constant max="${ADDER_LUT4_IN2COUT_DELAY}" in_port="adder.b" out_port="adder.cout"/>
<delay_constant max="0.01e-9" in_port="adder.cin" out_port="adder.cout"/> <delay_constant max="${ADDER_LUT4_CIN2COUT_DELAY}" in_port="adder.cin" out_port="adder.cout"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="fabric.in" output="frac_logic.in"/> <direct name="direct1" input="fabric.in" output="frac_logic.in"/>
@ -541,13 +541,13 @@
<complete name="direct12" input="fabric.set" output="ff[1:0].S"/> <complete name="direct12" input="fabric.set" output="ff[1:0].S"/>
<mux name="mux1" input="adder[0].sumout ff[0].Q frac_logic.out[0]" output="fabric.out[0]"> <mux name="mux1" input="adder[0].sumout ff[0].Q frac_logic.out[0]" output="fabric.out[0]">
<!-- LUT to output is faster than FF to output on a Stratix IV --> <!-- 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="${LUT_OUT0_TO_FLE_OUT_DELAY}" 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]"/> <delay_constant max="${FF0_Q_TO_FLE_OUT_DELAY}" in_port="ff[0].Q" out_port="fabric.out[0]"/>
</mux> </mux>
<mux name="mux2" input="adder[1].sumout ff[1].Q frac_logic.out[1]" output="fabric.out[1]"> <mux name="mux2" input="adder[1].sumout ff[1].Q frac_logic.out[1]" output="fabric.out[1]">
<!-- LUT to output is faster than FF to output on a Stratix IV --> <!-- 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="${LUT_OUT1_TO_FLE_OUT_DELAY}" 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]"/> <delay_constant max="${FF1_Q_TO_FLE_OUT_DELAY}" in_port="ff[1].Q" out_port="fabric.out[1]"/>
</mux> </mux>
</interconnect> </interconnect>
</pb_type> </pb_type>
@ -584,11 +584,11 @@
398e-12 398e-12
--> -->
<delay_matrix type="max" in_port="lut5.in" out_port="lut5.out"> <delay_matrix type="max" in_port="lut5.in" out_port="lut5.out">
235e-12 ${LUT5_DELAY}
235e-12 ${LUT5_DELAY}
235e-12 ${LUT5_DELAY}
235e-12 ${LUT5_DELAY}
235e-12 ${LUT5_DELAY}
</delay_matrix> </delay_matrix>
</pb_type> </pb_type>
<!-- Define multi-mode flip-flop --> <!-- Define multi-mode flip-flop -->
@ -603,8 +603,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="clk" num_pins="1" port_class="clock"/> <clock name="clk" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="latch.D" clock="clk"/> <T_setup value="${FF_T_SETUP}" port="latch.D" clock="clk"/>
<T_clock_to_Q max="124e-12" port="latch.Q" clock="clk"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="latch.Q" clock="clk"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="latch.D"/> <direct name="direct1" input="ff.D" output="latch.D"/>
@ -617,8 +617,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dff.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dff.D" clock="C"/>
<T_clock_to_Q max="124e-12" port="dff.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dff.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dff.D"/> <direct name="direct1" input="ff.D" output="dff.D"/>
@ -632,9 +632,9 @@
<input name="R" num_pins="1"/> <input name="R" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffr.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.D" clock="C"/>
<T_setup value="66e-12" port="dffr.R" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.R" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffr.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffr.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffr.D"/> <direct name="direct1" input="ff.D" output="dffr.D"/>
@ -649,9 +649,9 @@
<input name="RN" num_pins="1"/> <input name="RN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffrn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.D" clock="C"/>
<T_setup value="66e-12" port="dffrn.RN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.RN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffrn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffrn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffrn.D"/> <direct name="direct1" input="ff.D" output="dffrn.D"/>
@ -666,9 +666,9 @@
<input name="S" num_pins="1"/> <input name="S" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffs.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.D" clock="C"/>
<T_setup value="66e-12" port="dffs.S" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.S" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffs.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffs.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffs.D"/> <direct name="direct1" input="ff.D" output="dffs.D"/>
@ -683,9 +683,9 @@
<input name="SN" num_pins="1"/> <input name="SN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffsn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.D" clock="C"/>
<T_setup value="66e-12" port="dffsn.SN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.SN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffsn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffsn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffsn.D"/> <direct name="direct1" input="ff.D" output="dffsn.D"/>
@ -704,8 +704,8 @@
<direct name="direct4" input="ble5.reset" output="ff.R"/> <direct name="direct4" input="ble5.reset" output="ff.R"/>
<direct name="direct5" input="ble5.set" output="ff.S"/> <direct name="direct5" input="ble5.set" output="ff.S"/>
<mux name="mux1" input="ff.Q lut5.out" output="ble5.out"> <mux name="mux1" input="ff.Q lut5.out" output="ble5.out">
<delay_constant max="25e-12" in_port="lut5.out" out_port="ble5.out"/> <delay_constant max="${LUT5_OUT_TO_FLE_OUT_DELAY}" in_port="lut5.out" out_port="ble5.out"/>
<delay_constant max="45e-12" in_port="ff.Q" out_port="ble5.out"/> <delay_constant max="${FF0_Q_TO_FLE_OUT_DELAY}" in_port="ff.Q" out_port="ble5.out"/>
</mux> </mux>
</interconnect> </interconnect>
</pb_type> </pb_type>
@ -742,10 +742,10 @@
263e-12 263e-12
--> -->
<delay_matrix type="max" in_port="lut4.in" out_port="lut4.out"> <delay_matrix type="max" in_port="lut4.in" out_port="lut4.out">
195e-12 ${LUT4_DELAY}
195e-12 ${LUT4_DELAY}
195e-12 ${LUT4_DELAY}
195e-12 ${LUT4_DELAY}
</delay_matrix> </delay_matrix>
</pb_type> </pb_type>
<pb_type name="adder" blif_model=".subckt adder" num_pb="1"> <pb_type name="adder" blif_model=".subckt adder" num_pb="1">
@ -754,12 +754,12 @@
<input name="cin" num_pins="1"/> <input name="cin" num_pins="1"/>
<output name="cout" num_pins="1"/> <output name="cout" num_pins="1"/>
<output name="sumout" num_pins="1"/> <output name="sumout" num_pins="1"/>
<delay_constant max="0.3e-9" in_port="adder.a" out_port="adder.sumout"/> <delay_constant max="${ADDER_LUT4_IN2OUT_DELAY}" in_port="adder.a" out_port="adder.sumout"/>
<delay_constant max="0.3e-9" in_port="adder.b" out_port="adder.sumout"/> <delay_constant max="${ADDER_LUT4_IN2OUT_DELAY}" in_port="adder.b" out_port="adder.sumout"/>
<delay_constant max="0.3e-9" in_port="adder.cin" out_port="adder.sumout"/> <delay_constant max="${ADDER_LUT4_CIN2OUT_DELAY}" in_port="adder.cin" out_port="adder.sumout"/>
<delay_constant max="0.3e-9" in_port="adder.a" out_port="adder.cout"/> <delay_constant max="${ADDER_LUT4_IN2COUT_DELAY}" in_port="adder.a" out_port="adder.cout"/>
<delay_constant max="0.3e-9" in_port="adder.b" out_port="adder.cout"/> <delay_constant max="${ADDER_LUT4_IN2COUT_DELAY}" in_port="adder.b" out_port="adder.cout"/>
<delay_constant max="0.01e-9" in_port="adder.cin" out_port="adder.cout"/> <delay_constant max="${ADDER_LUT4_CIN2COUT_DELAY}" in_port="adder.cin" out_port="adder.cout"/>
</pb_type> </pb_type>
<!-- Define multi-mode flip-flop --> <!-- Define multi-mode flip-flop -->
<pb_type name="ff" num_pb="1"> <pb_type name="ff" num_pb="1">
@ -773,8 +773,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="clk" num_pins="1" port_class="clock"/> <clock name="clk" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="latch.D" clock="clk"/> <T_setup value="${FF_T_SETUP}" port="latch.D" clock="clk"/>
<T_clock_to_Q max="124e-12" port="latch.Q" clock="clk"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="latch.Q" clock="clk"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="latch.D"/> <direct name="direct1" input="ff.D" output="latch.D"/>
@ -787,8 +787,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dff.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dff.D" clock="C"/>
<T_clock_to_Q max="124e-12" port="dff.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dff.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dff.D"/> <direct name="direct1" input="ff.D" output="dff.D"/>
@ -802,9 +802,9 @@
<input name="R" num_pins="1"/> <input name="R" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffr.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.D" clock="C"/>
<T_setup value="66e-12" port="dffr.R" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.R" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffr.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffr.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffr.D"/> <direct name="direct1" input="ff.D" output="dffr.D"/>
@ -819,9 +819,9 @@
<input name="RN" num_pins="1"/> <input name="RN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffrn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.D" clock="C"/>
<T_setup value="66e-12" port="dffrn.RN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.RN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffrn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffrn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffrn.D"/> <direct name="direct1" input="ff.D" output="dffrn.D"/>
@ -836,9 +836,9 @@
<input name="S" num_pins="1"/> <input name="S" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffs.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.D" clock="C"/>
<T_setup value="66e-12" port="dffs.S" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.S" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffs.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffs.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffs.D"/> <direct name="direct1" input="ff.D" output="dffs.D"/>
@ -853,9 +853,9 @@
<input name="SN" num_pins="1"/> <input name="SN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffsn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.D" clock="C"/>
<T_setup value="66e-12" port="dffsn.SN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.SN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffsn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffsn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffsn.D"/> <direct name="direct1" input="ff.D" output="dffsn.D"/>
@ -885,8 +885,8 @@
<pack_pattern name="chain" in_port="adder.cout" out_port="arithmetic.cout"/> <pack_pattern name="chain" in_port="adder.cout" out_port="arithmetic.cout"/>
</direct> </direct>
<mux name="sumout" input="ff.Q adder.sumout" output="arithmetic.out"> <mux name="sumout" input="ff.Q adder.sumout" output="arithmetic.out">
<delay_constant max="25e-12" in_port="adder.sumout" out_port="arithmetic.out"/> <delay_constant max="${ARITHMETIC_ADDER_OUT_TO_ARITHMETIC_OUT}" in_port="adder.sumout" out_port="arithmetic.out"/>
<delay_constant max="45e-12" in_port="ff.Q" out_port="arithmetic.out"/> <delay_constant max="${ARITHMETIC_FF_OUT_TO_ARITHMETIC_OUT}" in_port="ff.Q" out_port="arithmetic.out"/>
</mux> </mux>
</interconnect> </interconnect>
</pb_type> </pb_type>
@ -930,12 +930,12 @@
397e-12 397e-12
--> -->
<delay_matrix type="max" in_port="lut6.in" out_port="lut6.out"> <delay_matrix type="max" in_port="lut6.in" out_port="lut6.out">
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
</delay_matrix> </delay_matrix>
</pb_type> </pb_type>
<!-- Define multi-mode flip-flop --> <!-- Define multi-mode flip-flop -->
@ -950,8 +950,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="clk" num_pins="1" port_class="clock"/> <clock name="clk" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="latch.D" clock="clk"/> <T_setup value="${FF_T_SETUP}" port="latch.D" clock="clk"/>
<T_clock_to_Q max="124e-12" port="latch.Q" clock="clk"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="latch.Q" clock="clk"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="latch.D"/> <direct name="direct1" input="ff.D" output="latch.D"/>
@ -964,8 +964,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dff.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dff.D" clock="C"/>
<T_clock_to_Q max="124e-12" port="dff.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dff.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dff.D"/> <direct name="direct1" input="ff.D" output="dff.D"/>
@ -979,9 +979,9 @@
<input name="R" num_pins="1"/> <input name="R" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffr.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.D" clock="C"/>
<T_setup value="66e-12" port="dffr.R" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.R" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffr.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffr.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffr.D"/> <direct name="direct1" input="ff.D" output="dffr.D"/>
@ -996,9 +996,9 @@
<input name="RN" num_pins="1"/> <input name="RN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffrn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.D" clock="C"/>
<T_setup value="66e-12" port="dffrn.RN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.RN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffrn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffrn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffrn.D"/> <direct name="direct1" input="ff.D" output="dffrn.D"/>
@ -1013,9 +1013,9 @@
<input name="S" num_pins="1"/> <input name="S" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffs.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.D" clock="C"/>
<T_setup value="66e-12" port="dffs.S" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.S" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffs.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffs.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffs.D"/> <direct name="direct1" input="ff.D" output="dffs.D"/>
@ -1030,9 +1030,9 @@
<input name="SN" num_pins="1"/> <input name="SN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffsn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.D" clock="C"/>
<T_setup value="66e-12" port="dffsn.SN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.SN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffsn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffsn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffsn.D"/> <direct name="direct1" input="ff.D" output="dffsn.D"/>
@ -1051,8 +1051,8 @@
<direct name="direct4" input="ble6.reset" output="ff.R"/> <direct name="direct4" input="ble6.reset" output="ff.R"/>
<direct name="direct5" input="ble6.set" output="ff.S"/> <direct name="direct5" input="ble6.set" output="ff.S"/>
<mux name="mux1" input="ff.Q lut6.out" output="ble6.out"> <mux name="mux1" input="ff.Q lut6.out" output="ble6.out">
<delay_constant max="25e-12" in_port="lut6.out" out_port="ble6.out"/> <delay_constant max="${LUT6_OUT_TO_FLE_OUT_DELAY}" in_port="lut6.out" out_port="ble6.out"/>
<delay_constant max="45e-12" in_port="ff.Q" out_port="ble6.out"/> <delay_constant max="${FF0_Q_TO_FLE_OUT_DELAY}" in_port="ff.Q" out_port="ble6.out"/>
</mux> </mux>
</interconnect> </interconnect>
</pb_type> </pb_type>
@ -1077,8 +1077,8 @@
25 ps to do so, we subtract 25 ps from the 100 ps delay of a feedback 25 ps to do so, we subtract 25 ps from the 100 ps delay of a feedback
to get the part that should be marked on the crossbar. --> to get the part that should be marked on the crossbar. -->
<complete name="crossbar" input="clb.I fle[9:0].out" output="fle[9:0].in"> <complete name="crossbar" input="clb.I fle[9:0].out" output="fle[9:0].in">
<delay_constant max="95e-12" in_port="clb.I" out_port="fle[9:0].in"/> <delay_constant max="${CROSSBAR_I_TO_FLE_IN_DELAY}" in_port="clb.I" out_port="fle[9:0].in"/>
<delay_constant max="75e-12" in_port="fle[9:0].out" out_port="fle[9:0].in"/> <delay_constant max="${CROSSBAR_FLE_OUT_TO_FLE_IN_DELAY}" in_port="fle[9:0].out" out_port="fle[9:0].in"/>
</complete> </complete>
<complete name="clks" input="clb.clk" output="fle[9:0].clk"> <complete name="clks" input="clb.clk" output="fle[9:0].clk">
@ -1097,7 +1097,7 @@
<!-- Carry chain links --> <!-- Carry chain links -->
<direct name="carry_in" input="clb.cin" output="fle[0:0].cin"> <direct name="carry_in" input="clb.cin" output="fle[0:0].cin">
<!-- Put all inter-block carry chain delay on this one edge --> <!-- Put all inter-block carry chain delay on this one edge -->
<delay_constant max="0.16e-9" in_port="clb.cin" out_port="fle[0:0].cin"/> <delay_constant max="${CLB_CIN_TO_FLE_CIN}" in_port="clb.cin" out_port="fle[0:0].cin"/>
<pack_pattern name="chain" in_port="clb.cin" out_port="fle[0:0].cin"/> <pack_pattern name="chain" in_port="clb.cin" out_port="fle[0:0].cin"/>
</direct> </direct>
<direct name="carry_out" input="fle[9:9].cout" output="clb.cout"> <direct name="carry_out" input="fle[9:9].cout" output="clb.cout">
@ -1123,8 +1123,8 @@
<input name="A" num_pins="18"/> <input name="A" num_pins="18"/>
<input name="B" num_pins="18"/> <input name="B" num_pins="18"/>
<output name="Y" num_pins="36"/> <output name="Y" num_pins="36"/>
<delay_constant max="1.523e-9" min="0.776e-9" in_port="mult_18x18.A" out_port="mult_18x18.Y"/> <delay_constant max="${MULT18_A2Y_DELAY_MAX}" min="${MULT18_A2Y_DELAY_MIN}" in_port="mult_18x18.A" out_port="mult_18x18.Y"/>
<delay_constant max="1.523e-9" min="0.776e-9" in_port="mult_18x18.B" out_port="mult_18x18.Y"/> <delay_constant max="${MULT18_B2Y_DELAY_MAX}" min="${MULT18_B2Y_DELAY_MIN}" in_port="mult_18x18.B" out_port="mult_18x18.Y"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="a2a" input="mult_18x18_slice.A_cfg" output="mult_18x18.A"> <direct name="a2a" input="mult_18x18_slice.A_cfg" output="mult_18x18.A">
@ -1147,13 +1147,13 @@
The interconnect difference for DSP blocks is 0.5523, which leads to a minimum delay of 74 ps The interconnect difference for DSP blocks is 0.5523, which leads to a minimum delay of 74 ps
--> -->
<direct name="a2a" input="mult_18.a" output="mult_18x18_slice.A_cfg"> <direct name="a2a" input="mult_18.a" output="mult_18x18_slice.A_cfg">
<delay_constant max="134e-12" min="74e-12" in_port="mult_18.a" out_port="mult_18x18_slice.A_cfg"/> <delay_constant max="${MULT18_SLICE_A2A_DELAY_MAX}" min="${MULT18_SLICE_A2A_DELAY_MAX}" in_port="mult_18.a" out_port="mult_18x18_slice.A_cfg"/>
</direct> </direct>
<direct name="b2b" input="mult_18.b" output="mult_18x18_slice.B_cfg"> <direct name="b2b" input="mult_18.b" output="mult_18x18_slice.B_cfg">
<delay_constant max="134e-12" min="74e-12" in_port="mult_18.b" out_port="mult_18x18_slice.B_cfg"/> <delay_constant max="${MULT18_SLICE_B2B_DELAY_MAX}" min="${MULT18_SLICE_B2B_DELAY_MIN}" in_port="mult_18.b" out_port="mult_18x18_slice.B_cfg"/>
</direct> </direct>
<direct name="out2out" input="mult_18x18_slice.OUT_cfg" output="mult_18.out"> <direct name="out2out" input="mult_18x18_slice.OUT_cfg" output="mult_18.out">
<delay_constant max="1.93e-9" min="74e-12" in_port="mult_18x18_slice.OUT_cfg" out_port="mult_18.out"/> <delay_constant max="${MULT18_SLICE_OUT2OUT_DELAY_MAX}" min="${MULT18_SLICE_OUT2OUT_DELAY_MIN}" in_port="mult_18x18_slice.OUT_cfg" out_port="mult_18.out"/>
</direct> </direct>
</interconnect> </interconnect>
</mode> </mode>
@ -1183,12 +1183,12 @@
<input name="ren" num_pins="1" port_class="write_en2"/> <input name="ren" num_pins="1" port_class="write_en2"/>
<output name="data_out" num_pins="8" port_class="data_out1"/> <output name="data_out" num_pins="8" port_class="data_out1"/>
<clock name="clk" num_pins="1" port_class="clock"/> <clock name="clk" num_pins="1" port_class="clock"/>
<T_setup value="509e-12" port="mem_128x8_dp.waddr" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_WADDR_DELAY}" port="mem_128x8_dp.waddr" clock="clk"/>
<T_setup value="509e-12" port="mem_128x8_dp.raddr" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_RADDR_DELAY}" port="mem_128x8_dp.raddr" clock="clk"/>
<T_setup value="509e-12" port="mem_128x8_dp.data_in" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_DATA_IN_DELAY}" port="mem_128x8_dp.data_in" clock="clk"/>
<T_setup value="509e-12" port="mem_128x8_dp.wen" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_WEN_DELAY}" port="mem_128x8_dp.wen" clock="clk"/>
<T_setup value="509e-12" port="mem_128x8_dp.ren" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_REN_DELAY}" port="mem_128x8_dp.ren" clock="clk"/>
<T_clock_to_Q max="1.234e-9" port="mem_128x8_dp.data_out" clock="clk"/> <T_clock_to_Q max="${DPRAM_128x8_CLK_TO_DATA_OUT_DELAY}" port="mem_128x8_dp.data_out" clock="clk"/>
<power method="pin-toggle"> <power method="pin-toggle">
<port name="clk" energy_per_toggle="17.9e-12"/> <port name="clk" energy_per_toggle="17.9e-12"/>
<static_power power_per_instance="0.0"/> <static_power power_per_instance="0.0"/>
@ -1196,22 +1196,22 @@
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="waddress" input="memory.waddr" output="mem_128x8_dp.waddr"> <direct name="waddress" input="memory.waddr" output="mem_128x8_dp.waddr">
<delay_constant max="132e-12" in_port="memory.waddr" out_port="mem_128x8_dp.waddr"/> <delay_constant max="${MEMORY_WADDR_TO_BRAM_WADDR_DELAY}" in_port="memory.waddr" out_port="mem_128x8_dp.waddr"/>
</direct> </direct>
<direct name="raddress" input="memory.raddr" output="mem_128x8_dp.raddr"> <direct name="raddress" input="memory.raddr" output="mem_128x8_dp.raddr">
<delay_constant max="132e-12" in_port="memory.raddr" out_port="mem_128x8_dp.raddr"/> <delay_constant max="${MEMORY_RADDR_TO_BRAM_RADDR_DELAY}" in_port="memory.raddr" out_port="mem_128x8_dp.raddr"/>
</direct> </direct>
<direct name="data_input" input="memory.data_in" output="mem_128x8_dp.data_in"> <direct name="data_input" input="memory.data_in" output="mem_128x8_dp.data_in">
<delay_constant max="132e-12" in_port="memory.data_in" out_port="mem_128x8_dp.data_in"/> <delay_constant max="${MEMORY_DATA_IN_TO_BRAM_DATA_IN_DELAY}" in_port="memory.data_in" out_port="mem_128x8_dp.data_in"/>
</direct> </direct>
<direct name="writeen" input="memory.wen" output="mem_128x8_dp.wen"> <direct name="writeen" input="memory.wen" output="mem_128x8_dp.wen">
<delay_constant max="132e-12" in_port="memory.wen" out_port="mem_128x8_dp.wen"/> <delay_constant max="${MEMORY_WEN_TO_BRAM_WEN_DELAY}" in_port="memory.wen" out_port="mem_128x8_dp.wen"/>
</direct> </direct>
<direct name="readen" input="memory.ren" output="mem_128x8_dp.ren"> <direct name="readen" input="memory.ren" output="mem_128x8_dp.ren">
<delay_constant max="132e-12" in_port="memory.ren" out_port="mem_128x8_dp.ren"/> <delay_constant max="${MEMORY_REN_TO_BRAM_REN_DELAY}" in_port="memory.ren" out_port="mem_128x8_dp.ren"/>
</direct> </direct>
<direct name="dataout" input="mem_128x8_dp.data_out" output="memory.data_out"> <direct name="dataout" input="mem_128x8_dp.data_out" output="memory.data_out">
<delay_constant max="40e-12" in_port="mem_128x8_dp.data_out" out_port="memory.data_out"/> <delay_constant max="${BRAM_DATA_OUT_TO_MEMORY_DATA_OUT_DELAY}" in_port="mem_128x8_dp.data_out" out_port="memory.data_out"/>
</direct> </direct>
<direct name="clk" input="memory.clk" output="mem_128x8_dp.clk"> <direct name="clk" input="memory.clk" output="mem_128x8_dp.clk">
</direct> </direct>

View File

@ -380,10 +380,10 @@
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="outpad" input="io.outpad" output="iopad.outpad"> <direct name="outpad" input="io.outpad" output="iopad.outpad">
<delay_constant max="1.394e-11" in_port="io.outpad" out_port="iopad.outpad"/> <delay_constant max="${OUTPAD_DELAY}" in_port="io.outpad" out_port="iopad.outpad"/>
</direct> </direct>
<direct name="inpad" input="iopad.inpad" output="io.inpad"> <direct name="inpad" input="iopad.inpad" output="io.inpad">
<delay_constant max="4.243e-11" in_port="iopad.inpad" out_port="io.inpad"/> <delay_constant max="${INPAD_DELAY}" in_port="iopad.inpad" out_port="io.inpad"/>
</direct> </direct>
</interconnect> </interconnect>
</mode> </mode>
@ -399,7 +399,7 @@
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="inpad" input="inpad.inpad" output="io.inpad"> <direct name="inpad" input="inpad.inpad" output="io.inpad">
<delay_constant max="4.243e-11" in_port="inpad.inpad" out_port="io.inpad"/> <delay_constant max="${INPAD_DELAY}" in_port="inpad.inpad" out_port="io.inpad"/>
</direct> </direct>
</interconnect> </interconnect>
</mode> </mode>
@ -409,7 +409,7 @@
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="outpad" input="io.outpad" output="outpad.outpad"> <direct name="outpad" input="io.outpad" output="outpad.outpad">
<delay_constant max="1.394e-11" in_port="io.outpad" out_port="outpad.outpad"/> <delay_constant max="${OUTPAD_DELAY}" in_port="io.outpad" out_port="outpad.outpad"/>
</direct> </direct>
</interconnect> </interconnect>
</mode> </mode>
@ -482,10 +482,10 @@
<input name="S" num_pins="1"/> <input name="S" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="ff.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="ff.D" clock="C"/>
<T_setup value="66e-12" port="ff.R" clock="C"/> <T_setup value="${FF_T_SETUP}" port="ff.R" clock="C"/>
<T_setup value="66e-12" port="ff.S" clock="C"/> <T_setup value="${FF_T_SETUP}" port="ff.S" clock="C"/>
<T_clock_to_Q max="124e-12" port="ff.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="ff.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="fabric.in" output="frac_logic.in"/> <direct name="direct1" input="fabric.in" output="frac_logic.in"/>
@ -495,13 +495,13 @@
<complete name="direct12" input="fabric.set" output="ff[1:0].S"/> <complete name="direct12" input="fabric.set" output="ff[1:0].S"/>
<mux name="mux1" input="ff[0].Q frac_logic.out[0]" output="fabric.out[0]"> <mux name="mux1" 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 --> <!-- 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="${LUT_OUT0_TO_FLE_OUT_DELAY}" 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]"/> <delay_constant max="${FF0_Q_TO_FLE_OUT_DELAY}" in_port="ff[0].Q" out_port="fabric.out[0]"/>
</mux> </mux>
<mux name="mux2" input="ff[1].Q frac_logic.out[1]" output="fabric.out[1]"> <mux name="mux2" 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 --> <!-- 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="${LUT_OUT1_TO_FLE_OUT_DELAY}" 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]"/> <delay_constant max="${FF0_Q_TO_FLE_OUT_DELAY}" in_port="ff[1].Q" out_port="fabric.out[1]"/>
</mux> </mux>
</interconnect> </interconnect>
</pb_type> </pb_type>
@ -536,11 +536,11 @@
398e-12 398e-12
--> -->
<delay_matrix type="max" in_port="lut5.in" out_port="lut5.out"> <delay_matrix type="max" in_port="lut5.in" out_port="lut5.out">
235e-12 ${LUT5_DELAY}
235e-12 ${LUT5_DELAY}
235e-12 ${LUT5_DELAY}
235e-12 ${LUT5_DELAY}
235e-12 ${LUT5_DELAY}
</delay_matrix> </delay_matrix>
</pb_type> </pb_type>
<!-- Define multi-mode flip-flop --> <!-- Define multi-mode flip-flop -->
@ -555,8 +555,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="clk" num_pins="1" port_class="clock"/> <clock name="clk" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="latch.D" clock="clk"/> <T_setup value="${FF_T_SETUP}" port="latch.D" clock="clk"/>
<T_clock_to_Q max="124e-12" port="latch.Q" clock="clk"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="latch.Q" clock="clk"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="latch.D"/> <direct name="direct1" input="ff.D" output="latch.D"/>
@ -569,8 +569,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dff.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dff.D" clock="C"/>
<T_clock_to_Q max="124e-12" port="dff.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dff.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dff.D"/> <direct name="direct1" input="ff.D" output="dff.D"/>
@ -584,9 +584,9 @@
<input name="R" num_pins="1"/> <input name="R" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffr.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.D" clock="C"/>
<T_setup value="66e-12" port="dffr.R" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.R" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffr.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffr.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffr.D"/> <direct name="direct1" input="ff.D" output="dffr.D"/>
@ -601,9 +601,9 @@
<input name="RN" num_pins="1"/> <input name="RN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffrn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.D" clock="C"/>
<T_setup value="66e-12" port="dffrn.RN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.RN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffrn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffrn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffrn.D"/> <direct name="direct1" input="ff.D" output="dffrn.D"/>
@ -618,9 +618,9 @@
<input name="S" num_pins="1"/> <input name="S" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffs.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.D" clock="C"/>
<T_setup value="66e-12" port="dffs.S" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.S" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffs.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffs.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffs.D"/> <direct name="direct1" input="ff.D" output="dffs.D"/>
@ -635,9 +635,9 @@
<input name="SN" num_pins="1"/> <input name="SN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffsn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.D" clock="C"/>
<T_setup value="66e-12" port="dffsn.SN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.SN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffsn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffsn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffsn.D"/> <direct name="direct1" input="ff.D" output="dffsn.D"/>
@ -656,8 +656,8 @@
<direct name="direct4" input="ble5.reset" output="ff.R"/> <direct name="direct4" input="ble5.reset" output="ff.R"/>
<direct name="direct5" input="ble5.set" output="ff.S"/> <direct name="direct5" input="ble5.set" output="ff.S"/>
<mux name="mux1" input="ff.Q lut5.out" output="ble5.out"> <mux name="mux1" input="ff.Q lut5.out" output="ble5.out">
<delay_constant max="25e-12" in_port="lut5.out" out_port="ble5.out"/> <delay_constant max="${LUT5_OUT_TO_FLE_OUT_DELAY}" in_port="lut5.out" out_port="ble5.out"/>
<delay_constant max="45e-12" in_port="ff.Q" out_port="ble5.out"/> <delay_constant max="${FF0_Q_TO_FLE_OUT_DELAY}" in_port="ff.Q" out_port="ble5.out"/>
</mux> </mux>
</interconnect> </interconnect>
</pb_type> </pb_type>
@ -694,12 +694,12 @@
397e-12 397e-12
--> -->
<delay_matrix type="max" in_port="lut6.in" out_port="lut6.out"> <delay_matrix type="max" in_port="lut6.in" out_port="lut6.out">
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
261e-12 ${LUT6_DELAY}
</delay_matrix> </delay_matrix>
</pb_type> </pb_type>
<!-- Define multi-mode flip-flop --> <!-- Define multi-mode flip-flop -->
@ -714,8 +714,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="clk" num_pins="1" port_class="clock"/> <clock name="clk" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="latch.D" clock="clk"/> <T_setup value="${FF_T_SETUP}" port="latch.D" clock="clk"/>
<T_clock_to_Q max="124e-12" port="latch.Q" clock="clk"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="latch.Q" clock="clk"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="latch.D"/> <direct name="direct1" input="ff.D" output="latch.D"/>
@ -728,8 +728,8 @@
<input name="D" num_pins="1" port_class="D"/> <input name="D" num_pins="1" port_class="D"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dff.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dff.D" clock="C"/>
<T_clock_to_Q max="124e-12" port="dff.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dff.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dff.D"/> <direct name="direct1" input="ff.D" output="dff.D"/>
@ -743,9 +743,9 @@
<input name="R" num_pins="1"/> <input name="R" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffr.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.D" clock="C"/>
<T_setup value="66e-12" port="dffr.R" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffr.R" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffr.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffr.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffr.D"/> <direct name="direct1" input="ff.D" output="dffr.D"/>
@ -760,9 +760,9 @@
<input name="RN" num_pins="1"/> <input name="RN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffrn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.D" clock="C"/>
<T_setup value="66e-12" port="dffrn.RN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffrn.RN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffrn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffrn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffrn.D"/> <direct name="direct1" input="ff.D" output="dffrn.D"/>
@ -777,9 +777,9 @@
<input name="S" num_pins="1"/> <input name="S" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffs.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.D" clock="C"/>
<T_setup value="66e-12" port="dffs.S" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffs.S" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffs.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffs.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffs.D"/> <direct name="direct1" input="ff.D" output="dffs.D"/>
@ -794,9 +794,9 @@
<input name="SN" num_pins="1"/> <input name="SN" num_pins="1"/>
<output name="Q" num_pins="1" port_class="Q"/> <output name="Q" num_pins="1" port_class="Q"/>
<clock name="C" num_pins="1" port_class="clock"/> <clock name="C" num_pins="1" port_class="clock"/>
<T_setup value="66e-12" port="dffsn.D" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.D" clock="C"/>
<T_setup value="66e-12" port="dffsn.SN" clock="C"/> <T_setup value="${FF_T_SETUP}" port="dffsn.SN" clock="C"/>
<T_clock_to_Q max="124e-12" port="dffsn.Q" clock="C"/> <T_clock_to_Q max="${FF_T_CLK2Q}" port="dffsn.Q" clock="C"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="direct1" input="ff.D" output="dffsn.D"/> <direct name="direct1" input="ff.D" output="dffsn.D"/>
@ -815,8 +815,8 @@
<direct name="direct4" input="ble6.reset" output="ff.R"/> <direct name="direct4" input="ble6.reset" output="ff.R"/>
<direct name="direct5" input="ble6.set" output="ff.S"/> <direct name="direct5" input="ble6.set" output="ff.S"/>
<mux name="mux1" input="ff.Q lut6.out" output="ble6.out"> <mux name="mux1" input="ff.Q lut6.out" output="ble6.out">
<delay_constant max="25e-12" in_port="lut6.out" out_port="ble6.out"/> <delay_constant max="${LUT6_OUT_TO_FLE_OUT_DELAY}" in_port="lut6.out" out_port="ble6.out"/>
<delay_constant max="45e-12" in_port="ff.Q" out_port="ble6.out"/> <delay_constant max="${FF0_Q_TO_FLE_OUT_DELAY}" in_port="ff.Q" out_port="ble6.out"/>
</mux> </mux>
</interconnect> </interconnect>
</pb_type> </pb_type>
@ -841,8 +841,8 @@
25 ps to do so, we subtract 25 ps from the 100 ps delay of a feedback 25 ps to do so, we subtract 25 ps from the 100 ps delay of a feedback
to get the part that should be marked on the crossbar. --> to get the part that should be marked on the crossbar. -->
<complete name="crossbar" input="clb.I fle[9:0].out" output="fle[9:0].in"> <complete name="crossbar" input="clb.I fle[9:0].out" output="fle[9:0].in">
<delay_constant max="95e-12" in_port="clb.I" out_port="fle[9:0].in"/> <delay_constant max="${CROSSBAR_I_TO_FLE_IN_DELAY}" in_port="clb.I" out_port="fle[9:0].in"/>
<delay_constant max="75e-12" in_port="fle[9:0].out" out_port="fle[9:0].in"/> <delay_constant max="${CROSSBAR_FLE_OUT_TO_FLE_IN_DELAY}" in_port="fle[9:0].out" out_port="fle[9:0].in"/>
</complete> </complete>
<complete name="clks" input="clb.clk" output="fle[9:0].clk"> <complete name="clks" input="clb.clk" output="fle[9:0].clk">
@ -875,8 +875,8 @@
<input name="A" num_pins="18"/> <input name="A" num_pins="18"/>
<input name="B" num_pins="18"/> <input name="B" num_pins="18"/>
<output name="Y" num_pins="36"/> <output name="Y" num_pins="36"/>
<delay_constant max="1.523e-9" min="0.776e-9" in_port="mult_18x18.A" out_port="mult_18x18.Y"/> <delay_constant max="${MULT18_A2Y_DELAY_MAX}" min="${MULT18_A2Y_DELAY_MIN}" in_port="mult_18x18.A" out_port="mult_18x18.Y"/>
<delay_constant max="1.523e-9" min="0.776e-9" in_port="mult_18x18.B" out_port="mult_18x18.Y"/> <delay_constant max="${MULT18_B2Y_DELAY_MAX}" min="${MULT18_B2Y_DELAY_MIN}" in_port="mult_18x18.B" out_port="mult_18x18.Y"/>
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="a2a" input="mult_18x18_slice.A_cfg" output="mult_18x18.A"> <direct name="a2a" input="mult_18x18_slice.A_cfg" output="mult_18x18.A">
@ -899,13 +899,13 @@
The interconnect difference for DSP blocks is 0.5523, which leads to a minimum delay of 74 ps The interconnect difference for DSP blocks is 0.5523, which leads to a minimum delay of 74 ps
--> -->
<direct name="a2a" input="mult_18.a" output="mult_18x18_slice.A_cfg"> <direct name="a2a" input="mult_18.a" output="mult_18x18_slice.A_cfg">
<delay_constant max="134e-12" min="74e-12" in_port="mult_18.a" out_port="mult_18x18_slice.A_cfg"/> <delay_constant max="${MULT18_SLICE_A2A_DELAY_MAX}" min="${MULT18_SLICE_A2A_DELAY_MIN}" in_port="mult_18.a" out_port="mult_18x18_slice.A_cfg"/>
</direct> </direct>
<direct name="b2b" input="mult_18.b" output="mult_18x18_slice.B_cfg"> <direct name="b2b" input="mult_18.b" output="mult_18x18_slice.B_cfg">
<delay_constant max="134e-12" min="74e-12" in_port="mult_18.b" out_port="mult_18x18_slice.B_cfg"/> <delay_constant max="${MULT18_SLICE_B2B_DELAY_MAX}" min="${MULT18_SLICE_B2B_DELAY_MIN}" in_port="mult_18.b" out_port="mult_18x18_slice.B_cfg"/>
</direct> </direct>
<direct name="out2out" input="mult_18x18_slice.OUT_cfg" output="mult_18.out"> <direct name="out2out" input="mult_18x18_slice.OUT_cfg" output="mult_18.out">
<delay_constant max="1.93e-9" min="74e-12" in_port="mult_18x18_slice.OUT_cfg" out_port="mult_18.out"/> <delay_constant max="${MULT18_SLICE_OUT2OUT_DELAY_MAX}" min="${MULT18_SLICE_OUT2OUT_DELAY_MIN}" in_port="mult_18x18_slice.OUT_cfg" out_port="mult_18.out"/>
</direct> </direct>
</interconnect> </interconnect>
</mode> </mode>
@ -935,12 +935,12 @@
<input name="ren" num_pins="1" port_class="write_en2"/> <input name="ren" num_pins="1" port_class="write_en2"/>
<output name="data_out" num_pins="8" port_class="data_out1"/> <output name="data_out" num_pins="8" port_class="data_out1"/>
<clock name="clk" num_pins="1" port_class="clock"/> <clock name="clk" num_pins="1" port_class="clock"/>
<T_setup value="509e-12" port="mem_128x8_dp.waddr" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_WADDR_DELAY}" port="mem_128x8_dp.waddr" clock="clk"/>
<T_setup value="509e-12" port="mem_128x8_dp.raddr" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_RADDR_DELAY}" port="mem_128x8_dp.raddr" clock="clk"/>
<T_setup value="509e-12" port="mem_128x8_dp.data_in" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_DATA_IN_DELAY}" port="mem_128x8_dp.data_in" clock="clk"/>
<T_setup value="509e-12" port="mem_128x8_dp.wen" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_WEN_DELAY}" port="mem_128x8_dp.wen" clock="clk"/>
<T_setup value="509e-12" port="mem_128x8_dp.ren" clock="clk"/> <T_setup value="${DPRAM_128x8_CLK_TO_REN_DELAY}" port="mem_128x8_dp.ren" clock="clk"/>
<T_clock_to_Q max="1.234e-9" port="mem_128x8_dp.data_out" clock="clk"/> <T_clock_to_Q max="${DPRAM_128x8_CLK_TO_DATA_OUT_DELAY}" port="mem_128x8_dp.data_out" clock="clk"/>
<power method="pin-toggle"> <power method="pin-toggle">
<port name="clk" energy_per_toggle="17.9e-12"/> <port name="clk" energy_per_toggle="17.9e-12"/>
<static_power power_per_instance="0.0"/> <static_power power_per_instance="0.0"/>
@ -948,22 +948,22 @@
</pb_type> </pb_type>
<interconnect> <interconnect>
<direct name="waddress" input="memory.waddr" output="mem_128x8_dp.waddr"> <direct name="waddress" input="memory.waddr" output="mem_128x8_dp.waddr">
<delay_constant max="132e-12" in_port="memory.waddr" out_port="mem_128x8_dp.waddr"/> <delay_constant max="${MEMORY_WADDR_TO_BRAM_WADDR_DELAY}" in_port="memory.waddr" out_port="mem_128x8_dp.waddr"/>
</direct> </direct>
<direct name="raddress" input="memory.raddr" output="mem_128x8_dp.raddr"> <direct name="raddress" input="memory.raddr" output="mem_128x8_dp.raddr">
<delay_constant max="132e-12" in_port="memory.raddr" out_port="mem_128x8_dp.raddr"/> <delay_constant max="${MEMORY_RADDR_TO_BRAM_RADDR_DELAY}" in_port="memory.raddr" out_port="mem_128x8_dp.raddr"/>
</direct> </direct>
<direct name="data_input" input="memory.data_in" output="mem_128x8_dp.data_in"> <direct name="data_input" input="memory.data_in" output="mem_128x8_dp.data_in">
<delay_constant max="132e-12" in_port="memory.data_in" out_port="mem_128x8_dp.data_in"/> <delay_constant max="${MEMORY_DATA_IN_TO_BRAM_DATA_IN_DELAY}" in_port="memory.data_in" out_port="mem_128x8_dp.data_in"/>
</direct> </direct>
<direct name="writeen" input="memory.wen" output="mem_128x8_dp.wen"> <direct name="writeen" input="memory.wen" output="mem_128x8_dp.wen">
<delay_constant max="132e-12" in_port="memory.wen" out_port="mem_128x8_dp.wen"/> <delay_constant max="${MEMORY_WEN_TO_BRAM_WEN_DELAY}" in_port="memory.wen" out_port="mem_128x8_dp.wen"/>
</direct> </direct>
<direct name="readen" input="memory.ren" output="mem_128x8_dp.ren"> <direct name="readen" input="memory.ren" output="mem_128x8_dp.ren">
<delay_constant max="132e-12" in_port="memory.ren" out_port="mem_128x8_dp.ren"/> <delay_constant max="${MEMORY_REN_TO_BRAM_REN_DELAY}" in_port="memory.ren" out_port="mem_128x8_dp.ren"/>
</direct> </direct>
<direct name="dataout" input="mem_128x8_dp.data_out" output="memory.data_out"> <direct name="dataout" input="mem_128x8_dp.data_out" output="memory.data_out">
<delay_constant max="40e-12" in_port="mem_128x8_dp.data_out" out_port="memory.data_out"/> <delay_constant max="${BRAM_DATA_OUT_TO_MEMORY_DATA_OUT_DELAY}" in_port="mem_128x8_dp.data_out" out_port="memory.data_out"/>
</direct> </direct>
<direct name="clk" input="memory.clk" output="mem_128x8_dp.clk"> <direct name="clk" input="memory.clk" output="mem_128x8_dp.clk">
</direct> </direct>