Minor cleanup
authorMichael Nolan <mtnolan2640@gmail.com>
Sat, 29 Feb 2020 19:35:02 +0000 (14:35 -0500)
committerMichael Nolan <mtnolan2640@gmail.com>
Sat, 29 Feb 2020 19:35:02 +0000 (14:35 -0500)
src/decoder/power_major_decoder.py
src/decoder/test/test_power_major_decoder.py

index c71fa15570357c9fc80fafc64382d9918aecd655..5bab55377a88731383d406844cefd151d7d38f7d 100644 (file)
@@ -3,11 +3,13 @@ import csv
 import os
 from enum import Enum, unique
 
+
 @unique
 class Function(Enum):
     ALU = 0
     LDST = 1
 
+
 @unique
 class InternalOp(Enum):
     OP_ADD = 0
@@ -23,20 +25,24 @@ class InternalOp(Enum):
     OP_TDI = 10
     OP_XOR = 11
 
+
 def get_csv(name):
     file_dir = os.path.dirname(os.path.realpath(__file__))
     with open(os.path.join(file_dir, name)) as csvfile:
         reader = csv.DictReader(csvfile)
         return list(reader)
 
+
 major_opcodes = get_csv("major.csv")
 
+
 class PowerMajorDecoder(Elaboratable):
     def __init__(self):
         self.opcode_in = Signal(6, reset_less=True)
 
         self.function_unit = Signal(Function, reset_less=True)
         self.internal_op = Signal(InternalOp, reset_less=True)
+
     def elaborate(self, platform):
         m = Module()
         comb = m.d.comb
@@ -49,6 +55,7 @@ class PowerMajorDecoder(Elaboratable):
                     comb += self.internal_op.eq(InternalOp[row['internal op']])
         return m
 
-
-
-    
+    def ports(self):
+        return [self.opcode_in,
+                self.function_unit,
+                self.internal_op]
index 05d9b13c7eef175ac2df11523fbd837e871a78b4..321772eb445320cec39ce1b091085093f3dea877 100644 (file)
@@ -1,12 +1,13 @@
-from nmigen import Module, Elaboratable, Signal
-from nmigen.back.pysim import Simulator, Delay, Settle
+from nmigen import Module, Signal
+from nmigen.back.pysim import Simulator, Delay
 from nmigen.test.utils import FHDLTestCase
 from nmigen.cli import rtlil
 import sys
 import unittest
 sys.path.append("../")
 from power_major_decoder import (PowerMajorDecoder, Function,
-                                InternalOp, major_opcodes)
+                                 InternalOp, major_opcodes)
+
 
 class DecoderTestCase(FHDLTestCase):
     def test_function_unit(self):
@@ -22,6 +23,7 @@ class DecoderTestCase(FHDLTestCase):
                  internal_op.eq(dut.internal_op)]
 
         sim = Simulator(m)
+
         def process():
             for row in major_opcodes:
                 yield opcode.eq(int(row['opcode']))
@@ -34,15 +36,16 @@ class DecoderTestCase(FHDLTestCase):
                 expected = InternalOp[row['internal op']].value
                 self.assertEqual(expected, result)
         sim.add_process(process)
-        with sim.write_vcd("test.vcd", "test.gtkw", traces=[opcode, function_unit, internal_op]):
+        with sim.write_vcd("test.vcd", "test.gtkw", traces=[
+                opcode, function_unit, internal_op]):
             sim.run()
 
     def test_ilang(self):
         dut = PowerMajorDecoder()
-        vl = rtlil.convert(dut, ports=[dut.opcode_in, dut.function_unit])
+        vl = rtlil.convert(dut, ports=dut.ports())
         with open("power_major_decoder.il", "w") as f:
             f.write(vl)
 
+
 if __name__ == "__main__":
     unittest.main()
-