Source code for elasticai.creator_plugins.combinatorial.vhdl_nodes.sliding_window

from elasticai.creator.ir2vhdl import VhdlNode

from .clocked_combinatorial import ClockedInstance
from .node_factory import InstanceFactoryForCombinatorial


[docs] @InstanceFactoryForCombinatorial.register def sliding_window(node): return SlidingWindowNode(node)
[docs] class SlidingWindowNode(ClockedInstance): _logic_signals_with_default_suffix = ("valid_in", "valid_out") def __init__( self, node: VhdlNode, ): data_width = node.input_shape.depth num_points = node.output_shape.depth if ( "generic_map" in node.attributes # pyright: ignore and "stride" in node.attributes["generic_map"] # pyright: ignore ): stride = node.attributes["generic_map"]["stride"] # pyright: ignore else: stride = node.attributes["stride"] # pyright: ignore super().__init__( node, input_width=data_width, output_width=num_points, generic_map=dict( stride=stride, input_width=data_width, output_width=num_points, ), )