mac/crc.py: make crc calculation more pythonic
This commit is contained in:
parent
2ceaa74caf
commit
9dcc7bc65e
|
@ -56,11 +56,12 @@ class LiteEthMACCRCEngine(Module):
|
|||
return r
|
||||
|
||||
# compute and optimize the parallel implementation of the CRC's LFSR
|
||||
taps = [x for x in range(width) if (1 << x) & polynom]
|
||||
curval = [[("state", i)] for i in range(width)]
|
||||
for i in range(data_width):
|
||||
feedback = curval.pop() + [("din", i)]
|
||||
for j in range(width-1):
|
||||
if (polynom & (1<<(j+1))):
|
||||
if j+1 in taps:
|
||||
curval[j] += feedback
|
||||
curval[j] = _optimize_eq(curval[j])
|
||||
curval.insert(0, feedback)
|
||||
|
|
Loading…
Reference in New Issue