Skip to content
Snippets Groups Projects
Commit dc1b242c authored by Daniel van der Schuur's avatar Daniel van der Schuur
Browse files

-Added PPS delay generic.

parent 16c839d2
No related branches found
No related tags found
No related merge requests found
...@@ -55,6 +55,7 @@ ENTITY ctrl_unb1_board IS ...@@ -55,6 +55,7 @@ ENTITY ctrl_unb1_board IS
g_design_note : STRING := "UNUSED"; g_design_note : STRING := "UNUSED";
g_mm_clk_freq : NATURAL := c_unb1_board_mm_clk_freq_125M; -- default use same MM clock as for TSE clock g_mm_clk_freq : NATURAL := c_unb1_board_mm_clk_freq_125M; -- default use same MM clock as for TSE clock
g_xo_clk_use_pll : BOOLEAN := FALSE; g_xo_clk_use_pll : BOOLEAN := FALSE;
g_dp_clk_use_xo_pll : BOOLEAN := FALSE; -- Use the 200MHz XO PLL output (no external CLK)
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- External CLK -- External CLK
...@@ -99,6 +100,15 @@ ENTITY ctrl_unb1_board IS ...@@ -99,6 +100,15 @@ ENTITY ctrl_unb1_board IS
g_dp_phs_clk_vec_w : NATURAL := 0; -- >= 0 and <= 6, nof extra PLL output clocks dp_phs_clk_vec[5:0] = [c6, c5, c4, c3, c2, c1] g_dp_phs_clk_vec_w : NATURAL := 0; -- >= 0 and <= 6, nof extra PLL output clocks dp_phs_clk_vec[5:0] = [c6, c5, c4, c3, c2, c1]
g_dp_phs_clk_divide_by : NATURAL := 32; -- divided by factor for dp_phs_clk_vec[5:0] g_dp_phs_clk_divide_by : NATURAL := 32; -- divided by factor for dp_phs_clk_vec[5:0]
----------------------------------------------------------------------------
-- PPS delay
-- . Maximum number of dp_clk cycles that pps can be delayed. Actual number
-- is determined dynamically by MM register.
-- . 0 : Don't instantiate delay component. Does not add extra MM register.
-- . >0 : Instantiate delay component. Adds an extra MM register.
----------------------------------------------------------------------------
g_pps_delay_max : NATURAL := 0;
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
-- Use PHY Interface -- Use PHY Interface
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
...@@ -276,6 +286,7 @@ ARCHITECTURE str OF ctrl_unb1_board IS ...@@ -276,6 +286,7 @@ ARCHITECTURE str OF ctrl_unb1_board IS
SIGNAL i_xo_rst_n : STD_LOGIC; SIGNAL i_xo_rst_n : STD_LOGIC;
SIGNAL i_mm_rst : STD_LOGIC; SIGNAL i_mm_rst : STD_LOGIC;
SIGNAL clk200M : STD_LOGIC := '1';
SIGNAL clk125M : STD_LOGIC := '1'; SIGNAL clk125M : STD_LOGIC := '1';
SIGNAL clk40M : STD_LOGIC := '1'; SIGNAL clk40M : STD_LOGIC := '1';
SIGNAL clk50M : STD_LOGIC := '1'; SIGNAL clk50M : STD_LOGIC := '1';
...@@ -376,7 +387,7 @@ BEGIN ...@@ -376,7 +387,7 @@ BEGIN
); );
END GENERATE; END GENERATE;
no_pll: IF g_dp_clk_use_pll = FALSE GENERATE no_pll: IF g_dp_clk_use_pll = FALSE AND g_dp_clk_use_xo_pll=FALSE GENERATE
dp_clk <= ext_clk; dp_clk <= ext_clk;
dp_rst <= node_ctrl_dp_rst_out; dp_rst <= node_ctrl_dp_rst_out;
...@@ -391,6 +402,14 @@ BEGIN ...@@ -391,6 +402,14 @@ BEGIN
clk50M WHEN g_mm_clk_freq = c_unb1_board_mm_clk_freq_50M ELSE clk50M WHEN g_mm_clk_freq = c_unb1_board_mm_clk_freq_50M ELSE
clk50M; clk50M;
gen_dp_clk : IF g_dp_clk_use_xo_pll = TRUE AND g_dp_clk_use_pll=FALSE GENERATE
dp_clk <= clk200M;
dp_rst <= node_ctrl_dp_rst_out;
node_ctrl_dp_clk_in <= dp_clk_in;
END GENERATE;
u_unb1_board_clk25_pll : ENTITY work.unb1_board_clk25_pll u_unb1_board_clk25_pll : ENTITY work.unb1_board_clk25_pll
GENERIC MAP ( GENERIC MAP (
g_technology => g_technology g_technology => g_technology
...@@ -402,6 +421,7 @@ BEGIN ...@@ -402,6 +421,7 @@ BEGIN
c1_clk40 => clk40M, c1_clk40 => clk40M,
c2_clk50 => clk50M, c2_clk50 => clk50M,
c3_clk125 => clk125M, c3_clk125 => clk125M,
c4_clk200 => clk200M,
pll_locked => mm_locked_out pll_locked => mm_locked_out
); );
END GENERATE; END GENERATE;
...@@ -578,7 +598,8 @@ BEGIN ...@@ -578,7 +598,8 @@ BEGIN
u_mms_ppsh : ENTITY ppsh_lib.mms_ppsh u_mms_ppsh : ENTITY ppsh_lib.mms_ppsh
GENERIC MAP ( GENERIC MAP (
g_st_clk_freq => g_dp_clk_freq g_st_clk_freq => g_dp_clk_freq,
g_pps_delay_max => g_pps_delay_max
) )
PORT MAP ( PORT MAP (
-- Clocks and reset -- Clocks and reset
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment