/* ** initialize.c -- initialize area/time estimates for processing elements ** - extrapolates data from actual layouts, then applies lambda-rule ** corrections for line width differences ** Joseph B. Evans, 10/88 */ #include #include #include "estimate.h" double initialize(line) double line; { /* initialize lengths */ a.dff_x = X_DFF/(DEF_PR/line); a.dff_y = Y_DFF/(DEF_PR/line); a.fa_x = X_FA/(DEF_PR/line); a.fa_y = Y_FA/(DEF_PR/line); a.multsp_x = X_MULTSP/(DEF_PR/line); a.multsp_y = Y_MULTSP/(DEF_PR/line); a.multp_x = X_MULTP/(DEF_PR/line); a.multp_y = Y_MULTP/(DEF_PR/line); a.ptqs_x = X_PTQS/(DEF_PR/line); a.ptqs_y = Y_PTQS/(DEF_PR/line); a.ptqq_x = X_PTQQ/(DEF_PR/line); a.ptqq_y = Y_PTQQ/(DEF_PR/line); a.bkadd_x = X_BKADD/(DEF_PR/line); a.bkadd_y = Y_BKADD/(DEF_PR/line); a.sram_x = X_SRAM/(DEF_PR/line); a.sram_y = Y_SRAM/(DEF_PR/line); a.ramrow_x = X_RAMROW/(DEF_PR/line); a.ramrow_y = Y_RAMROW/(DEF_PR/line); a.latch_x = X_LATCH/(DEF_PR/line); a.latch_y = Y_LATCH/(DEF_PR/line); a.vsupl_x = X_VSUPL/(DEF_PR/line); a.vsupl_y = Y_VSUPL/(DEF_PR/line); a.vsups_x = X_VSUPS/(DEF_PR/line); a.vsups_y = Y_VSUPS/(DEF_PR/line); a.vsshft_x = X_VSSHFT/(DEF_PR/line); a.vsshft_y = Y_VSSHFT/(DEF_PR/line); a.ptql_x = X_PTQL/(DEF_PR/line); a.ptql_y = Y_PTQL/(DEF_PR/line); a.vssl_x = X_VSSL/(DEF_PR/line); a.vssl_y = Y_VSSL/(DEF_PR/line); /* initialize times */ t.dff = T_DFF/(DEF_PR/line); t.fa = T_FA/(DEF_PR/line); t.multsp = T_MULTSP/(DEF_PR/line); t.multp = T_MULTP/(DEF_PR/line); t.vsups = T_VSUPS/(DEF_PR/line); t.vsupl = T_VSUPL/(DEF_PR/line); t.vsshft = T_VSSHFT/(DEF_PR/line); t.ptqs = T_PTQS/(DEF_PR/line); t.ptqq = T_PTQQ/(DEF_PR/line); t.ptql = T_PTQL/(DEF_PR/line); t.bkadd = T_BKADD/(DEF_PR/line); t.sramw = T_SRAMW/(DEF_PR/line); t.sramr = T_SRAMR/(DEF_PR/line); t.ramrow = T_RAMROW/(DEF_PR/line); t.latch = T_LATCH/(DEF_PR/line); t.vssl = T_VSSL/(DEF_PR/line); }