Source code for elasticai.creator.nn.fixed_point.mac.design
from elasticai.creator.file_generation.savable import Path, Savable
from elasticai.creator.file_generation.template import InProjectTemplate
[docs]
class MacDesign(Savable):
def __init__(self, name: str, vector_width: int, fxp_params):
self._name = name
self._vector_width = vector_width
self._fxp_params = fxp_params
[docs]
def save_to(self, destination: Path) -> None:
wrapper = InProjectTemplate(
package="elasticai.creator.nn.fixed_point.mac",
file_name="mac_design.tpl.vhd",
parameters={
"total_width": str(self._fxp_params.total_bits),
"frac_width": str(self._fxp_params.frac_bits),
"vector_width": str(self._vector_width),
"name": self._name,
},
)
core_component = InProjectTemplate(
package="elasticai.creator.nn.fixed_point.mac",
file_name="fxp_mac.tpl.vhd",
parameters={},
)
destination.create_subpath("fxp_mac").as_file(".vhd").write(core_component)
destination.create_subpath(self._name).as_file(".vhd").write(wrapper)