--- cmv_hdmi3_clean_raw_fixed.2023.2/hdmi_pll.vhd 2024-02-13 22:16:49.074810578 +0100 +++ cmv_hdmi3_clean_raw_fixed.2023.2/hdmi_pll.vhd 2024-03-07 02:24:11.424204692 +0100 @@ -1,9 +1,9 @@ ---------------------------------------------------------------------------- -- hdmi_pll.vhd -- Axiom Alpha HDMI related PLLs (Reconf) --- Version 1.1 +-- Version 1.2 -- --- Copyright (C) 2013-2014 H.Poetzl +-- Copyright (C) 2013-2024 H.Poetzl -- -- This program is free software: you can redistribute it and/or -- modify it under the terms of the GNU General Public License @@ -20,11 +20,22 @@ use IEEE.numeric_std.ALL; package hdmi_pll_pkg is type hdmi_config is ( - HDMI_5000KHZ, HDMI_5208KHZ, HDMI_7425KHZ, - HDMI_120MHZ, HDMI_148MHZ, HDMI_148500KHZ, - HDMI_148571KHZ, - HDMI_160MHZ, HDMI_180MHZ, HDMI_200MHZ ); - + HDMI_5940KHZ, HDMI_6400KHZ, HDMI_6600KHZ, HDMI_6750KHZ, + HDMI_6875KHZ, HDMI_7425KHZ, HDMI_7500KHZ, HDMI_8000KHZ, + HDMI_8250KHZ, HDMI_8640KHZ, HDMI_9000KHZ, HDMI_9600KHZ, + HDMI_9900KHZ, HDMI_10000KHZ, HDMI_10800KHZ, HDMI_11000KHZ, + HDMI_12000KHZ, HDMI_12375KHZ, HDMI_12500KHZ, HDMI_13500KHZ, + HDMI_13750KHZ, HDMI_14400KHZ, HDMI_14850KHZ, HDMI_15000KHZ, + HDMI_16000KHZ, HDMI_16500KHZ, HDMI_18000KHZ, HDMI_20000KHZ, + HDMI_20625KHZ, HDMI_21600KHZ, HDMI_24000KHZ, HDMI_24750KHZ, + HDMI_25000KHZ, HDMI_27000KHZ, HDMI_27500KHZ, HDMI_29700KHZ, + HDMI_30000KHZ, HDMI_32000KHZ, HDMI_33000KHZ, HDMI_36000KHZ, + HDMI_37125KHZ, HDMI_40000KHZ, HDMI_41250KHZ, HDMI_43200KHZ, + HDMI_48000KHZ, HDMI_49500KHZ, HDMI_50000KHZ, HDMI_54000KHZ, + HDMI_55000KHZ, HDMI_60000KHZ, HDMI_72000KHZ, HDMI_74250KHZ, + HDMI_80000KHZ, HDMI_82500KHZ, HDMI_100000KHZ, HDMI_108000KHZ, + HDMI_120000KHZ, HDMI_148500KHZ, HDMI_160000KHZ, HDMI_165000KHZ + ); end; @@ -42,7 +53,7 @@ use work.hdmi_pll_pkg.ALL; entity hdmi_pll is generic ( - PLL_CONFIG : hdmi_config := HDMI_160MHZ + PLL_CONFIG : hdmi_config := HDMI_165000KHZ ); port ( ref_clk_in : in std_logic; -- input clock to FPGA @@ -77,145 +88,551 @@ architecture RTL of hdmi_pll is CLKOUT0_DIVIDE_F : real; CLKOUT1_DIVIDE : natural; CLKOUT2_DIVIDE : natural; - -- - CLKOUT0_PHASE : real; - CLKOUT1_PHASE : real; - CLKOUT2_PHASE : real; end record; type hdmi_config_a is array (hdmi_config) of hdmi_config_r; constant conf_c : hdmi_config_a := ( - HDMI_5000KHZ => ( + HDMI_5940KHZ => ( CLKIN1_PERIOD => 10.000, - CLKFBOUT_MULT_F => 62.5, - DIVCLK_DIVIDE => 10, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, -- CLKOUT0_DIVIDE_F => 25.0, CLKOUT1_DIVIDE => 125, - CLKOUT2_DIVIDE => 125, + CLKOUT2_DIVIDE => 125 ), + + HDMI_6400KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.000, + DIVCLK_DIVIDE => 1, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT0_DIVIDE_F => 25.0, + CLKOUT1_DIVIDE => 125, + CLKOUT2_DIVIDE => 125 ), - HDMI_5208KHZ => ( + HDMI_6600KHZ => ( CLKIN1_PERIOD => 10.000, - CLKFBOUT_MULT_F => 62.5, - DIVCLK_DIVIDE => 10, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 25.0, + CLKOUT1_DIVIDE => 125, + CLKOUT2_DIVIDE => 125 ), + + HDMI_6750KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 22.0, + CLKOUT1_DIVIDE => 110, + CLKOUT2_DIVIDE => 110 ), + + HDMI_6875KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, -- CLKOUT0_DIVIDE_F => 24.0, CLKOUT1_DIVIDE => 120, - CLKOUT2_DIVIDE => 120, + CLKOUT2_DIVIDE => 120 ), + + HDMI_7425KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT0_DIVIDE_F => 20.0, + CLKOUT1_DIVIDE => 100, + CLKOUT2_DIVIDE => 100 ), + HDMI_7500KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 22.0, + CLKOUT1_DIVIDE => 110, + CLKOUT2_DIVIDE => 110 ), - HDMI_7425KHZ => ( + HDMI_8000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 10.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 25.0, + CLKOUT1_DIVIDE => 125, + CLKOUT2_DIVIDE => 125 ), + + HDMI_8250KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 20.0, + CLKOUT1_DIVIDE => 100, + CLKOUT2_DIVIDE => 100 ), + + HDMI_8640KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 25.0, + CLKOUT1_DIVIDE => 125, + CLKOUT2_DIVIDE => 125 ), + + HDMI_9000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 24.0, + CLKOUT1_DIVIDE => 120, + CLKOUT2_DIVIDE => 120 ), + + HDMI_9600KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 25.0, + CLKOUT1_DIVIDE => 125, + CLKOUT2_DIVIDE => 125 ), + + HDMI_9900KHZ => ( CLKIN1_PERIOD => 10.000, CLKFBOUT_MULT_F => 37.125, DIVCLK_DIVIDE => 5, -- + CLKOUT0_DIVIDE_F => 15.0, + CLKOUT1_DIVIDE => 75, + CLKOUT2_DIVIDE => 75 ), + + HDMI_10000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 24.0, + CLKOUT1_DIVIDE => 120, + CLKOUT2_DIVIDE => 120 ), + + HDMI_10800KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- CLKOUT0_DIVIDE_F => 20.0, CLKOUT1_DIVIDE => 100, - CLKOUT2_DIVIDE => 100, + CLKOUT2_DIVIDE => 100 ), + + HDMI_11000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT0_DIVIDE_F => 15.0, + CLKOUT1_DIVIDE => 75, + CLKOUT2_DIVIDE => 75 ), - HDMI_120MHZ => ( + HDMI_12000KHZ => ( CLKIN1_PERIOD => 10.000, - CLKFBOUT_MULT_F => 24.000, - DIVCLK_DIVIDE => 2, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, -- - CLKOUT0_DIVIDE_F => 2.0, - CLKOUT1_DIVIDE => 10, - CLKOUT2_DIVIDE => 10, + CLKOUT0_DIVIDE_F => 20.0, + CLKOUT1_DIVIDE => 100, + CLKOUT2_DIVIDE => 100 ), + + HDMI_12375KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT0_DIVIDE_F => 12.0, + CLKOUT1_DIVIDE => 60, + CLKOUT2_DIVIDE => 60 ), - HDMI_148MHZ => ( + HDMI_12500KHZ => ( CLKIN1_PERIOD => 10.000, - CLKFBOUT_MULT_F => 37.000, + CLKFBOUT_MULT_F => 10.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 16.0, + CLKOUT1_DIVIDE => 80, + CLKOUT2_DIVIDE => 80 ), + + HDMI_13500KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, DIVCLK_DIVIDE => 5, -- - CLKOUT0_DIVIDE_F => 1.0, - CLKOUT1_DIVIDE => 5, - CLKOUT2_DIVIDE => 5, + CLKOUT0_DIVIDE_F => 16.0, + CLKOUT1_DIVIDE => 80, + CLKOUT2_DIVIDE => 80 ), + + HDMI_13750KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT0_DIVIDE_F => 12.0, + CLKOUT1_DIVIDE => 60, + CLKOUT2_DIVIDE => 60 ), - HDMI_148500KHZ => ( + HDMI_14400KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 15.0, + CLKOUT1_DIVIDE => 75, + CLKOUT2_DIVIDE => 75 ), + + HDMI_14850KHZ => ( CLKIN1_PERIOD => 10.000, CLKFBOUT_MULT_F => 37.125, DIVCLK_DIVIDE => 5, -- - CLKOUT0_DIVIDE_F => 1.0, - CLKOUT1_DIVIDE => 5, - CLKOUT2_DIVIDE => 5, + CLKOUT0_DIVIDE_F => 10.0, + CLKOUT1_DIVIDE => 50, + CLKOUT2_DIVIDE => 50 ), + + HDMI_15000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT0_DIVIDE_F => 16.0, + CLKOUT1_DIVIDE => 80, + CLKOUT2_DIVIDE => 80 ), - HDMI_148571KHZ => ( + HDMI_16000KHZ => ( CLKIN1_PERIOD => 10.000, - CLKFBOUT_MULT_F => 52.0, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 15.0, + CLKOUT1_DIVIDE => 75, + CLKOUT2_DIVIDE => 75 ), + + HDMI_16500KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 10.0, + CLKOUT1_DIVIDE => 50, + CLKOUT2_DIVIDE => 50 ), + + HDMI_18000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, DIVCLK_DIVIDE => 5, -- - CLKOUT0_DIVIDE_F => 1.4, - CLKOUT1_DIVIDE => 7, - CLKOUT2_DIVIDE => 7, + CLKOUT0_DIVIDE_F => 12.0, + CLKOUT1_DIVIDE => 60, + CLKOUT2_DIVIDE => 60 ), + + HDMI_20000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT0_DIVIDE_F => 12.0, + CLKOUT1_DIVIDE => 60, + CLKOUT2_DIVIDE => 60 ), - HDMI_160MHZ => ( + HDMI_20625KHZ => ( CLKIN1_PERIOD => 10.000, - CLKFBOUT_MULT_F => 8.0, + CLKFBOUT_MULT_F => 8.250, DIVCLK_DIVIDE => 1, -- - CLKOUT0_DIVIDE_F => 1.0, - CLKOUT1_DIVIDE => 5, - CLKOUT2_DIVIDE => 5, + CLKOUT0_DIVIDE_F => 8.0, + CLKOUT1_DIVIDE => 40, + CLKOUT2_DIVIDE => 40 ), + + HDMI_21600KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT0_DIVIDE_F => 10.0, + CLKOUT1_DIVIDE => 50, + CLKOUT2_DIVIDE => 50 ), - HDMI_180MHZ => ( + HDMI_24000KHZ => ( CLKIN1_PERIOD => 10.000, - CLKFBOUT_MULT_F => 9.0, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 10.0, + CLKOUT1_DIVIDE => 50, + CLKOUT2_DIVIDE => 50 ), + + HDMI_24750KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 6.0, + CLKOUT1_DIVIDE => 30, + CLKOUT2_DIVIDE => 30 ), + + HDMI_25000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 10.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 8.0, + CLKOUT1_DIVIDE => 40, + CLKOUT2_DIVIDE => 40 ), + + HDMI_27000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 8.0, + CLKOUT1_DIVIDE => 40, + CLKOUT2_DIVIDE => 40 ), + + HDMI_27500KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 6.0, + CLKOUT1_DIVIDE => 30, + CLKOUT2_DIVIDE => 30 ), + + HDMI_29700KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 5.0, + CLKOUT1_DIVIDE => 25, + CLKOUT2_DIVIDE => 25 ), + + HDMI_30000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 8.0, + CLKOUT1_DIVIDE => 40, + CLKOUT2_DIVIDE => 40 ), + + HDMI_32000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 5.0, + CLKOUT1_DIVIDE => 25, + CLKOUT2_DIVIDE => 25 ), + + HDMI_33000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 5.0, + CLKOUT1_DIVIDE => 25, + CLKOUT2_DIVIDE => 25 ), + + HDMI_36000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 6.0, + CLKOUT1_DIVIDE => 30, + CLKOUT2_DIVIDE => 30 ), + + HDMI_37125KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 4.0, + CLKOUT1_DIVIDE => 20, + CLKOUT2_DIVIDE => 20 ), + + HDMI_40000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 6.0, + CLKOUT1_DIVIDE => 30, + CLKOUT2_DIVIDE => 30 ), + + HDMI_41250KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 4.0, + CLKOUT1_DIVIDE => 20, + CLKOUT2_DIVIDE => 20 ), + + HDMI_43200KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 5.0, + CLKOUT1_DIVIDE => 25, + CLKOUT2_DIVIDE => 25 ), + + HDMI_48000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, DIVCLK_DIVIDE => 1, -- + CLKOUT0_DIVIDE_F => 5.0, + CLKOUT1_DIVIDE => 25, + CLKOUT2_DIVIDE => 25 ), + + HDMI_49500KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 3.0, + CLKOUT1_DIVIDE => 15, + CLKOUT2_DIVIDE => 15 ), + + HDMI_50000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 10.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 4.0, + CLKOUT1_DIVIDE => 20, + CLKOUT2_DIVIDE => 20 ), + + HDMI_54000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 4.0, + CLKOUT1_DIVIDE => 20, + CLKOUT2_DIVIDE => 20 ), + + HDMI_55000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 3.0, + CLKOUT1_DIVIDE => 15, + CLKOUT2_DIVIDE => 15 ), + + HDMI_60000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 4.0, + CLKOUT1_DIVIDE => 20, + CLKOUT2_DIVIDE => 20 ), + + HDMI_72000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 3.0, + CLKOUT1_DIVIDE => 15, + CLKOUT2_DIVIDE => 15 ), + + HDMI_74250KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 2.0, + CLKOUT1_DIVIDE => 10, + CLKOUT2_DIVIDE => 10 ), + + HDMI_80000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 3.0, + CLKOUT1_DIVIDE => 15, + CLKOUT2_DIVIDE => 15 ), + + HDMI_82500KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 2.0, + CLKOUT1_DIVIDE => 10, + CLKOUT2_DIVIDE => 10 ), + + HDMI_100000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 10.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 2.0, + CLKOUT1_DIVIDE => 10, + CLKOUT2_DIVIDE => 10 ), + + HDMI_108000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 54.000, + DIVCLK_DIVIDE => 5, + -- + CLKOUT0_DIVIDE_F => 2.0, + CLKOUT1_DIVIDE => 10, + CLKOUT2_DIVIDE => 10 ), + + HDMI_120000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 12.000, + DIVCLK_DIVIDE => 1, + -- + CLKOUT0_DIVIDE_F => 2.0, + CLKOUT1_DIVIDE => 10, + CLKOUT2_DIVIDE => 10 ), + + HDMI_148500KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 37.125, + DIVCLK_DIVIDE => 5, + -- CLKOUT0_DIVIDE_F => 1.0, CLKOUT1_DIVIDE => 5, - CLKOUT2_DIVIDE => 5, - -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 ), + CLKOUT2_DIVIDE => 5 ), - HDMI_200MHZ => ( + HDMI_160000KHZ => ( CLKIN1_PERIOD => 10.000, - CLKFBOUT_MULT_F => 10.0, + CLKFBOUT_MULT_F => 8.000, DIVCLK_DIVIDE => 1, -- CLKOUT0_DIVIDE_F => 1.0, CLKOUT1_DIVIDE => 5, - CLKOUT2_DIVIDE => 5, + CLKOUT2_DIVIDE => 5 ), + + HDMI_165000KHZ => ( + CLKIN1_PERIOD => 10.000, + CLKFBOUT_MULT_F => 8.250, + DIVCLK_DIVIDE => 1, -- - CLKOUT0_PHASE => 0.0, - CLKOUT1_PHASE => 0.0, - CLKOUT2_PHASE => 0.0 )); + CLKOUT0_DIVIDE_F => 1.0, + CLKOUT1_DIVIDE => 5, + CLKOUT2_DIVIDE => 5 ) + ); signal pll_fbout : std_logic; @@ -248,9 +665,9 @@ begin CLKOUT1_DIVIDE => conf_c(PLL_CONFIG).CLKOUT1_DIVIDE, CLKOUT2_DIVIDE => conf_c(PLL_CONFIG).CLKOUT2_DIVIDE, -- - CLKOUT0_PHASE => conf_c(PLL_CONFIG).CLKOUT0_PHASE, - CLKOUT1_PHASE => conf_c(PLL_CONFIG).CLKOUT1_PHASE, - CLKOUT2_PHASE => conf_c(PLL_CONFIG).CLKOUT2_PHASE, + CLKOUT0_PHASE => 0.0, + CLKOUT1_PHASE => 0.0, + CLKOUT2_PHASE => 0.0, -- DIVCLK_DIVIDE => conf_c(PLL_CONFIG).DIVCLK_DIVIDE ) port map (