Commit 72f36d2b authored by Grzegorz Daniluk's avatar Grzegorz Daniluk

cute_ref_design: use tm_time_valid instead of new pps_valid output for 10MHz alignment

parent 4c481218
...@@ -170,7 +170,6 @@ package wr_cute_pkg is ...@@ -170,7 +170,6 @@ package wr_cute_pkg is
led_link_o : out std_logic; led_link_o : out std_logic;
btn1_i : in std_logic := '1'; btn1_i : in std_logic := '1';
btn2_i : in std_logic := '1'; btn2_i : in std_logic := '1';
pps_valid_o : out std_logic;
pps_p_o : out std_logic; pps_p_o : out std_logic;
pps_led_o : out std_logic; pps_led_o : out std_logic;
pps_csync_o : out std_logic; pps_csync_o : out std_logic;
......
...@@ -272,7 +272,6 @@ entity xwrc_board_cute is ...@@ -272,7 +272,6 @@ entity xwrc_board_cute is
btn1_i : in std_logic := '1'; btn1_i : in std_logic := '1';
btn2_i : in std_logic := '1'; btn2_i : in std_logic := '1';
-- 1PPS output -- 1PPS output
pps_valid_o: out std_logic;
pps_p_o : out std_logic; pps_p_o : out std_logic;
pps_led_o : out std_logic; pps_led_o : out std_logic;
pps_csync_o: out std_logic; pps_csync_o: out std_logic;
...@@ -670,7 +669,6 @@ begin -- architecture struct ...@@ -670,7 +669,6 @@ begin -- architecture struct
link_ok_o => link_ok_o); link_ok_o => link_ok_o);
tm_time_valid_o <= tm_time_valid; tm_time_valid_o <= tm_time_valid;
pps_valid_o <= tm_time_valid;
pll_locked_o <= pll_locked; pll_locked_o <= pll_locked;
onewire_oen_o <= onewire_en(0); onewire_oen_o <= onewire_en(0);
......
...@@ -197,7 +197,6 @@ architecture rtl of cute_core_ref_top is ...@@ -197,7 +197,6 @@ architecture rtl of cute_core_ref_top is
signal aux_half_high: unsigned(15 downto 0); signal aux_half_high: unsigned(15 downto 0);
signal aux_half_low : unsigned(15 downto 0); signal aux_half_low : unsigned(15 downto 0);
signal aux_shift : unsigned(15 downto 0); signal aux_shift : unsigned(15 downto 0);
signal pps_valid_d : std_logic;
signal clk_realign : std_logic; signal clk_realign : std_logic;
signal new_freq : std_logic; signal new_freq : std_logic;
...@@ -205,9 +204,9 @@ architecture rtl of cute_core_ref_top is ...@@ -205,9 +204,9 @@ architecture rtl of cute_core_ref_top is
signal pps_csync : std_logic; signal pps_csync : std_logic;
attribute maxdelay : string; attribute maxdelay : string;
attribute maxdelay of pps_csync : signal is "500 ps"; attribute maxdelay of pps_csync : signal is "500 ps";
signal pps_valid : std_logic;
signal tm_tai : std_logic_vector(39 downto 0); signal tm_tai : std_logic_vector(39 downto 0);
signal tm_tai_valid : std_logic; signal tm_tai_valid : std_logic;
signal tm_tai_valid_d1 : std_logic;
-- Wishbone buse(s) from masters attached to crossbar -- Wishbone buse(s) from masters attached to crossbar
signal cnx_master_out : t_wishbone_master_out_array(0 downto 0); signal cnx_master_out : t_wishbone_master_out_array(0 downto 0);
signal cnx_master_in : t_wishbone_master_in_array(0 downto 0); signal cnx_master_in : t_wishbone_master_in_array(0 downto 0);
...@@ -312,7 +311,6 @@ begin ...@@ -312,7 +311,6 @@ begin
led_link_o => sfp1_led, led_link_o => sfp1_led,
pps_p_o => pps_out, pps_p_o => pps_out,
pps_led_o => usr_led1, pps_led_o => usr_led1,
pps_valid_o => pps_valid,
pps_csync_o => pps_csync, pps_csync_o => pps_csync,
pll_locked_o => pll_locked, pll_locked_o => pll_locked,
link_ok_o => usr_led2); link_ok_o => usr_led2);
...@@ -331,13 +329,13 @@ begin ...@@ -331,13 +329,13 @@ begin
begin begin
if rising_edge(clk_ref_125m) then if rising_edge(clk_ref_125m) then
if(rst_ref_125m_n = '0' or pll_locked = '0') then -- if new_freq or pll lost lock, if(rst_ref_125m_n = '0' or pll_locked = '0') then -- if new_freq or pll lost lock,
pps_valid_d <= '0'; tm_tai_valid_d1 <= '0';
elsif(pps_csync = '1') then elsif(pps_csync = '1') then
pps_valid_d <= pps_valid; tm_tai_valid_d1 <= tm_tai_valid;
end if; end if;
end if; end if;
end process; end process;
clk_realign <= (not pps_valid_d) and pps_valid and pps_csync; clk_realign <= (not tm_tai_valid_d1) and tm_tai_valid and pps_csync;
process(clk_ref_125m) process(clk_ref_125m)
variable rest : integer range 0 to 65535; variable rest : integer range 0 to 65535;
......
...@@ -190,7 +190,6 @@ architecture rtl of cute_wr_ref_top is ...@@ -190,7 +190,6 @@ architecture rtl of cute_wr_ref_top is
signal aux_half_high: unsigned(15 downto 0); signal aux_half_high: unsigned(15 downto 0);
signal aux_half_low : unsigned(15 downto 0); signal aux_half_low : unsigned(15 downto 0);
signal aux_shift : unsigned(15 downto 0); signal aux_shift : unsigned(15 downto 0);
signal pps_valid_d : std_logic;
signal clk_realign : std_logic; signal clk_realign : std_logic;
signal new_freq : std_logic; signal new_freq : std_logic;
...@@ -218,9 +217,9 @@ architecture rtl of cute_wr_ref_top is ...@@ -218,9 +217,9 @@ architecture rtl of cute_wr_ref_top is
signal pps_csync : std_logic; signal pps_csync : std_logic;
attribute maxdelay : string; attribute maxdelay : string;
attribute maxdelay of pps_csync : signal is "500 ps"; attribute maxdelay of pps_csync : signal is "500 ps";
signal pps_valid : std_logic;
signal tm_tai : std_logic_vector(39 downto 0); signal tm_tai : std_logic_vector(39 downto 0);
signal tm_tai_valid : std_logic; signal tm_tai_valid : std_logic;
signal tm_tai_valid_d1 : std_logic;
-- Wishbone buse(s) from masters attached to crossbar -- Wishbone buse(s) from masters attached to crossbar
signal cnx_master_out : t_wishbone_master_out_array(0 downto 0); signal cnx_master_out : t_wishbone_master_out_array(0 downto 0);
signal cnx_master_in : t_wishbone_master_in_array(0 downto 0); signal cnx_master_in : t_wishbone_master_in_array(0 downto 0);
...@@ -325,7 +324,6 @@ begin ...@@ -325,7 +324,6 @@ begin
led_link_o => sfp1_led, led_link_o => sfp1_led,
pps_p_o => pps_out, pps_p_o => pps_out,
pps_led_o => usr_led1, pps_led_o => usr_led1,
pps_valid_o => pps_valid,
pps_csync_o => pps_csync, pps_csync_o => pps_csync,
pll_locked_o => pll_locked, pll_locked_o => pll_locked,
link_ok_o => usr_led2); link_ok_o => usr_led2);
...@@ -364,13 +362,13 @@ begin ...@@ -364,13 +362,13 @@ begin
begin begin
if rising_edge(clk_ref_125m) then if rising_edge(clk_ref_125m) then
if(rst_ref_125m_n = '0' or pll_locked = '0') then -- if new_freq or pll lost lock, if(rst_ref_125m_n = '0' or pll_locked = '0') then -- if new_freq or pll lost lock,
pps_valid_d <= '0'; tm_tai_valid_d1 <= '0';
elsif(pps_csync = '1') then elsif(pps_csync = '1') then
pps_valid_d <= pps_valid; tm_tai_valid_d1 <= tm_tai_valid;
end if; end if;
end if; end if;
end process; end process;
clk_realign <= (not pps_valid_d) and pps_valid and pps_csync; clk_realign <= (not tm_tai_valid_d1) and tm_tai_valid and pps_csync;
process(clk_ref_125m) process(clk_ref_125m)
variable rest : integer range 0 to 65535; variable rest : integer range 0 to 65535;
......
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