natsfr icon

LiteX no clock constraint

natsfr | PRO | 03/09/21 05:45:56 PM UTC | 0 ⭐ | 1142 👁️ | Never ⏰ | []
Python |

1.51 KB

|

None

|

0 👍

/

0 👎

#!/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