blob: a30c276fc7ef1a67f30bc7c2e0d8942f414dd850 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
// See LICENSE for license details.
/** LFSRs in all shapes and sizes.
*/
package chisel3.util
import chisel3._
// scalastyle:off magic.number
/** linear feedback shift register
*/
object LFSR16
{
def apply(increment: Bool = Bool(true)): UInt =
{
val width = 16
val lfsr = Reg(init=UInt(1, width))
when (increment) { lfsr := Cat(lfsr(0)^lfsr(2)^lfsr(3)^lfsr(5), lfsr(width-1,1)) }
lfsr
}
}
// scalastyle:on magic.number
|