[libre-riscv-dev] Change pspec to class hierarchy

Luke Kenneth Casson Leighton lkcl at lkcl.net
Sun Jul 14 09:52:04 BST 2019


wark-wark....  do try to commit code that is "complete", i.e. doesn't
break unit tests.
l.

lkcl at fizzy:~/src/libreriscv/ieee754fpu/src$ python3
ieee754/fpmul/test/test_fpmul_pipe_32.py
Traceback (most recent call last):
  File "ieee754/fpmul/test/test_fpmul_pipe_32.py", line 20, in <module>
    test_pipe_fp32()
  File "ieee754/fpmul/test/test_fpmul_pipe_32.py", line 14, in test_pipe_fp32
    dut = FPMULMuxInOut(32, 4)
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/ieee754/fpmul/pipeline.py",
line 52, in __init__
    self.alu = FPMULBasePipe(self.pspec)
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/ieee754/fpmul/pipeline.py",
line 23, in __init__
    self.pipe1 = FPMulSpecialCasesDeNorm(pspec)
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/ieee754/fpmul/specialcases.py",
line 138, in __init__
    SimpleHandshake.__init__(self, self) # pipe is its own stage
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/nmutil/singlepipe.py",
line 201, in __init__
    self._new_data("data")
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/nmutil/singlepipe.py",
line 206, in _new_data
    self.p.data_i, self.n.data_o = self.new_specs(name)
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/nmutil/stageapi.py",
line 182, in new_specs
    return (_spec(self.ispec, "%s_i" % name),
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/nmutil/stageapi.py",
line 100, in _spec
    return fn()
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/ieee754/fpmul/specialcases.py",
line 142, in ispec
    return FPADDBaseData(self.pspec)
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/ieee754/fpcommon/getop.py",
line 120, in __init__
    self.ctx = FPPipeContext(pspec)
  File "/home/lkcl/src/libreriscv/ieee754fpu/src/ieee754/fpcommon/getop.py",
line 95, in __init__
    self.op_wid = pspec.get('op_wid', 0)
AttributeError: 'PipelineSpec' object has no attribute 'get'



More information about the libre-riscv-dev mailing list