Commit 3931baf9 authored by Tristan Gingold's avatar Tristan Gingold

Add ucf chunks for fmc.

parent abaa0981
NET "fmc{n}_clk_125m" TNM_NET = fmc{n}_clk_125m;
TIMEGRP "fmc{n}_sync"="synchronizers" EXCEPT "fmc{n}_clk_125m";
TIMESPEC TS_fmc{n}_sync_ffs = FROM fmc{n}_clk_125m TO "fmc{n}_sync" 20ns DATAPATHONLY;
......@@ -386,8 +386,6 @@ TIMESPEC TS_fp_gpio3_i = PERIOD "fp_gpio3_i" 100 ns HIGH 50%;
NET "clk_ref_125m" TNM_NET = clk_125m_pllref;
NET "clk_sys_62m5" TNM_NET = clk_sys;
NET "fmc1_clk_125m" TNM_NET = fmc1_clk_125m;
NET "fmc0_clk_125m" TNM_NET = fmc0_clk_125m;
NET "cmp_xwrc_board_svec/phy8_to_wrc_rx_clk" TNM_NET = phy_rx_rbclk;
NET "*/gc_sync_ffs_in" TNM_NET = "sync_ffs";
......@@ -396,14 +394,10 @@ TIMEGRP "synchronizers"="sync_ffs" "sync_reg";
TIMEGRP "ref_sync"="synchronizers" EXCEPT "clk_125m_pllref";
TIMEGRP "sys_sync"="synchronizers" EXCEPT "clk_sys";
TIMEGRP "fmc0_sync"="synchronizers" EXCEPT "fmc0_clk_125m";
TIMEGRP "fmc1_sync"="synchronizers" EXCEPT "fmc1_clk_125m";
TIMEGRP "phy_sync"="synchronizers" EXCEPT "phy_rx_rbclk";
TIMESPEC TS_ref_sync_ffs = FROM clk_125m_pllref TO "ref_sync" 20ns DATAPATHONLY;
TIMESPEC TS_sys_sync_ffs = FROM clk_sys TO "sys_sync" 20ns DATAPATHONLY;
TIMESPEC TS_fmc1_sync_ffs = FROM fmc1_clk_125m TO "fmc1_sync" 20ns DATAPATHONLY;
TIMESPEC TS_fmc0_sync_ffs = FROM fmc0_clk_125m TO "fmc0_sync" 20ns DATAPATHONLY;
TIMESPEC TS_phy_sync_ffs = FROM phy_rx_rbclk TO "phy_sync" 20ns DATAPATHONLY;
# Relax the path where TAI time crosses from WR ref to MT sys clock
......
......@@ -171,10 +171,17 @@ def generate_hdl(res, board, slots):
ucf_filename = os.path.join("hdl", "syn", res.name, res.name + ".ucf")
ucf_template = open(os.path.join(data_dir, board, "top.ucf")).read()
for k, v in slots.items():
# Pin assignments for fmc :param v: in slot :param k:
fmc_filename = os.path.join(
data_dir, v, "{}-fmc{}.ucf".format(board, k))
ucf_fmc = open(fmc_filename).read()
ucf_template += ucf_fmc
# Timing for slot :param k:
# If the slot is not used, the timing constraints shouldn't be present.
fmc_filename = os.path.join(data_dir, board, "fmcs.ucf")
ucf_fmc = open(fmc_filename).read()
ucf_template += ucf_fmc.format(n=k)
print("Writing {}".format(ucf_filename))
ucf = open(ucf_filename, "w")
ucf.write(ucf_template)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment