library esa;
use esa.memoryctrl.all;
+-- pragma translate_off
+library unisim;
+use unisim.BUFG;
+use unisim.DCM;
+-- pragma translate_on
use work.config.all;
signal sdckesig : std_ulogic;
signal uart_ensig : std_ulogic;
signal sdclkl2 : std_ulogic;
-signal sddll_rst : std_ulogic;
+signal sddll_rst : std_logic_vector(0 to 3);
signal sigzero : std_logic;
signal fbackdll : std_ulogic;
signal erx_clk2 : std_ulogic;
port map (lclk, lclk, clkm, open, open, sdclkl, open, cgi, cgo, open, clk50);
sigzero <= '0';
- sddll_rst <= not cgo.clklock;
+-- sddll_rst <= not cgo.clklock;
+
+rstdff : process(sdclkl, cgo.clklock)
+begin
+ if cgo.clklock = '0' then sddll_rst <= (others => '1');
+ elsif rising_edge(sdclkl) then
+ sddll_rst <= sddll_rst(1 to 3) & '0';
+ end if;
+end process;
dllsdclk : DCM
generic map (CLKFX_MULTIPLY => 2, CLKFX_DIVIDE => 2, CLKOUT_PHASE_SHIFT => "FIXED", PHASE_SHIFT => -60)
port map ( CLKIN => sdclkl, CLKFB => fbackdll, DSSEN => sigzero, PSCLK => sigzero,
- PSEN => sigzero, PSINCDEC => sigzero, RST => sddll_rst, CLK0 => fbackdll,
+ PSEN => sigzero, PSINCDEC => sigzero, RST => sddll_rst(0), CLK0 => fbackdll,
CLKFX => sdclkl2, CLK2X => open, CLKFX180 => open, LOCKED => open);
--sdclkl2 <= not sdclkl;