projects
/
soc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ed0aeca
)
experiment with different completion times
author
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Wed, 22 May 2019 09:43:20 +0000
(10:43 +0100)
committer
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Wed, 22 May 2019 09:43:20 +0000
(10:43 +0100)
src/experiment/compalu.py
patch
|
blob
|
history
diff --git
a/src/experiment/compalu.py
b/src/experiment/compalu.py
index 71a4c68008a1aee98f580cf30bf6b9ba030cd2ee..3954baa0b8b5ee81d05d07c17202bc3b064043dc 100644
(file)
--- a/
src/experiment/compalu.py
+++ b/
src/experiment/compalu.py
@@
-10,7
+10,7
@@
class ComputationUnitNoDelay(Elaboratable):
self.rwid = rwid
self.alu = alu
self.rwid = rwid
self.alu = alu
- self.counter = Signal(
3
)
+ self.counter = Signal(
4
)
self.go_rd_i = Signal(reset_less=True) # go read in
self.go_wr_i = Signal(reset_less=True) # go write in
self.issue_i = Signal(reset_less=True) # fn issue in
self.go_rd_i = Signal(reset_less=True) # go read in
self.go_wr_i = Signal(reset_less=True) # go write in
self.issue_i = Signal(reset_less=True) # fn issue in
@@
-56,7
+56,12
@@
class ComputationUnitNoDelay(Elaboratable):
m.d.comb += self.rd_rel_o.eq(src_l.q & opc_l.q) # src1/src2 req rel
with m.If(req_l.qn & opc_l.q & (self.counter == 0)):
m.d.comb += self.rd_rel_o.eq(src_l.q & opc_l.q) # src1/src2 req rel
with m.If(req_l.qn & opc_l.q & (self.counter == 0)):
- m.d.sync += self.counter.eq(3)
+ with m.If(self.oper_i == 2): # MUL, to take 5 instructions
+ m.d.sync += self.counter.eq(5)
+ with m.Elif(self.oper_i == 3): # SHIFT to take 7
+ m.d.sync += self.counter.eq(7)
+ with m.Else(): # ADD/SUB to take 2
+ m.d.sync += self.counter.eq(2)
with m.If(self.counter > 0):
m.d.sync += self.counter.eq(self.counter - 1)
with m.If((self.counter == 1) | (self.counter == 0)):
with m.If(self.counter > 0):
m.d.sync += self.counter.eq(self.counter - 1)
with m.If((self.counter == 1) | (self.counter == 0)):