vendor.ice40_hx1k_blink_evn: implement.

This commit is contained in:
whitequark 2019-06-01 16:47:47 +00:00
parent eab372383a
commit ba0fcddb2c
2 changed files with 47 additions and 0 deletions

21
examples/blinky.py Normal file
View file

@ -0,0 +1,21 @@
from nmigen import *
from nmigen.vendor.ice40_hx1k_blink_evn import *
class Blinky(Elaboratable):
def elaborate(self, platform):
clk3p3 = platform.request("clk3p3", 0)
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)

26
nmigen/vendor/ice40_hx1k_blink_evn.py vendored Normal file
View file

@ -0,0 +1,26 @@
from ..build import *
from .fpga.lattice_ice40 import LatticeICE40Platform, IceBurnProgrammerMixin
__all__ = ["ICE40HX1KBlinkEVNPlatform"]
class ICE40HX1KBlinkEVNPlatform(IceBurnProgrammerMixin, LatticeICE40Platform):
device = "hx1k"
package = "vq100"
clocks = [
("clk3p3", 3.3e6),
]
resources = [
Resource("clk3p3", 0, Pins("13", dir="i"), extras=["IO_STANDARD=SB_LVCMOS33"]),
Resource("user_led", 0, Pins("59", dir="o"), extras=["IO_STANDARD=SB_LVCMOS33"]),
Resource("user_led", 1, Pins("56", dir="o"), extras=["IO_STANDARD=SB_LVCMOS33"]),
Resource("user_led", 2, Pins("53", dir="o"), extras=["IO_STANDARD=SB_LVCMOS33"]),
Resource("user_led", 3, Pins("51", dir="o"), extras=["IO_STANDARD=SB_LVCMOS33"]),
Resource("user_btn", 0, Pins("60"), extras=["IO_STANDARD=SB_LVCMOS33"]),
Resource("user_btn", 1, Pins("57"), extras=["IO_STANDARD=SB_LVCMOS33"]),
Resource("user_btn", 2, Pins("54"), extras=["IO_STANDARD=SB_LVCMOS33"]),
Resource("user_btn", 3, Pins("52"), extras=["IO_STANDARD=SB_LVCMOS33"]),
]