Source code for elasticai.creator_plugins.combinatorial.tests.clock_tree_test

import elasticai.creator.ir.ir_v2 as ir
from elasticai.creator.ir2vhdl import Shape, factory

from ..clocked_combinatorial import clocked_combinatorial


[docs] def test_using_two_clocked_components_connects_their_valid_signals(): impl = factory.graph(name="test") vhdl_node = factory.node edge = factory.edge impl = impl.add_nodes( vhdl_node( "input", type="input", implementation="", input_shape=Shape(2, 4), output_shape=Shape(2, 4), ), vhdl_node( "sliding_window", ir.attribute(stride=1), type="sliding_window", implementation="sliding_window", input_shape=Shape(2, 4), output_shape=Shape(2, 2), ), vhdl_node( "conv", type="unclocked_combinatorial", implementation="conv", input_shape=Shape(2, 4), output_shape=Shape(1, 1), ), vhdl_node( "shift_register", type="shift_register", implementation="shift_register", input_shape=Shape(1, 1), output_shape=Shape(1, 3), ), vhdl_node( "output", type="output", input_shape=Shape(1, 3), output_shape=Shape(1, 3), ), ) impl = impl.add_edges( edge("input", "sliding_window"), edge("sliding_window", "conv"), edge("conv", "shift_register"), edge("shift_register", "output"), ) result = clocked_combinatorial(impl, ir.Registry()) _, lines = result lines = set(l.lstrip() for l in lines) valid_ins = [line for line in lines if line.startswith("valid_in")] assert "valid_in_shift_register <= valid_out_sliding_window;" in valid_ins