mirror of https://github.com/VLSIDA/OpenRAM.git
Delay measure always measure from clk neg edge
This commit is contained in:
parent
0d60c76e3b
commit
39104fa9d8
|
|
@ -88,10 +88,12 @@ class delay(simulation):
|
||||||
self.clk_frmt = "clk{0}" # Unformatted clock name
|
self.clk_frmt = "clk{0}" # Unformatted clock name
|
||||||
targ_name = "{0}{{}}_{1}".format(self.dout_name, self.probe_data) # Empty values are the port and probe data bit
|
targ_name = "{0}{{}}_{1}".format(self.dout_name, self.probe_data) # Empty values are the port and probe data bit
|
||||||
self.delay_meas = []
|
self.delay_meas = []
|
||||||
self.delay_meas.append(delay_measure("delay_lh", self.clk_frmt, targ_name, "RISE", "RISE", measure_scale=1e9))
|
self.delay_meas.append(delay_measure("delay_lh", self.clk_frmt, targ_name, "FALL", "RISE", measure_scale=1e9))
|
||||||
self.delay_meas[-1].meta_str = sram_op.READ_ONE # Used to index time delay values when measurements written to spice file.
|
self.delay_meas[-1].meta_str = sram_op.READ_ONE # Used to index time delay values when measurements written to spice file.
|
||||||
|
self.dealy_meas[-1].meta_add_delay = True
|
||||||
self.delay_meas.append(delay_measure("delay_hl", self.clk_frmt, targ_name, "FALL", "FALL", measure_scale=1e9))
|
self.delay_meas.append(delay_measure("delay_hl", self.clk_frmt, targ_name, "FALL", "FALL", measure_scale=1e9))
|
||||||
self.delay_meas[-1].meta_str = sram_op.READ_ZERO
|
self.delay_meas[-1].meta_str = sram_op.READ_ZERO
|
||||||
|
self.dealy_meas[-1].meta_add_delay = True
|
||||||
self.read_lib_meas+=self.delay_meas
|
self.read_lib_meas+=self.delay_meas
|
||||||
|
|
||||||
self.slew_meas = []
|
self.slew_meas = []
|
||||||
|
|
@ -1029,8 +1031,8 @@ class delay(simulation):
|
||||||
slews_str = "slew_hl={0} slew_lh={1}".format(slew_hl, slew_lh)
|
slews_str = "slew_hl={0} slew_lh={1}".format(slew_hl, slew_lh)
|
||||||
# high-to-low delays start at neg. clk edge, so they need to be less than half_period
|
# high-to-low delays start at neg. clk edge, so they need to be less than half_period
|
||||||
half_period = self.period / 2
|
half_period = self.period / 2
|
||||||
if abs(delay_hl)>half_period or abs(delay_lh)>self.period or abs(slew_hl)>half_period or abs(slew_lh)>self.period \
|
if abs(delay_hl)>half_period or abs(delay_lh)>self.half_period or abs(slew_hl)>half_period or abs(slew_lh)>self.period \
|
||||||
or delay_hl<0 or delay_lh<0 or slew_hl<0 or slew_lh<0:
|
or (delay_hl<0 and delay_lh<0) or slew_hl<0 or slew_lh<0:
|
||||||
debug.info(2, "UNsuccessful simulation (in ns):\n\t\t{0}\n\t\t{1}\n\t\t{2}".format(period_load_slew_str,
|
debug.info(2, "UNsuccessful simulation (in ns):\n\t\t{0}\n\t\t{1}\n\t\t{2}".format(period_load_slew_str,
|
||||||
delays_str,
|
delays_str,
|
||||||
slews_str))
|
slews_str))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue