From bf11655dcd337eee295c636e0815e38ad230da19 Mon Sep 17 00:00:00 2001
From: Kia <kia@special-circumstanc.es>
Date: Fri, 29 Jan 2021 19:45:01 -0700
Subject: [PATCH] refactor

---
 unoptimized_lr/simple_lr_stack.py | 58 +++++++++++++++----------------
 1 file changed, 28 insertions(+), 30 deletions(-)

diff --git a/unoptimized_lr/simple_lr_stack.py b/unoptimized_lr/simple_lr_stack.py
index 2d32918..aaed13e 100644
--- a/unoptimized_lr/simple_lr_stack.py
+++ b/unoptimized_lr/simple_lr_stack.py
@@ -69,14 +69,14 @@ class ParseStack(Elaboratable):
         #self.in_data_port      = Signal(width) # data_in
         #self.in_aux_port       = Signal(range(depth)) #Index_in
         #self.in_data_valid     = Signal(1) # merge this and the one below, replace with valid_in
-        self.in_aux_valid      = Signal(1) #
+        #self.in_aux_valid      = Signal(1) #
 
 
         # Control outputs
-        self.internal_fault    = Signal(1) # keep
+        #self.internal_fault    = Signal(1) # keep
 
         # Data outputs
-        self.out_data_port       = Signal(width) #data_out
+#        self.out_data_port       = Signal(width) #data_out
         self.out_aux_port        = Signal(range(depth)) # index_out
         self.out_data_valid      = Signal(1) # merge these as valid_out
         self.out_aux_valid       = Signal(1)#
@@ -126,19 +126,19 @@ class ParseStack(Elaboratable):
                             m.d.comb += wport.en.eq(1)
                             m.next = "AT_LEAST_ONE_ITEM"
                         with m.Case(self.POP):
-                            m.d.comb += self.internal_fault.eq(1)
+                            m.d.comb += self.bus.internal_fault.eq(1)
                             m.next = "FAULTED"
                         with m.Case(self.MULTIPOP):
-                            m.d.comb += self.internal_fault.eq(1)
+                            m.d.comb += self.bus.internal_fault.eq(1)
                             m.next = "FAULTED"
                         with m.Case(self.INTROSPECT):
-                            m.d.comb += self.internal_fault.eq(1)
+                            m.d.comb += self.bus.internal_fault.eq(1)
                             m.next = "FAULTED"
                         with m.Case(self.READ_TOS):
-                            m.d.comb += self.internal_fault.eq(1)
+                            m.d.comb += self.bus.internal_fault.eq(1)
                             m.next = "FAULTED"
                         with m.Case(self.READ_SP):
-                            m.d.comb += self.internal_fault.eq(1)
+                            m.d.comb += self.bus.internal_fault.eq(1)
                             m.next = "FAULTED"
 
             with m.State("AT_LEAST_ONE_ITEM"):
@@ -152,7 +152,7 @@ class ParseStack(Elaboratable):
                             m.next = "AT_LEAST_ONE_ITEM"
                         with m.Case(self.POP):
                             m.d.comb += rport.addr.eq(stack_pointer)
-                            m.d.comb += self.out_data_port.eq(rport.data)
+                            m.d.comb += self.bus.data_out.eq(rport.data)
                             m.d.comb += self.out_data_valid.eq(1)
 
                             with m.If(stack_pointer == 0):
@@ -161,32 +161,30 @@ class ParseStack(Elaboratable):
                                 m.next = "AT_LEAST_ONE_ITEM"
                                 m.d.sync += stack_pointer.eq(stack_pointer - 1)
                         with m.Case(self.MULTIPOP):
-                            with m.If(self.in_aux_valid == 1):
-                                with m.If((self.bus.index_in - 1 ) > stack_pointer):
-                                    m.d.comb += self.internal_fault.eq(1)
-                                    m.next = "FAULTED"
-                                with m.Elif(self.bus.index_in == stack_pointer):
-                                    m.d.sync += stack_pointer.eq(0)
-                                    m.next = "EMPTY"
-                                with m.Elif(self.bus.index_in < stack_pointer):
-                                    m.d.sync += stack_pointer.eq(stack_pointer - self.bus.index_in)
-                                    m.next = "AT_LEAST_ONE_ITEM"
+                            with m.If((self.bus.index_in - 1 ) > stack_pointer):
+                                m.d.comb += self.bus.internal_fault.eq(1)
+                                m.next = "FAULTED"
+                            with m.Elif(self.bus.index_in == stack_pointer):
+                                m.d.sync += stack_pointer.eq(0)
+                                m.next = "EMPTY"
+                            with m.Elif(self.bus.index_in < stack_pointer):
+                                m.d.sync += stack_pointer.eq(stack_pointer - self.bus.index_in)
+                                m.next = "AT_LEAST_ONE_ITEM"
 
                         with m.Case(self.INTROSPECT):
-                            with m.If(self.in_aux_valid):
-                                with m.If(self.bus.index_in > stack_pointer):
-                                    m.d.comb += self.internal_fault.eq(1)
-                                    m.next = "FAULTED"
-                                with m.Else():
-                                    m.d.comb += rport.addr.eq(self.bus.index_in)
-                                    m.d.comb += self.out_data_port.eq(rport.data)
-                                    m.d.comb += self.out_data_valid.eq(1)
-                                    m.next = "AT_LEAST_ONE_ITEM"
+                            with m.If(self.bus.index_in > stack_pointer):
+                                m.d.comb += self.bus.internal_fault.eq(1)
+                                m.next = "FAULTED"
+                            with m.Else():
+                                m.d.comb += rport.addr.eq(self.bus.index_in)
+                                m.d.comb += self.bus.data_out.eq(rport.data)
+                                m.d.comb += self.out_data_valid.eq(1)
+                                m.next = "AT_LEAST_ONE_ITEM"
 
                         with m.Case(self.READ_TOS):
                             m.d.comb += self.out_data_valid.eq(1)
                             m.d.comb += rport.addr.eq(stack_pointer)
-                            m.d.comb += self.out_data_port.eq(rport.data)
+                            m.d.comb += self.bus.data_out.eq(rport.data)
                             m.d.comb += self.out_data_valid.eq(1)
                             m.next = "AT_LEAST_ONE_ITEM"
 
@@ -196,7 +194,7 @@ class ParseStack(Elaboratable):
                             m.next = "AT_LEAST_ONE_ITEM"
 
             with m.State("FAULTED"):
-                m.d.comb += self.internal_fault.eq(1)
+                m.d.comb += self.bus.internal_fault.eq(1)
                 m.next = "FAULTED"
 
 
-- 
GitLab