| vlsitechnology.org /2LM sclib /synthesis /scripts /find_rin |
find_rin |
Chapter
Section
find_rin [-l lax_file] input_file
Script which calculates the resistance which will increase the input delay to match the critical path. By using LOON with this resistance on high fanin inputs, the input appears on the critical path and is buffered.
The resistance is written to standard output.
-l lax_file
File with input resistance and output load which is ised for the normal LOON synthesis. Zero values are used if not given.
input_file
The structural VHDL netlist input_file.vst.
Alliance programs loon, flatlo, x2y and the value of environment variables $MBK_TARGET_LIB and $MBK_TARGET_LIB.
LOON does not always manage to buffer high fanin inputs on the critical path. Using the input resistance calculated by find_rin is just a best guess way of trying to achieve fanin reduction.
LOON measures the critical path delay of input_file.vst with opt level 0. Input resistance and output load are zero or as defined in the optional LAX file.
Then a 50kΩ resistor is placed on each input in turn in order to measure its critical path delay. The delay across this resistor puts the input on the critical path, and the true delay can be measured by removing the contribution of the 50kΩ resistor.
The input resistance needed for the input's delay to match the initial critical path can then be calculated. The largest value is written to standard output. The standard error output has the intermediate delay information for each input.
LOON is run once at the start to measure the critical path, and then once for each input.
| Download find_rin |
| Example |
1 $ MBK_TARGET_LIB=$ALLIANCE_MOS/vbe/sclib100_0_min_x4 2 $ boog -l loon_0000_300_4 multi8 multi8_4 3 $ MBK_TARGET_LIB=$ALLIANCE_MOS/vbe/sclib100_45_min_x4 4 $ rin=$(./find_rin -l loon_1500_300_0 multi8_4) 5 $ MBK_TARGET_LIB=$ALLIANCE_MOS/vbe/sclib100_45 6 $ ./buf_loon -l loon_1500_300_4 multi8_4 multi8_4_4 -r $rin >/dev/null #Critical path (no warranty)...23038 ps from 'y 2' to 'r 15' #y(0)=4 y(1)=2 y(2)=2 y(3)=2 y(4)=2 y(5)=2 y(6)=2 y(7)=25 # x(0)=2 x(1)=2 x(2)=2 x(3)=2 x(4)=2 x(5)=44 x(6)=44 x(7)=57 Max fanin is x(7)=57 #Critical path (no warranty)...23245 ps from 'y 0' to 'r 15' #y(0)=2 y(1)=2 y(2)=2 y(3)=3 y(4)=2 y(5)=2 y(6)=2 y(7)=2 # x(0)=2 x(1)=2 x(2)=2 x(3)=2 x(4)=2 x(5)=2 x(6)=2 x(7)=2 Max fanin is y(3)=3 |
|
| Lax file from second LOON run in buf_loon |
##loon_1500_300_4.lax
#M{4}
#L{5}
#I{
x(0):1500;
x(1):1500;
x(2):1500;
x(3):1500;
x(4):1500;
x(5):6087;
x(6):6087;
x(7):6087;
y(0):1500;
y(1):1500;
y(2):1500;
y(3):1500;
y(4):1500;
y(5):1500;
y(6):1500;
y(7):6087;
}
#C{
r(15):300;
r(14):300;
r(13):300;
r(12):300;
r(11):300;
r(10):300;
r(9):300;
r(8):300;
r(7):300;
r(6):300;
r(5):300;
r(4):300;
r(3):300;
r(2):300;
r(1):300;
r(0):300;
} |