hwcomponents.scaling package
Submodules
hwcomponents.scaling.scalefuncs module
- hwcomponents.scaling.scalefuncs.cacti_depth_area(target, scalefrom)[source]
CACTI depth scaling. Based on empirical measurement of CACTI, for which area scales linearly with depth.
- Parameters:
target (
float) – The target depth.scalefrom (
float) – The depth to scale from.
- Return type:
float- Returns:
The scaled area.
- hwcomponents.scaling.scalefuncs.cacti_depth_energy(target, scalefrom)[source]
CACTI depth scaling. Based on empirical measurement of CACTI, for which energy scales with depth to the power of (1.56 / 2).
- Parameters:
target (
float) – The target depth.scalefrom (
float) – The depth to scale from.
- Return type:
float- Returns:
The scaled energy.
- hwcomponents.scaling.scalefuncs.cacti_depth_leak(target, scalefrom)[source]
CACTI depth scaling. Based on empirical measurement of CACTI, for which leakage power scales linearly with depth.
- Parameters:
target (
float) – The target depth.scalefrom (
float) – The depth to scale from.
- Return type:
float- Returns:
The scaled leakage power.
- hwcomponents.scaling.scalefuncs.linear(target, scalefrom)[source]
Linear scaling function. Returns target / scalefrom.
- Parameters:
target (
float) – The target value.scalefrom (
float) – The value to scale from.
- Return type:
float- Returns:
The scaled value.
- hwcomponents.scaling.scalefuncs.nlog2n(target, scalefrom)[source]
Logarithmic scaling function. Returns (target / scalefrom) * math.log(target / scalefrom, 2).
- Return type:
float
- hwcomponents.scaling.scalefuncs.nlog_base(power)[source]
Logarithmic scaling function. Returns a lambda that computes (target * math.log(target, power)) / (scalefrom * math.log(scalefrom, power)).
- Parameters:
power (
float) – The power to scale by.- Return type:
Callable[[float,float],float]- Returns:
A lambda that computes (target * math.log(target, power)) / (scalefrom * math.log(scalefrom, power)).
- hwcomponents.scaling.scalefuncs.pow_base(power)[source]
Power scaling function. Returns a lambda that computes (target - scalefrom) ** power.
- Parameters:
power (
float) – The power to scale by.- Return type:
Callable[[float,float],float]- Returns:
A lambda that computes (target - scalefrom) ** power.
hwcomponents.scaling.techscaling module
- hwcomponents.scaling.techscaling.tech_node_area(to_node, from_node)[source]
Returns the scaling factor for area from the technology node from_node to the technology node to_node. Interpolates if necessary.
- Parameters:
to_node (
float) – The technology node to scale to.from_node (
float) – The technology node to scale from.
- Return type:
float- Returns:
The scaling factor for area.
- hwcomponents.scaling.techscaling.tech_node_energy(to_node, from_node, vdd=None)[source]
Returns the scaling factor for energy from the technology node from_node to the technology node to_node. Interpolates if necessary.
- Parameters:
to_node (
float) – The technology node to scale to.from_node (
float) – The technology node to scale from.vdd (
Optional[float]) – The voltage to scale by. If not provided, 0.8V is used.
- Return type:
float- Returns:
The scaling factor for energy.
- hwcomponents.scaling.techscaling.tech_node_latency(to_node, from_node)[source]
Returns the scaling factor for latency from the technology node from_node to the technology node to_node. Interpolates if necessary.
- Parameters:
to_node (
float) – The technology node to scale to.from_node (
float) – The technology node to scale from.
- Return type:
float- Returns:
The scaling factor for latency.
- hwcomponents.scaling.techscaling.tech_node_leak(to_node, from_node, vdd=None)[source]
Returns the scaling factor for leakage power from the technology node from_node to the technology node to_node. Interpolates if necessary.
- Parameters:
to_node (
float) – The technology node to scale to.from_node (
float) – The technology node to scale from.vdd (
Optional[float]) – The voltage to scale by. If not provided, 0.8V is used.
- Return type:
float- Returns:
The scaling factor for leakage power.
Module contents
- hwcomponents.scaling.cacti_depth_area(target, scalefrom)[source]
CACTI depth scaling. Based on empirical measurement of CACTI, for which area scales linearly with depth.
- Parameters:
target (
float) – The target depth.scalefrom (
float) – The depth to scale from.
- Return type:
float- Returns:
The scaled area.
- hwcomponents.scaling.cacti_depth_energy(target, scalefrom)[source]
CACTI depth scaling. Based on empirical measurement of CACTI, for which energy scales with depth to the power of (1.56 / 2).
- Parameters:
target (
float) – The target depth.scalefrom (
float) – The depth to scale from.
- Return type:
float- Returns:
The scaled energy.
- hwcomponents.scaling.cacti_depth_leak(target, scalefrom)[source]
CACTI depth scaling. Based on empirical measurement of CACTI, for which leakage power scales linearly with depth.
- Parameters:
target (
float) – The target depth.scalefrom (
float) – The depth to scale from.
- Return type:
float- Returns:
The scaled leakage power.
- hwcomponents.scaling.linear(target, scalefrom)[source]
Linear scaling function. Returns target / scalefrom.
- Parameters:
target (
float) – The target value.scalefrom (
float) – The value to scale from.
- Return type:
float- Returns:
The scaled value.
- hwcomponents.scaling.nlog2n(target, scalefrom)[source]
Logarithmic scaling function. Returns (target / scalefrom) * math.log(target / scalefrom, 2).
- Return type:
float
- hwcomponents.scaling.nlog_base(power)[source]
Logarithmic scaling function. Returns a lambda that computes (target * math.log(target, power)) / (scalefrom * math.log(scalefrom, power)).
- Parameters:
power (
float) – The power to scale by.- Return type:
Callable[[float,float],float]- Returns:
A lambda that computes (target * math.log(target, power)) / (scalefrom * math.log(scalefrom, power)).
- hwcomponents.scaling.pow_base(power)[source]
Power scaling function. Returns a lambda that computes (target - scalefrom) ** power.
- Parameters:
power (
float) – The power to scale by.- Return type:
Callable[[float,float],float]- Returns:
A lambda that computes (target - scalefrom) ** power.
- hwcomponents.scaling.quadratic(target, scalefrom)[source]
Quadratic scaling function. Returns (target / scalefrom) ** 2.
- Return type:
float
- hwcomponents.scaling.reciprocal(target, scalefrom)[source]
Reciprocal scaling function. Returns 1 / (target / scalefrom).
- Parameters:
target (
float) – The target value.scalefrom (
float) – The value to scale from.
- Return type:
float- Returns:
The scaled value.
- hwcomponents.scaling.tech_node_area(to_node, from_node)[source]
Returns the scaling factor for area from the technology node from_node to the technology node to_node. Interpolates if necessary.
- Parameters:
to_node (
float) – The technology node to scale to.from_node (
float) – The technology node to scale from.
- Return type:
float- Returns:
The scaling factor for area.
- hwcomponents.scaling.tech_node_energy(to_node, from_node, vdd=None)[source]
Returns the scaling factor for energy from the technology node from_node to the technology node to_node. Interpolates if necessary.
- Parameters:
to_node (
float) – The technology node to scale to.from_node (
float) – The technology node to scale from.vdd (
Optional[float]) – The voltage to scale by. If not provided, 0.8V is used.
- Return type:
float- Returns:
The scaling factor for energy.
- hwcomponents.scaling.tech_node_latency(to_node, from_node)[source]
Returns the scaling factor for latency from the technology node from_node to the technology node to_node. Interpolates if necessary.
- Parameters:
to_node (
float) – The technology node to scale to.from_node (
float) – The technology node to scale from.
- Return type:
float- Returns:
The scaling factor for latency.
- hwcomponents.scaling.tech_node_leak(to_node, from_node, vdd=None)[source]
Returns the scaling factor for leakage power from the technology node from_node to the technology node to_node. Interpolates if necessary.
- Parameters:
to_node (
float) – The technology node to scale to.from_node (
float) – The technology node to scale from.vdd (
Optional[float]) – The voltage to scale by. If not provided, 0.8V is used.
- Return type:
float- Returns:
The scaling factor for leakage power.