examples: update blinky, add some explanatory text about domains.
This commit is contained in:
parent
7257c20a6a
commit
7dfd7fb12a
21
examples/board/01_blinky.py
Normal file
21
examples/board/01_blinky.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
# If the design does not create a "sync" clock domain, it is created by the nMigen build system
|
||||
# using the platform default clock (and default reset, if any).
|
||||
|
||||
from nmigen import *
|
||||
from nmigen_boards.ice40_hx1k_blink_evn import *
|
||||
|
||||
|
||||
class Blinky(Elaboratable):
|
||||
def elaborate(self, platform):
|
||||
led = platform.request("led", 0)
|
||||
timer = Signal(20)
|
||||
|
||||
m = Module()
|
||||
m.d.sync += timer.eq(timer + 1)
|
||||
m.d.comb += led.o.eq(timer[-1])
|
||||
return m
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
platform = ICE40HX1KBlinkEVNPlatform()
|
||||
platform.build(Blinky(), do_program=True)
|
25
examples/board/02_domain.py
Normal file
25
examples/board/02_domain.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
# If more control over clocking and resets is required, a "sync" clock domain could be created
|
||||
# explicitly, which overrides the default behavior. Any other clock domains could also be
|
||||
# independently created in addition to the main "sync" domain.
|
||||
|
||||
from nmigen import *
|
||||
from nmigen_boards.ice40_hx1k_blink_evn import *
|
||||
|
||||
|
||||
class BlinkyWithDomain(Elaboratable):
|
||||
def elaborate(self, platform):
|
||||
clk3p3 = platform.request("clk3p3")
|
||||
led = platform.request("led", 0)
|
||||
timer = Signal(20)
|
||||
|
||||
m = Module()
|
||||
m.domains.sync = ClockDomain()
|
||||
m.d.comb += ClockSignal().eq(clk3p3.i)
|
||||
m.d.sync += timer.eq(timer + 1)
|
||||
m.d.comb += led.o.eq(timer[-1])
|
||||
return m
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
platform = ICE40HX1KBlinkEVNPlatform()
|
||||
platform.build(BlinkyWithDomain(), do_program=True)
|
|
@ -1,21 +0,0 @@
|
|||
from nmigen import *
|
||||
from nmigen_boards.ice40_hx1k_blink_evn import *
|
||||
|
||||
|
||||
class Blinky(Elaboratable):
|
||||
def elaborate(self, platform):
|
||||
clk3p3 = platform.request("clk3p3")
|
||||
user_led = platform.request("user_led", 0)
|
||||
counter = Signal(20)
|
||||
|
||||
m = Module()
|
||||
m.domains.sync = ClockDomain()
|
||||
m.d.comb += ClockSignal().eq(clk3p3.i)
|
||||
m.d.sync += counter.eq(counter + 1)
|
||||
m.d.comb += user_led.o.eq(counter[-1])
|
||||
return m
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
platform = ICE40HX1KBlinkEVNPlatform()
|
||||
platform.build(Blinky(), do_program=True)
|
Loading…
Reference in a new issue