OpenCores
URL https://opencores.org/ocsvn/riscv_vhdl/riscv_vhdl/trunk

Subversion Repositories riscv_vhdl

[/] [riscv_vhdl/] [trunk/] [rtl/] [techmap/] [pll/] [clkp90_tech.vhd] - Rev 5

Compare with Previous | Blame | View Log

-----------------------------------------------------------------------------
--! @file
--! @copyright Copyright 2015 GNSS Sensor Ltd. All right reserved.
--! @author    Sergey Khabarov - sergeykhbr@gmail.com
--! @brief     Virtual clock phase offset generator (90 deg)
------------------------------------------------------------------------------
 
--! Standard library
library ieee;
use ieee.std_logic_1164.all;
library techmap;
use techmap.gencomp.all;
 
entity clkp90_tech is
  generic (
    tech    : integer range 0 to NTECH := 0;
    --! clock frequency in KHz
    freq    : integer := 125000
  );
  port (
    --! Active High
    i_rst    : in  std_logic;
    i_clk    : in  std_logic;
    o_clk    : out std_logic;
    o_clkp90 : out std_logic;
    o_clk2x  : out std_logic;
    o_lock   : out std_logic
  );
end clkp90_tech;
 
architecture rtl of clkp90_tech is
 
  component clkp90_virtex6 is
  port (
    i_clk    : in std_logic;
    o_clk    : out std_logic;
    o_clkp90 : out std_logic
  );
  end component;
 
  component clkp90_kintex7 is
  generic (
    freq    : integer := 125000
  );
  port (
    --! Active High
    i_rst    : in  std_logic;
    i_clk    : in  std_logic;
    o_clk    : out std_logic;
    o_clkp90 : out std_logic;
    o_clk2x  : out std_logic;
    o_lock   : out std_logic
  );
  end component;
 
begin
 
   xv6 : if tech = virtex6 generate
      v1 : clkp90_virtex6 port map (
           i_clk    => i_clk, 
           o_clk    => o_clk,
           o_clkp90 => o_clkp90
      );
      o_clk2x <= '0';
      o_lock <= '0';
   end generate;
 
   xl7 : if tech = kintex7  or tech = artix7 or tech = zynq7000 generate
      v1 : clkp90_kintex7 generic map (
          freq => freq
      ) port map (
          i_rst    => i_rst,
          i_clk    => i_clk,
          o_clk    => o_clk,
          o_clkp90 => o_clkp90,
          o_clk2x  => o_clk2x,
          o_lock   => o_lock
     );
   end generate;
 
   inf : if tech = inferred generate
      o_clk    <= i_clk;
      o_clkp90 <= i_clk;
      o_clk2x  <= '0';
      o_lock  <= '0';
   end generate;
 
   m180 : if tech = micron180 generate
   end generate;
 
end;
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.