diff --git a/unoptimized_lr/simple_lr_tables.py b/unoptimized_lr/simple_lr_tables.py index 5f45e0efd812ae03cc0d0ad7c4ab23be722014ef..03ce8916f223618a858220a545fb60ca853f580b 100644 --- a/unoptimized_lr/simple_lr_tables.py +++ b/unoptimized_lr/simple_lr_tables.py @@ -45,25 +45,6 @@ class TableBus(Record): super().__init__(TableBusLayout(row_input_width=row_input_width, column_input_width=column_input_width, output_width=output_width)) -class OneDimensionTableBusLayout(Layout): - def __init__(self, *, row_input_width, output_width): - super().__init__([ - # INPUTS - ("row_idx", unsigned(row_input_width)), # FROM SOURCE - ("valid_in", 1), # FROM SOURCE - ("ready_in", 1), # FROM DEST - - # OUTPUTS - ("output_data", unsigned(output_width)), # TO DEST - ("valid_out", 1), # TO DEST - ("ready_out", 1), # TO SOURCE - - ]) - -class OneDimensionTableBus(Record): - def __init__(self, *, row_input_width, output_width): - super().__init__(OneDimensionTableBusLayout(row_input_width=row_input_width, output_width=output_width)) - class LRTable(Elaboratable): def __init__(self, *, lang_params, input_array): @@ -216,6 +197,26 @@ class GOTOtable(Elaboratable): +class OneDimensionTableBusLayout(Layout): + def __init__(self, *, row_input_width, output_width): + super().__init__([ + # INPUTS + ("row_idx", unsigned(row_input_width)), # FROM SOURCE + ("valid_in", 1), # FROM SOURCE + ("ready_in", 1), # FROM DEST + + # OUTPUTS + ("output_data", unsigned(output_width)), # TO DEST + ("valid_out", 1), # TO DEST + ("ready_out", 1), # TO SOURCE + + ]) + +class OneDimensionTableBus(Record): + def __init__(self, *, row_input_width, output_width): + super().__init__(OneDimensionTableBusLayout(row_input_width=row_input_width, output_width=output_width)) + + class ReduceRuleTable(Elaboratable): def __init__(self, *, lang_params, input_array): # Parameters