projects
/
ieee754fpu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3ae030c
)
explain comments
author
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Sat, 3 Aug 2019 01:19:51 +0000
(
02:19
+0100)
committer
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Sat, 3 Aug 2019 01:19:51 +0000
(
02:19
+0100)
src/nmutil/singlepipe.py
patch
|
blob
|
history
diff --git
a/src/nmutil/singlepipe.py
b/src/nmutil/singlepipe.py
index 600f0c530413c2ebbbbe2228f5003175cf8f149d..bcef43462611721e9aa4df0f2c7a4b8f95027808 100644
(file)
--- a/
src/nmutil/singlepipe.py
+++ b/
src/nmutil/singlepipe.py
@@
-436,17
+436,17
@@
class MaskCancellable(ControlBase):
#m.d.comb += p_valid_i.eq((self.p.data_i.ctx.idmask & \
# ~self.cancelmask)) # nonzero
#m.d.comb += p_valid_i.eq((self.p.data_i.ctx.idmask & \
# ~self.cancelmask)) # nonzero
- # if idmask nonzero, data gets passed on.
+ # if idmask nonzero, mask gets passed on (and register set).
+ # register is left as-is if idmask is zero, but out-mask is set to zero
m.d.sync += self.n.valid_o.eq(p_valid_i)
m.d.sync += self.n.valid_o.eq(p_valid_i)
+ m.d.sync += self.n.mask_o.eq(Mux(p_valid_i, self.p.mask_i, 0))
with m.If(p_valid_i):
with m.If(p_valid_i):
- m.d.sync += self.n.mask_o.eq(self.p.mask_i)
data_o = self._postprocess(result) # XXX TBD, does nothing right now
m.d.sync += nmoperator.eq(self.n.data_o, data_o) # update output
data_o = self._postprocess(result) # XXX TBD, does nothing right now
m.d.sync += nmoperator.eq(self.n.data_o, data_o) # update output
- with m.Else():
- m.d.sync += self.n.mask_o.eq(0)
# output valid if
# input always "ready"
# output valid if
# input always "ready"
+ #m.d.comb += self.p._ready_o.eq(self.n.ready_i_test)
m.d.comb += self.p._ready_o.eq(Const(1))
return self.m
m.d.comb += self.p._ready_o.eq(Const(1))
return self.m