- # op requests inversion of the output...
- o = Signal.like(self.i.o)
- if hasattr(op, "invert_out"): # ... optionally
- with m.If(op.invert_out):
- comb += o.eq(~self.i.o.data)
- with m.Else():
- comb += o.eq(self.i.o.data)
- else:
- comb += o.eq(self.i.o.data) # ... no inversion
+ with m.If(~op.sv_pred_dz): # when SVP64 zeroing is set, output is zero
+ # op requests inversion of the output...
+ o = Signal.like(self.i.o)
+ if hasattr(op, "invert_out"): # ... optionally
+ with m.If(op.invert_out):
+ comb += o.eq(~self.i.o.data)
+ with m.Else():
+ comb += o.eq(self.i.o.data)
+ else:
+ comb += o.eq(self.i.o.data) # ... no inversion