diff --git a/combinatorial_LR_parser.py b/combinatorial_LR_parser.py index 1b758194f6acbccc2cf6e66a7376a00c4724c993..b6e37091770e7e881607b3ac7337206786b61855 100644 --- a/combinatorial_LR_parser.py +++ b/combinatorial_LR_parser.py @@ -95,6 +95,18 @@ class StacksInSync(Elaboratable): m.d.comb += (self.bigperm_out[idx]).eq(sig) + m.d.comb += sidestack.command_in.eq(self.command_in) + m.d.comb += sidestack.command_in_strobe.eq(self.command_in_strobe) + m.d.comb += sidestack.push_port.eq(self.side_push_port) + m.d.comb += self.sidepop_port.eq(sidestack.pop_port) + m.d.comb += self.sidepop_port_valid.eq(sidestack.pop_port_valid) + + for idx, sig in enumerate(sidestack.perm_out): + m.d.comb += (self.sideperm_out[idx]).eq(sig) + + + + m.d.comb += self.occupancy_bitmap.eq(bigstack.occupancy_bitmap) return m @@ -605,7 +617,7 @@ class MasterStateMachine(Elaboratable): def elaborate(self, platform): m = Module() - stack = InspectableStack(item_width=self.item_width, stack_depth=self.stack_depth) + #stack = InspectableStack(item_width=self.item_width, stack_depth=self.stack_depth) doublestacks = StacksInSync(bigstack_item_width=self.item_width, sidestack_item_width=self.indices_width, stack_depth = self.stack_depth) rule_matcher = HitOrMiss(item_width=self.item_width, stack_depth=self.stack_depth, validitem_ruleset = self.validitem_ruleset, @@ -615,7 +627,7 @@ class MasterStateMachine(Elaboratable): reduction_rule_count=len(self.execute_rules), stack_state_descriptions = self.stack_state_descriptions, endofparse_marker = self.endofparse_marker) rex = RuleExecutor(item_width=self.item_width, stack_depth=self.stack_depth, execution_ruleset=self.execute_rules) skbuffer = RegisteredSkidBuffer(width = self.item_width) - m.submodules.Stack = stack + #m.submodules.Stack = stack m.submodules.Stacks = doublestacks m.submodules.RuleMatcher = rule_matcher m.submodules.RuleExecute = rex