Remove useless _blinky.build_and_program() function.
[nmigen-boards.git] / nmigen_boards / _blinky.py
1 import itertools
2
3 from nmigen import *
4 from nmigen.build import ResourceError
5
6
7 class Blinky(Elaboratable):
8 def elaborate(self, platform):
9 m = Module()
10
11 leds = []
12 for n in itertools.count():
13 try:
14 leds.append(platform.request("user_led", n))
15 except ResourceError:
16 break
17 leds = Cat(led.o for led in leds)
18
19 clk_freq = platform.default_clk_frequency
20 ctr = Signal(max=int(clk_freq//2), reset=int(clk_freq//2) - 1)
21 with m.If(ctr == 0):
22 m.d.sync += ctr.eq(ctr.reset)
23 m.d.sync += leds.eq(~leds)
24 with m.Else():
25 m.d.sync += ctr.eq(ctr - 1)
26
27 return m