@@ -325,6 +325,9 @@ def __init__(
325325
326326 super ().__init__ (leak_power = self .cacti_leak_power , area = self .cacti_area )
327327
328+ def _get_latency_per_bit (self ):
329+ return self .cycle_period / (self .width * self .n_rw_ports * self .n_banks )
330+
328331 def log_bandwidth (self ):
329332 bw = self .width * self .n_rw_ports * self .n_banks
330333 self .logger .info (f"Cache bandwidth: { bw / 8 } bytes/cycle" )
@@ -595,7 +598,7 @@ def read(self) -> tuple[float, float]:
595598 (energy, latency): Tuple in (Joules, seconds).
596599 """
597600 self ._interpolate_and_call_cacti ()
598- return self .read_energy , self .cycle_period
601+ return self .read_energy , self ._get_latency_per_bit ()
599602
600603 @action (bits_per_action = "width" )
601604 def write (self ) -> tuple [float , float ]:
@@ -612,7 +615,7 @@ def write(self) -> tuple[float, float]:
612615 (energy, latency): Tuple in (Joules, seconds).
613616 """
614617 self ._interpolate_and_call_cacti ()
615- return self .write_energy , self .cycle_period
618+ return self .write_energy , self ._get_latency_per_bit ()
616619
617620
618621class Cache (_Memory ):
@@ -706,7 +709,7 @@ def read(self) -> tuple[float, float]:
706709 (energy, latency): Tuple in (Joules, seconds).
707710 """
708711 self ._interpolate_and_call_cacti ()
709- return self .read_energy , self .cycle_period
712+ return self .read_energy , self ._get_latency_per_bit ()
710713
711714 @action (bits_per_action = "width" )
712715 def write (self ) -> tuple [float , float ]:
@@ -723,4 +726,4 @@ def write(self) -> tuple[float, float]:
723726 (energy, latency): Tuple in (Joules, seconds).
724727 """
725728 self ._interpolate_and_call_cacti ()
726- return self .write_energy , self .cycle_period
729+ return self .write_energy , self ._get_latency_per_bit ()
0 commit comments