-def get(ns, reset0, norflash0, uart0):
+def get(ns, clkfx_sys, reset0, norflash0, uart0):
constraints = []
def add(signal, pin, vec=-1, iostandard="LVCMOS33", extra=""):
constraints.append((ns.get_name(signal), vec, pin, iostandard, extra))
add(signal, p, i, iostandard, extra)
i += 1
+ add(clkfx_sys.clkin, "AB11", extra="TNM_NET = \"GRPclk50\"")
+
add(reset0.trigger_reset, "AA4")
add(reset0.ac97_rst_n, "D6")
add(reset0.videoin_rst_n, "W17")
r += ";\n"
r += """
-NET "sys_clk" LOC = AB11 | IOSTANDARD = LVCMOS33;
-NET "sys_clk" TNM_NET = "GRPclk50";
TIMESPEC "TSclk50" = PERIOD "GRPclk50" 20 ns HIGH 50%;
"""
from migen.fhdl import convtools, verilog, autofragment
from migen.bus import wishbone, csr, wishbone2csr
-from milkymist import m1reset, lm32, norflash, uart
+from milkymist import m1reset, clkfx, lm32, norflash, uart
import constraints
def get():
+ MHz = 1000000
+ clk_freq = 80*MHz
+
+ clkfx_sys = clkfx.Inst(50*MHz, clk_freq)
reset0 = m1reset.Inst()
cpu0 = lm32.Inst()
[(0, norflash0.bus), (3, wishbone2csr0.wishbone)],
register=True,
offset=1)
- uart0 = uart.Inst(0, 50*1000*1000, baud=115200)
+ uart0 = uart.Inst(0, clk_freq, baud=115200)
csrcon0 = csr.Interconnect(wishbone2csr0.csr, [uart0.bus])
- frag = autofragment.from_local() + Fragment(pads={reset0.trigger_reset})
+ frag = autofragment.from_local()
vns = convtools.Namespace()
- src_verilog = verilog.Convert(frag, name="soc",
+ src_verilog = verilog.Convert(frag,
+ {clkfx_sys.clkin, reset0.trigger_reset},
+ name="soc",
+ clk_signal=clkfx_sys.clkout,
rst_signal=reset0.sys_rst,
ns=vns)
- src_ucf = constraints.get(vns, reset0, norflash0, uart0)
+ src_ucf = constraints.get(vns, clkfx_sys, reset0, norflash0, uart0)
return (src_verilog, src_ucf)