コード例 #1
0
 def elaborate(self, plat):
     lfsr1 = Lfsr.num_steps(1200)
     lfsr2 = Lfsr.num_steps(1000, default_enabled=False)
     led1 = plat.request('led_r')
     led2 = plat.request('led_g')
     m = Module()
     # Use both LFSRs
     m.d.sync += [
         led1.eq(lfsr1.value[0]),
         led2.eq(lfsr2.value[0]),
     ]
     # step lfsr2 when lfsr 1 is about to restart
     m.d.sync += [lfsr2.enable.eq(watch_lfsr(m, lfsr1, 1199))]
     m.submodules += [lfsr1, lfsr2]
     return m
コード例 #2
0
 def elaborate(self, plat):
     lfsr = Lfsr.num_steps(1100)
     led = plat.request('led_r')
     m = Module()
     m.d.sync += led.eq(lfsr.value[0])
     m.d.comb += lfsr.restart.eq(watch_lfsr(m, lfsr, 999))
     m.submodules += [lfsr]
     return m
コード例 #3
0
 def __init__(self, n_bits, *, with_enable=False):
     self.lfsrs = [
         Lfsr.num_steps(501 + 7 * i, restart_value=i) for i in range(n_bits)
     ]
     self.restart = Signal()  # Input
     self.with_enable = with_enable
     if with_enable:
         self.enable = Signal()  # Input
     self.output = Signal(n_bits)  # Output
コード例 #4
0
 def elaborate(self, plat):
     # 89.77 90.62 94.95 95.31 95.31 95.31 95.31 95.31 101.58 107.52
     lfsr = Lfsr.num_steps(1100, default_enabled=False)
     button = plat.request('button')
     led = plat.request('led_r')
     m = Module()
     m.d.sync += led.eq(lfsr.value[0])
     m.d.comb += lfsr.restart.eq(watch_lfsr(m, lfsr, 999))
     m.d.comb += lfsr.enable.eq(button)
     m.submodules += [lfsr]
     return m
コード例 #5
0
 def make_lfsr(self):
     return Lfsr.num_steps(self.num_words, default_enabled=False)