Skip to content
Snippets Groups Projects
Select Git revision
  • 377ae89ad352e95f322fb9064a2bc3ca0696c123
  • master default protected
  • L2SS-2199-apply-dab-to-xy
  • L2SS-2417-more-vector-memory
  • test-pytango-10.0.3
  • revert-cs032-ccd-ip
  • deploy-components-parallel
  • fix-chrony-exporter
  • L2SS-2407-swap-iers-caltable-monitoring-port
  • L2SS-2357-fix-ruff
  • sync-up-with-meta-pypcc
  • stabilise-landing-page
  • all-stations-lofar2
  • v0.39.7-backports
  • Move-sdptr-to-v1.5.0
  • fix-build-ubuntu
  • tokens-in-env-files
  • fix-build
  • L2SS-2214-deploy-cdb
  • fix-missing-init
  • add-power-hardware-apply
  • v0.55.5-r2 protected
  • v0.52.8-rc1 protected
  • v0.55.5 protected
  • v0.55.4 protected
  • 0.55.2.dev0
  • 0.55.1.dev0
  • 0.55.0.dev0
  • v0.54.0 protected
  • 0.53.2.dev0
  • 0.53.1.dev0
  • v0.52.3-r2 protected
  • remove-snmp-client
  • v0.52.3 protected
  • v0.52.3dev0 protected
  • 0.53.1dev0
  • v0.52.2-rc3 protected
  • v0.52.2-rc2 protected
  • v0.52.2-rc1 protected
  • v0.52.1.1 protected
  • v0.52.1 protected
41 results

README.md

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    tech_pll_component_pkg.vhd 5.53 KiB
    -------------------------------------------------------------------------------
    --
    -- Copyright (C) 2014
    -- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
    -- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
    --
    -- This program is free software: you can redistribute it and/or modify
    -- it under the terms of the GNU General Public License as published by
    -- the Free Software Foundation, either version 3 of the License, or
    -- (at your option) any later version.
    --
    -- This program is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -- GNU General Public License for more details.
    --
    -- You should have received a copy of the GNU General Public License
    -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
    --
    -------------------------------------------------------------------------------
    
    -- Purpose: IP components declarations for various devices that get wrapped by the tech components
    
    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    
    PACKAGE tech_pll_component_pkg IS
    
      -- Choose multiple of 16 fs to avoid truncation by simulator
      CONSTANT tech_pll_clk_644_period      : TIME := 1551520 fs;                       -- = 1.551520 ns ~= 644.53125 MHz
      CONSTANT tech_pll_clk_156_period      : TIME := (tech_pll_clk_644_period*33)/8;   -- = 6.400020 ns ~= 156.25 MHz
      CONSTANT tech_pll_clk_312_period      : TIME := (tech_pll_clk_644_period*33)/16;  -- = 3.200010 ns ~= 312.5 MHz
    
      -- Reference clock offset: +100 ppm ~= 155 fs ~= 9*16 = 144 fs
      CONSTANT tech_pll_clk_644_10ppm       : TIME := 16 fs;
    
      -----------------------------------------------------------------------------
      -- ip_stratixiv
      -----------------------------------------------------------------------------
      
      COMPONENT ip_stratixiv_pll_clk200 IS
      GENERIC (
        g_operation_mode   : STRING := "NORMAL";   -- or "SOURCE_SYNCHRONOUS" --> requires PLL_COMPENSATE assignment to an input pin to compensate for (stratixiv)
        g_clk0_phase_shift : STRING := "0";
        g_clk1_phase_shift : STRING := "0"
      );
      PORT
      (
        areset    : IN STD_LOGIC  := '0';
        inclk0    : IN STD_LOGIC  := '0';
        c0    : OUT STD_LOGIC ;
        c1    : OUT STD_LOGIC ;
        c2    : OUT STD_LOGIC ;
        locked    : OUT STD_LOGIC 
      );
      END COMPONENT;
      
      COMPONENT ip_stratixiv_pll_clk200_p6 IS
      GENERIC (
        g_pll_type         : STRING := "Left_Right"; -- "AUTO", "Left_Right", or "Top_Bottom". Set "Left_Right" to direct using PLL_L3 close to CLK pin on UniBoard, because with "AUTO" still a top/bottom PLL may get inferred.
        g_operation_mode   : STRING := "NORMAL";     -- or "SOURCE_SYNCHRONOUS" --> requires PLL_COMPENSATE assignment to an input pin to compensate for (stratixiv)
        g_clk0_phase_shift : STRING := "0";          -- = 0 degrees for clk 200 MHz
        g_clk1_used        : STRING := "PORT_USED";  -- or "PORT_UNUSED"
        g_clk2_used        : STRING := "PORT_USED";  -- or "PORT_UNUSED"
        g_clk3_used        : STRING := "PORT_USED";  -- or "PORT_UNUSED"
        g_clk4_used        : STRING := "PORT_USED";  -- or "PORT_UNUSED"
        g_clk5_used        : STRING := "PORT_USED";  -- or "PORT_UNUSED"
        g_clk6_used        : STRING := "PORT_USED";  -- or "PORT_UNUSED"
        g_clk1_divide_by   : NATURAL := 32;          -- = clk 200/32 MHz 
        g_clk2_divide_by   : NATURAL := 32;          -- = clk 200/32 MHz 
        g_clk3_divide_by   : NATURAL := 32;          -- = clk 200/32 MHz 
        g_clk4_divide_by   : NATURAL := 32;          -- = clk 200/32 MHz 
        g_clk5_divide_by   : NATURAL := 32;          -- = clk 200/32 MHz 
        g_clk6_divide_by   : NATURAL := 32;          -- = clk 200/32 MHz 
        g_clk1_phase_shift : STRING := "0";          -- = 0     
        g_clk2_phase_shift : STRING := "156";        -- = 011.25
        g_clk3_phase_shift : STRING := "313";        -- = 022.5 
        g_clk4_phase_shift : STRING := "469";        -- = 033.75
        g_clk5_phase_shift : STRING := "625";        -- = 045   
                                    -- "781"         -- = 056.25
        g_clk6_phase_shift : STRING := "938"         -- = 067.5 
                                    -- "1094"        -- = 078.75
      );
      PORT
      (
        areset    : IN STD_LOGIC  := '0';
        inclk0    : IN STD_LOGIC  := '0';
        c0    : OUT STD_LOGIC ;
        c1    : OUT STD_LOGIC ;
        c2    : OUT STD_LOGIC ;
        c3    : OUT STD_LOGIC ;
        c4    : OUT STD_LOGIC ;
        c5    : OUT STD_LOGIC ;
        c6    : OUT STD_LOGIC ;
        locked    : OUT STD_LOGIC 
      );
      END COMPONENT;
      
      
      -----------------------------------------------------------------------------
      -- ip_arria10
      -----------------------------------------------------------------------------
      
      COMPONENT ip_arria10_pll_xgmii_mac_clocks IS
      PORT (
        pll_refclk0   : in  std_logic := '0'; --   pll_refclk0.clk
        pll_powerdown : in  std_logic := '0'; -- pll_powerdown.pll_powerdown
        pll_locked    : out std_logic;        --    pll_locked.pll_locked
        outclk0       : out std_logic;        --       outclk0.clk
        pll_cal_busy  : out std_logic;        --  pll_cal_busy.pll_cal_busy
        outclk1       : out std_logic         --       outclk1.clk
      );
      END COMPONENT;
    
      COMPONENT ip_arria10_pll_clk200 IS
      PORT
      (
        rst       : IN STD_LOGIC  := '0';
        refclk    : IN STD_LOGIC  := '0';
        outclk_0  : OUT STD_LOGIC ;
        outclk_1  : OUT STD_LOGIC ;
        outclk_2  : OUT STD_LOGIC ;
        locked    : OUT STD_LOGIC 
      );
      END COMPONENT;
      
    END tech_pll_component_pkg;