#!/usr/bin/env python3
from migen import *
from litex.build.generic_platform import *
from litex.build.xilinx import XilinxPlatform
# Declare IOs
_io = [
("clk50", 0, Pins("P123"), IOStandard("LVCMOS33")),
("user_led", 0, Pins("P119"), IOStandard("LVCMOS33"), Drive(8)),
("user_led", 1, Pins("P118"), IOStandard("LVCMOS33"), Drive(8)),
("user_led", 2, Pins("P117"), IOStandard("LVCMOS33"), Drive(8)),
]
# Platform
class Platform(XilinxPlatform):
default_clk_name = "clk50"
default_clk_period = 20 # period in ns
# W25Q16DV - component U1
# 16Mb - 75 MHz clock frequency
spiflash_model = "w25q16dw"
spiflash_read_dummy_bits = 8
spiflash_clock_div = 4
spiflash_total_size = int((16/8)*1024*1024) # 16Mbit
spiflash_page_size = 256
spiflash_sector_size = 0x10000
def __init__(self):
XilinxPlatform.__init__(self, "xc6slx9-tqg144-2", _io, toolchain="ise")
def do_finalize(self, fragment):
XilinxPlatform.do_finalize(self, fragment)
def create_programmer(self):
raise NotImplementedError
platform = Platform()
ledb = platform.request("user_led", 0)
ledg = platform.request("user_led", 1)
ledr = platform.request("user_led", 2)
module = Module()
counter = Signal(32)
module.sync += [
counter.eq(counter + 1),
If(counter == int(50e6),
counter.eq(0)
),
ledb.eq(counter[23]),
ledg.eq(counter[24]),
ledr.eq(counter[25])
]
platform.build(module)
Comments