1 # This file is Copyright (c) 2016 Florent Kermarrec <florent@enjoy-digital.fr>
4 from litex
.build
.generic_platform
import *
5 from litex
.build
.lattice
import LatticePlatform
6 from litex
.build
.lattice
.programmer
import LatticeProgrammer
10 ("clk12", 0, Pins("C8"), IOStandard("LVCMOS33")),
11 ("rst_n", 0, Pins("B3"), IOStandard("LVCMOS33")),
13 ("user_led", 0, Pins("H11"), IOStandard("LVCMOS33")),
14 ("user_led", 1, Pins("J13"), IOStandard("LVCMOS33")),
15 ("user_led", 2, Pins("J11"), IOStandard("LVCMOS33")),
16 ("user_led", 3, Pins("L12"), IOStandard("LVCMOS33")),
17 ("user_led", 4, Pins("K11"), IOStandard("LVCMOS33")),
18 ("user_led", 5, Pins("L13"), IOStandard("LVCMOS33")),
19 ("user_led", 6, Pins("N15"), IOStandard("LVCMOS33")),
20 ("user_led", 7, Pins("P16"), IOStandard("LVCMOS33")),
22 ("user_dip_btn", 0, Pins("N2"), IOStandard("LVCMOS33")),
23 ("user_dip_btn", 1, Pins("P1"), IOStandard("LVCMOS33")),
24 ("user_dip_btn", 2, Pins("M3"), IOStandard("LVCMOS33")),
25 ("user_dip_btn", 3, Pins("N1"), IOStandard("LVCMOS33")),
28 Subsignal("tx", Pins("C11"), IOStandard("LVCMOS33")),
29 Subsignal("rx", Pins("A11"), IOStandard("LVCMOS33")),
34 class Platform(LatticePlatform
):
35 default_clk_name
= "clk12"
36 default_clk_period
= 83
39 LatticePlatform
.__init
__(self
, "LCMXO3L-6900C-5BG256C", _io
)
41 def create_programmer(self
):
43 <?xml version='1.0' encoding='utf-8' ?>
44 <!DOCTYPE ispXCF SYSTEM "IspXCF.dtd" >
45 <ispXCF version="3.6.0">
50 <SelectedProg value="TRUE"/>
52 <Vendor>Lattice</Vendor>
53 <Family>MachXO3L</Family>
54 <Name>LCMXO3L-6900C</Name>
55 <IDCode>0x412bd043</IDCode>
56 <Package>All</Package>
57 <PON>LCMXO3L-6900C</PON>
59 <InstrLen>8</InstrLen>
60 <InstrVal>11111111</InstrVal>
61 <BScanLen>1</BScanLen>
62 <BScanVal>0</BScanVal>
64 <File>{bitstream_file}</File>
65 <JedecChecksum>N/A</JedecChecksum>
66 <Operation>SRAM Fast Configuration</Operation>
68 <SVFVendor>JTAG STANDARD</SVFVendor>
69 <IOState>HighZ</IOState>
70 <PreloadLength>664</PreloadLength>
71 <IOVectorData>0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF</IOVectorData>
72 <Usercode>0x00000000</Usercode>
73 <AccessMode>SRAM</AccessMode>
78 <Program>SEQUENTIAL</Program>
79 <Process>ENTIRED CHAIN</Process>
80 <OperationOverride>No Override</OperationOverride>
81 <StartTAP>TLR</StartTAP>
83 <VerifyUsercode value="FALSE"/>
86 <CableName>USB2</CableName>
87 <PortAdd>FTUSB-0</PortAdd>
88 <USBID>Lattice XO3L Starter Kit A Location 0000 Serial A</USBID>
92 return LatticeProgrammer(_xcf_template
)