From c2d42821125f97130c796519136c93bc1f65e803 Mon Sep 17 00:00:00 2001
From: Leon Hiemstra <hiemstra@astron.nl>
Date: Fri, 29 May 2015 09:49:34 +0000
Subject: [PATCH] added the fractional pll for clk125

---
 .../technology/fractional_pll/hdllib.cfg      |  3 +-
 .../tech_fractional_pll_clk125.vhd            | 64 +++++++++++++++++++
 .../tech_fractional_pll_component_pkg.vhd     | 13 ++++
 .../technology/pll/tech_pll_component_pkg.vhd | 13 ++++
 4 files changed, 92 insertions(+), 1 deletion(-)
 create mode 100644 libraries/technology/fractional_pll/tech_fractional_pll_clk125.vhd

diff --git a/libraries/technology/fractional_pll/hdllib.cfg b/libraries/technology/fractional_pll/hdllib.cfg
index 6e2d1a2be2..ae0b61a030 100644
--- a/libraries/technology/fractional_pll/hdllib.cfg
+++ b/libraries/technology/fractional_pll/hdllib.cfg
@@ -1,6 +1,6 @@
 hdl_lib_name = tech_fractional_pll
 hdl_library_clause_name = tech_fractional_pll_lib
-hdl_lib_uses_synth = technology ip_arria10_fractional_pll_clk200 common
+hdl_lib_uses_synth = technology ip_arria10_fractional_pll_clk200 ip_arria10_fractional_pll_clk125 common
 hdl_lib_uses_sim = 
 
 hdl_lib_technology = 
@@ -8,5 +8,6 @@ hdl_lib_technology =
 synth_files =
     tech_fractional_pll_component_pkg.vhd
     tech_fractional_pll_clk200.vhd
+    tech_fractional_pll_clk125.vhd
     
 test_bench_files =
diff --git a/libraries/technology/fractional_pll/tech_fractional_pll_clk125.vhd b/libraries/technology/fractional_pll/tech_fractional_pll_clk125.vhd
new file mode 100644
index 0000000000..0eb60b28c4
--- /dev/null
+++ b/libraries/technology/fractional_pll/tech_fractional_pll_clk125.vhd
@@ -0,0 +1,64 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2015
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY ieee, technology_lib;
+USE ieee.std_logic_1164.all;
+USE work.tech_fractional_pll_component_pkg.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE technology_lib.technology_select_pkg.ALL;
+
+-- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
+LIBRARY ip_arria10_fractional_pll_clk125_altera_xcvr_fpll_a10_150;
+
+ENTITY tech_fractional_pll_clk125 IS
+  GENERIC (
+    g_technology       : NATURAL := c_tech_select_default
+  );
+  PORT (
+    areset  : IN STD_LOGIC  := '0';
+    inclk0  : IN STD_LOGIC  := '0';  -- 125 MHz
+    c0      : OUT STD_LOGIC ;        --  20 MHz
+    c1      : OUT STD_LOGIC ;        --  50 MHz
+    c2      : OUT STD_LOGIC ;        -- 100 MHz
+    c3      : OUT STD_LOGIC ;        -- 125 MHz
+    locked  : OUT STD_LOGIC 
+  );
+END tech_fractional_pll_clk125;
+
+ARCHITECTURE str OF tech_fractional_pll_clk125 IS
+
+BEGIN
+
+  gen_ip_arria10 : IF g_technology=c_tech_arria10 GENERATE
+    u0 : ip_arria10_fractional_pll_clk125
+    PORT MAP (
+  		outclk0       => c0,            --       outclk0.clk
+  		outclk1       => c1,            --       outclk1.clk
+  		outclk2       => c2,            --       outclk2.clk
+  		outclk3       => c3,            --       outclk3.clk
+  		pll_cal_busy  => OPEN,          --  pll_cal_busy.pll_cal_busy
+  		pll_locked    => locked,        --    pll_locked.pll_locked
+  		pll_powerdown => areset,        -- pll_powerdown.pll_powerdown
+  		pll_refclk0   => inclk0         --   pll_refclk0.clk
+    );
+  END GENERATE;
+
+END ARCHITECTURE;
diff --git a/libraries/technology/fractional_pll/tech_fractional_pll_component_pkg.vhd b/libraries/technology/fractional_pll/tech_fractional_pll_component_pkg.vhd
index d1c5fd2be3..c8e1bcd975 100644
--- a/libraries/technology/fractional_pll/tech_fractional_pll_component_pkg.vhd
+++ b/libraries/technology/fractional_pll/tech_fractional_pll_component_pkg.vhd
@@ -43,6 +43,19 @@ PACKAGE tech_fractional_pll_component_pkg IS
   );
   END COMPONENT;
 
+  COMPONENT ip_arria10_fractional_pll_clk125 IS
+  PORT
+  (
+    outclk0       : out std_logic;        --       outclk0.clk
+    outclk1       : out std_logic;        --       outclk1.clk
+    outclk2       : out std_logic;        --       outclk2.clk
+    outclk3       : out std_logic;        --       outclk2.clk
+    pll_cal_busy  : out std_logic;        --  pll_cal_busy.pll_cal_busy
+    pll_locked    : out std_logic;        --    pll_locked.pll_locked
+    pll_powerdown : in  std_logic := '0'; -- pll_powerdown.pll_powerdown
+    pll_refclk0   : in  std_logic := '0'  --   pll_refclk0.clk
+  );
+  END COMPONENT;
   
 END tech_fractional_pll_component_pkg;
 
diff --git a/libraries/technology/pll/tech_pll_component_pkg.vhd b/libraries/technology/pll/tech_pll_component_pkg.vhd
index e402f3c8ea..7b7abf0467 100644
--- a/libraries/technology/pll/tech_pll_component_pkg.vhd
+++ b/libraries/technology/pll/tech_pll_component_pkg.vhd
@@ -161,6 +161,19 @@ PACKAGE tech_pll_component_pkg IS
     locked    : OUT STD_LOGIC 
   );
   END COMPONENT;
+
+--  COMPONENT ip_arria10_pll_clk200mm 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 ;
+--    outclk_3  : OUT STD_LOGIC ;
+--    locked    : OUT STD_LOGIC 
+--  );
+--  END COMPONENT;
   
 END tech_pll_component_pkg;
 
-- 
GitLab