马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 zlyld 于 2025-7-4 09:32 编辑
ifdef SDF
TIMING_CHK=ON
COMMON_CMP_OPTS += +define+SDFSIM -negdelay +neg_tchk -sdfretain +sdfverbose -diag=sdf:verbose
COMMON_CMP_OPTS += -sdf ${TYPE}:tb.u_dut.u_top {CORNER}
COMMON_CMP_OPTS += +optconfigfile+../cfg/notiming_chk.cfg
COMMON_CMP_OPTS += +optconfigfile+../cfg/nospecify.cfg
endif
##-- postsim options
GATESIM=
# SDF= ff|ss|tt to specify sdf corner
SDF =
# TYPE= min|typ|max to specify delay type
TYPE=
#refert to correct corner file due to $SDF
CORNER=
ifdef SDF
GATESIM=ON
sdf_en =1
ifeq ($(SDF), ff)
TYPE=min
SIM_OPTION += +corner=sdf_ff_min
USER_CMP_OPTS +=+define+SDF_FF_MIN
USER_CMP_OPTS +=+mindelays
CORNER=${NETLIST_DIR}/top_ew_FUNC_ffpg_0p8250v_125c_Cmin_HOLD.sdf.gz
else ifeq ($(SDF), ss)
TYPE=max
SIM_OPTION += +corner=sdf_ss_max
USER_CMP_OPTS += +define+SDF_SS_MAX
USER_CMP_OPTS += +maxdelays
CORNER=${NETLIST_DIR}/top_ew_FUNC_sspg_0p6750v_m40c_Cmax_SETUP.sdf.gz
else
CORNER=${NETLIST_DIR}/top_ew_FUNC_tt_0p7500v_85c_nominal_SETUP.sdf.gz
ifeq ($(TYPE), min)
SIM_OPTION += +corner=sdf_tt_min
USER_CMP_OPTS += +define+SDF_TT_MIN
USER_CMP_OPTS += +typdelays
else
SIM_OPTION += +corner=sdf_tt_max
USER_CMP_OPTS += +define+SDF_TT_MAX
USER_CMP_OPTS += +typdelays
endif #ifeq ($(TYPE), min)
endif #ifeq($(SDF), ff)
endif #ifdef SDF
>>>>>>>nospecify.cfg
tree { PLL_TOP } {noSpecify};
tree { DLL_TOP } {noSpecify};
tree { ZQ_TOP } {noSpecify};
>>>>>>>>notiming_chk.cfg
instance {
tb.u_dut.u_top.u_rstn_sync_apb.u_resetn_sync.GEN_FST4_U_SAMPLE_META_4.Usync4_0_,
tb.u_dut.u_top.u_rstn_sync_tdr.u_resetn_sync.GEN_FST4_U_SAMPLE_META_4.Usync4_0_
}{noTiming};
|