|
|
diff -Naur mig.org/mig_38/user_design/rtl/memc3_infrastructure.vhd mig/mig_38/user_design/rtl/memc3_infrastructure.vhd
|
|
|
--- mig.org/mig_38/user_design/rtl/memc3_infrastructure.vhd 2011-12-30 20:07:53.000000000 +0100
|
|
|
+++ mig/mig_38/user_design/rtl/memc3_infrastructure.vhd 2012-01-02 14:05:44.000000000 +0100
|
|
|
@@ -95,7 +95,9 @@
|
|
|
mcb_drp_clk : out std_logic;
|
|
|
pll_ce_0 : out std_logic;
|
|
|
pll_ce_90 : out std_logic;
|
|
|
- pll_lock : out std_logic
|
|
|
+ pll_lock : out std_logic;
|
|
|
+ clk_125 : out std_logic;
|
|
|
+ clk_50 : out std_logic
|
|
|
|
|
|
);
|
|
|
end entity;
|
|
|
@@ -121,6 +123,8 @@
|
|
|
signal clk0_bufg_in : std_logic;
|
|
|
signal mcb_drp_clk_bufg_in : std_logic;
|
|
|
signal clkfbout_clkfbin : std_logic;
|
|
|
+ signal clkfbout_clkfbin2 : std_logic;
|
|
|
+ signal clk_50i, clk_125i : std_logic;
|
|
|
signal rst_tmp : std_logic;
|
|
|
signal sys_clk_ibufg : std_logic;
|
|
|
signal sys_rst : std_logic;
|
|
|
@@ -330,5 +334,73 @@
|
|
|
LOCK => bufpll_mcb_locked
|
|
|
);
|
|
|
|
|
|
+
|
|
|
+ -- second PLL to generate 125 MHz for giga-bit MAC and 50 MHz for VGA
|
|
|
+ u_pll_adv2 : PLL_ADV
|
|
|
+ generic map
|
|
|
+ (
|
|
|
+ BANDWIDTH => "OPTIMIZED",
|
|
|
+ CLKIN1_PERIOD => CLK_PERIOD_NS,
|
|
|
+ CLKIN2_PERIOD => CLK_PERIOD_NS,
|
|
|
+ CLKOUT0_DIVIDE => 8, -- 125 MHz
|
|
|
+ CLKOUT1_DIVIDE => 20, -- 50 MHz
|
|
|
+ CLKOUT2_DIVIDE => C_CLKOUT2_DIVIDE,
|
|
|
+ CLKOUT3_DIVIDE => C_CLKOUT3_DIVIDE,
|
|
|
+ CLKOUT4_DIVIDE => 1,
|
|
|
+ CLKOUT5_DIVIDE => 1,
|
|
|
+ CLKOUT0_PHASE => 0.000,
|
|
|
+ CLKOUT1_PHASE => 0.000,
|
|
|
+ CLKOUT2_PHASE => 0.000,
|
|
|
+ CLKOUT3_PHASE => 0.000,
|
|
|
+ CLKOUT4_PHASE => 0.000,
|
|
|
+ CLKOUT5_PHASE => 0.000,
|
|
|
+ CLKOUT0_DUTY_CYCLE => 0.500,
|
|
|
+ CLKOUT1_DUTY_CYCLE => 0.500,
|
|
|
+ CLKOUT2_DUTY_CYCLE => 0.500,
|
|
|
+ CLKOUT3_DUTY_CYCLE => 0.500,
|
|
|
+ CLKOUT4_DUTY_CYCLE => 0.500,
|
|
|
+ CLKOUT5_DUTY_CYCLE => 0.500,
|
|
|
+ SIM_DEVICE => "SPARTAN6",
|
|
|
+ COMPENSATION => "INTERNAL",
|
|
|
+ DIVCLK_DIVIDE => 1,
|
|
|
+ CLKFBOUT_MULT => 5, -- 1000 MHz
|
|
|
+ CLKFBOUT_PHASE => 0.0,
|
|
|
+ REF_JITTER => 0.005000
|
|
|
+ )
|
|
|
+ port map
|
|
|
+ (
|
|
|
+ CLKFBIN => clkfbout_clkfbin2,
|
|
|
+ CLKINSEL => '1',
|
|
|
+ CLKIN1 => sys_clk_ibufg,
|
|
|
+ CLKIN2 => '0',
|
|
|
+ DADDR => (others => '0'),
|
|
|
+ DCLK => '0',
|
|
|
+ DEN => '0',
|
|
|
+ DI => (others => '0'),
|
|
|
+ DWE => '0',
|
|
|
+ REL => '0',
|
|
|
+ RST => sys_rst,
|
|
|
+ CLKFBDCM => open,
|
|
|
+ CLKFBOUT => clkfbout_clkfbin2,
|
|
|
+ CLKOUTDCM0 => open,
|
|
|
+ CLKOUTDCM1 => open,
|
|
|
+ CLKOUTDCM2 => open,
|
|
|
+ CLKOUTDCM3 => open,
|
|
|
+ CLKOUTDCM4 => open,
|
|
|
+ CLKOUTDCM5 => open,
|
|
|
+ CLKOUT0 => clk_125i,
|
|
|
+ CLKOUT1 => clk_50i,
|
|
|
+ CLKOUT2 => open,
|
|
|
+ CLKOUT3 => open,
|
|
|
+ CLKOUT4 => open,
|
|
|
+ CLKOUT5 => open,
|
|
|
+ DO => open,
|
|
|
+ DRDY => open,
|
|
|
+ LOCKED => open
|
|
|
+ );
|
|
|
+
|
|
|
+ U_BUFG_125 : BUFG port map ( O => clk_125, I => clk_125i);
|
|
|
+ U_BUFG_50 : BUFG port map ( O => clk_50, I => clk_50i);
|
|
|
+
|
|
|
end architecture syn;
|
|
|
|
|
|
diff -Naur mig.org/mig_38/user_design/rtl/mig_38.vhd mig/mig_38/user_design/rtl/mig_38.vhd
|
|
|
--- mig.org/mig_38/user_design/rtl/mig_38.vhd 2011-12-30 20:07:53.000000000 +0100
|
|
|
+++ mig/mig_38/user_design/rtl/mig_38.vhd 2012-01-02 12:42:40.000000000 +0100
|
|
|
@@ -165,7 +165,9 @@
|
|
|
c3_p2_rd_empty : out std_logic;
|
|
|
c3_p2_rd_count : out std_logic_vector(6 downto 0);
|
|
|
c3_p2_rd_overflow : out std_logic;
|
|
|
- c3_p2_rd_error : out std_logic
|
|
|
+ c3_p2_rd_error : out std_logic;
|
|
|
+ clk_125 : out std_logic;
|
|
|
+ clk_50 : out std_logic
|
|
|
);
|
|
|
end mig_38;
|
|
|
|
|
|
@@ -198,8 +200,9 @@
|
|
|
pll_ce_0 : out std_logic;
|
|
|
pll_ce_90 : out std_logic;
|
|
|
pll_lock : out std_logic;
|
|
|
- mcb_drp_clk : out std_logic
|
|
|
-
|
|
|
+ mcb_drp_clk : out std_logic;
|
|
|
+ clk_125 : out std_logic;
|
|
|
+ clk_50 : out std_logic
|
|
|
);
|
|
|
end component;
|
|
|
|
|
|
@@ -363,8 +366,8 @@
|
|
|
constant C3_CLKOUT1_DIVIDE : integer := 1;
|
|
|
constant C3_CLKOUT2_DIVIDE : integer := 16;
|
|
|
constant C3_CLKOUT3_DIVIDE : integer := 8;
|
|
|
- constant C3_CLKFBOUT_MULT : integer := 2;
|
|
|
- constant C3_DIVCLK_DIVIDE : integer := 1;
|
|
|
+ constant C3_CLKFBOUT_MULT : integer := 2*5;
|
|
|
+ constant C3_DIVCLK_DIVIDE : integer := 1*3;
|
|
|
constant C3_INCLK_PERIOD : integer := ((C3_MEMCLK_PERIOD * C3_CLKFBOUT_MULT) / (C3_DIVCLK_DIVIDE * C3_CLKOUT0_DIVIDE * 2));
|
|
|
constant C3_ARB_NUM_TIME_SLOTS : integer := 12;
|
|
|
constant C3_ARB_TIME_SLOT_0 : bit_vector(5 downto 0) := o"02";
|
|
|
@@ -485,7 +488,9 @@
|
|
|
pll_ce_0 => c3_pll_ce_0,
|
|
|
pll_ce_90 => c3_pll_ce_90,
|
|
|
pll_lock => c3_pll_lock,
|
|
|
- mcb_drp_clk => c3_mcb_drp_clk
|
|
|
+ mcb_drp_clk => c3_mcb_drp_clk,
|
|
|
+ clk_125 => clk_125,
|
|
|
+ clk_50 => clk_50
|
|
|
);
|
|
|
|
|
|
|
|
|
|