From a026680af10f1df4c1c00dff8905a24e2b1415a7 Mon Sep 17 00:00:00 2001 From: Kia <kia@special-circumstanc.es> Date: Thu, 30 Apr 2020 21:10:41 -0600 Subject: [PATCH] hooked up pseudo-serializer --- combinatorial_LR_parser.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/combinatorial_LR_parser.py b/combinatorial_LR_parser.py index 3dc16d1..3420119 100644 --- a/combinatorial_LR_parser.py +++ b/combinatorial_LR_parser.py @@ -595,6 +595,7 @@ class TreeSerializer(Elaboratable): m.d.comb += self.memory_write_port.eq(self.destroyed_item_in) m.d.comb += self.memory_address_port.eq(writepoint) m.d.sync += writepoint.eq(writepoint + 1) + with m.If(self.reduction_end == 1): m.d.comb += self.memory_write_port.eq(number_to_pop) m.d.comb += self.memory_address_port.eq(backpointer) @@ -745,6 +746,9 @@ class MasterStateMachine(Elaboratable): m.d.comb += serializer.reduce_start_strobe.eq(1) + m.d.comb += serializer.destroyed_item_valid_in.eq(1) + + m.d.comb += serializer.number_to_pop.eq(rex.number_to_pop) m.d.comb += serializer.item_created_by_reduce_rule.eq(rex.created_item) m.d.comb += serializer.reduce_rule_number.eq(rule_matcher.match_index_out) @@ -770,6 +774,7 @@ class MasterStateMachine(Elaboratable): # FIXME XXX make this into an FSM with m.If(number_to_pop != 0): + m.d.comb += serializer.destroyed_item_valid_in.eq(1) m.d.comb += doublestacks.command_in.eq(1) m.d.comb += doublestacks.command_in_strobe.eq(1) m.d.sync += number_to_pop.eq(number_to_pop - 1) -- GitLab