Line 154... |
Line 154... |
|
|
filled = Signal(bool())
|
filled = Signal(bool())
|
|
|
ob1 = Signal(intbv()[8:])
|
ob1 = Signal(intbv()[8:])
|
copy1 = Signal(intbv()[8:])
|
copy1 = Signal(intbv()[8:])
|
|
copy2 = Signal(intbv()[8:])
|
flush = Signal(bool(0))
|
flush = Signal(bool(0))
|
|
|
adler1 = Signal(intbv()[16:])
|
adler1 = Signal(intbv()[16:])
|
adler2 = Signal(intbv()[16:])
|
adler2 = Signal(intbv()[16:])
|
ladler1 = Signal(intbv()[16:])
|
ladler1 = Signal(intbv()[16:])
|
Line 1147... |
Line 1148... |
state.next = d_state.HEADER
|
state.next = d_state.HEADER
|
else:
|
else:
|
o_oprogress.next = do # + 1
|
o_oprogress.next = do # + 1
|
o_done.next = True
|
o_done.next = True
|
state.next = d_state.IDLE
|
state.next = d_state.IDLE
|
elif cur_i < length + 1:
|
elif cur_i < length + 2:
|
oraddr.next = offset + cur_i
|
oraddr.next = offset + cur_i
|
if cur_i == 1:
|
if cur_i == 1:
|
copy1.next = orbyte
|
copy1.next = orbyte
|
|
# print("c1", cur_i, length, offset, do, orbyte)
|
|
if cur_i == 3:
|
|
copy2.next = orbyte
|
if cur_i > 1:
|
if cur_i > 1:
|
|
# Special 1 byte offset handling:
|
if offset + cur_i == do + 1:
|
if offset + cur_i == do + 1:
|
obyte.next = copy1
|
obyte.next = copy1
|
else:
|
elif cur_i == 3 or offset + cur_i != do:
|
obyte.next = orbyte
|
obyte.next = orbyte
|
|
# Special 2 byte offset handling:
|
|
elif cur_i > 2:
|
|
if cur_i & 1:
|
|
obyte.next = copy2
|
|
else:
|
|
obyte.next = copy1
|
|
else: # cur_i == 2
|
|
obyte.next = copy1
|
oaddr.next = do
|
oaddr.next = do
|
o_oprogress.next = do + 1
|
o_oprogress.next = do + 1
|
do.next = do + 1
|
do.next = do + 1
|
cur_i.next = cur_i + 1
|
cur_i.next = cur_i + 1
|
else:
|
else:
|
oaddr.next = do
|
|
if offset + cur_i == do + 1:
|
|
obyte.next = copy1
|
|
else:
|
|
obyte.next = orbyte
|
|
do.next = do + 1
|
|
o_oprogress.next = do + 1
|
|
cur_next.next = 0
|
cur_next.next = 0
|
state.next = d_state.NEXT
|
state.next = d_state.NEXT
|
|
|
else:
|
else:
|
|
|