forked from M-Labs/artiq
1
0
Fork 0

gateware: work around ISE/Vivado bugs with very wide shifts.

This commit is contained in:
whitequark 2017-03-16 03:11:10 +00:00
parent f5aa73b8fa
commit 4b14887ddb
1 changed files with 4 additions and 2 deletions

View File

@ -14,7 +14,7 @@ class WishboneReader(Module):
self.bus = bus self.bus = bus
aw = len(bus.adr) aw = len(bus.adr)
dw = len(bus.dat_w) dw = len(bus.dat_w)
self.sink = stream.Endpoint([("address", aw)]) self.sink = stream.Endpoint([("address", aw)])
self.source = stream.Endpoint([("data", dw)]) self.source = stream.Endpoint([("data", dw)])
@ -106,7 +106,9 @@ class RawSlicer(Module):
If(load_buf, Case(level, If(load_buf, Case(level,
{i: buf[i*g:(i+in_size)*g].eq(self.sink.data) {i: buf[i*g:(i+in_size)*g].eq(self.sink.data)
for i in range(out_size)})), for i in range(out_size)})),
If(shift_buf, buf.eq(buf >> self.source_consume*g)) If(shift_buf, Case(self.source_consume,
{i: buf.eq(buf[i*g:])
for i in range(out_size)})),
] ]
fsm = FSM(reset_state="FETCH") fsm = FSM(reset_state="FETCH")