Memory DDR3时钟xilinx MIG

Memory DDR3时钟xilinx MIG,memory,ip,clock,vivado,Memory,Ip,Clock,Vivado,我正在尝试从DDR3 ram读写,连接到我的FPGA Artix-7。我正在使用米格-7,在Vivado 2015.1中构建我的IP IP需要两个输入时钟,参考时钟和系统时钟。 我使用内部IP(FPGA内部PLL)来制作一个400 Mhz时钟,并且我已经将时钟连接到它们 电路不工作,ui_clk_sync_rst为“0”,并且初始校准完成从不变高 我应该如何分配这些时钟信号 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use ieee.std_logic

我正在尝试从DDR3 ram读写,连接到我的FPGA Artix-7。我正在使用米格-7,在Vivado 2015.1中构建我的IP

IP需要两个输入时钟,参考时钟和系统时钟。 我使用内部IP(FPGA内部PLL)来制作一个400 Mhz时钟,并且我已经将时钟连接到它们

电路不工作,ui_clk_sync_rst为“0”,并且初始校准完成从不变高

我应该如何分配这些时钟信号

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;


entity Main_Prg is
    Port ( 

               -- Inouts
    ddr3_dq                        : inout std_logic_vector(7 downto 0);
    ddr3_dqs_p                     : inout std_logic_vector(0 downto 0);
    ddr3_dqs_n                     : inout std_logic_vector(0 downto 0);

    -- Outputs
    ddr3_addr                      : out   std_logic_vector(13 downto 0);
    ddr3_ba                        : out   std_logic_vector(2 downto 0);
    ddr3_ras_n                     : out   std_logic;
    ddr3_cas_n                     : out   std_logic;
    ddr3_we_n                      : out   std_logic;
    ddr3_reset_n                   : out   std_logic;
    ddr3_ck_p                      : out   std_logic_vector(0 downto 0);
    ddr3_ck_n                      : out   std_logic_vector(0 downto 0);
    ddr3_cke                       : out   std_logic_vector(0 downto 0);
    ddr3_cs_n                      : out   std_logic_vector(0 downto 0);
    ddr3_odt                       : out   std_logic_vector(0 downto 0);


           LEDV6 : out STD_LOGIC;
           LEDV7 : out STD_LOGIC;
           clk25 : in STD_LOGIC);
end Main_Prg;

architecture Behavioral of Main_Prg is


component Clock_IP
port
 (
  clk_in           : in     std_logic;
  clk_out          : out    std_logic
 );
end component Clock_IP;


  component DDR3_RAM
    port(
      ddr3_dq       : inout std_logic_vector(7 downto 0);
      ddr3_dqs_p    : inout std_logic_vector(0 downto 0);
      ddr3_dqs_n    : inout std_logic_vector(0 downto 0);

      ddr3_addr     : out   std_logic_vector(13 downto 0);
      ddr3_ba       : out   std_logic_vector(2 downto 0);
      ddr3_ras_n    : out   std_logic;
      ddr3_cas_n    : out   std_logic;
      ddr3_we_n     : out   std_logic;
      ddr3_reset_n  : out   std_logic;
      ddr3_ck_p     : out   std_logic_vector(0 downto 0);
      ddr3_ck_n     : out   std_logic_vector(0 downto 0);
      ddr3_cke      : out   std_logic_vector(0 downto 0);
      ddr3_cs_n     : out   std_logic_vector(0 downto 0);
      ddr3_odt      : out   std_logic_vector(0 downto 0);
      app_addr                  : in    std_logic_vector(27 downto 0);
      app_cmd                   : in    std_logic_vector(2 downto 0);
      app_en                    : in    std_logic;
      app_wdf_data              : in    std_logic_vector(63 downto 0);
      app_wdf_end               : in    std_logic;
      app_wdf_wren              : in    std_logic;
      app_rd_data               : out   std_logic_vector(63 downto 0);
      app_rd_data_end           : out   std_logic;
      app_rd_data_valid         : out   std_logic;
      app_rdy                   : out   std_logic;
      app_wdf_rdy               : out   std_logic;
      app_sr_req                : in    std_logic;
      app_ref_req               : in    std_logic;
      app_zq_req                : in    std_logic;
      app_sr_active             : out   std_logic;
      app_ref_ack               : out   std_logic;
      app_zq_ack                : out   std_logic;
      ui_clk                    : out   std_logic;
      ui_clk_sync_rst           : out   std_logic;
      init_calib_complete       : out   std_logic;
      -- System Clock Ports
      sys_clk_i                      : in    std_logic;
      -- Reference Clock Ports
      clk_ref_i                                : in    std_logic;
      sys_rst             : in std_logic
      );
  end component DDR3_RAM;


    signal  cntr01  :   std_logic_vector(50 downto 0) := (others=>'0');
    signal  cntr02  :   std_logic_vector(50 downto 0) := (others=>'0');
    signal  ck25    :   std_logic ;
    signal  ck400   :   std_logic ;

  signal app_addr                    : std_logic_vector(27 downto 0) := (others=>'0') ;
  signal app_cmd                     : std_logic_vector(2 downto 0)  := (others=>'0') ;
  signal app_en                      : std_logic := '0';
  signal app_wdf_data                : std_logic_vector(63 downto 0) := (others=>'0') ;
  signal app_wdf_end                 : std_logic := '0';
  signal app_wdf_wren                : std_logic := '0';
  signal app_rd_data                 : std_logic_vector(63 downto 0) := (others=>'0') ;
  signal app_rd_data_end             : std_logic;
  signal app_rd_data_valid           : std_logic;
  signal app_rdy                     : std_logic;
  signal app_wdf_rdy                 : std_logic;
  signal app_sr_active               : std_logic;
  signal app_ref_ack                 : std_logic;
  signal app_zq_ack                  : std_logic;
  signal clk                         : std_logic;
  signal rst                         : std_logic;
  signal init_calib_complete_s       : std_logic;
  signal app_rdy_i                   : std_logic;
  signal app_wdf_rdy_i               : std_logic;
  signal app_rd_data_valid_i         : std_logic;
  signal init_calib_complete_i       : std_logic;
  signal app_addr_i                  : std_logic_vector(27 downto 0) := (others=>'0') ;



begin


ck25 <= clk25 ;

U1: process(clk)
begin
    if rising_edge(clk) then
         cntr01 <= cntr01 + 1 ;
    end if;
end process;

--U2: process(ck400)
--begin
--    if rising_edge(ck400) then
--        if cntr02(28) = '0' then
--            cntr02 <= cntr02 + 1 ;
--        end if;    
--    end if;
--end process;

Uclk:   Clock_IP    port map
(      clk_in => ck25,
       clk_out=> ck400); 

LEDV6 <= init_calib_complete_i ; -- cntr01(25); 
LEDV7 <= cntr01(25);






  u_DDR3_RAM : DDR3_RAM
      port map (
       -- Memory interface ports
       ddr3_addr                      => ddr3_addr,
       ddr3_ba                        => ddr3_ba,
       ddr3_cas_n                     => ddr3_cas_n,
       ddr3_ck_n                      => ddr3_ck_n,
       ddr3_ck_p                      => ddr3_ck_p,
       ddr3_cke                       => ddr3_cke,
       ddr3_ras_n                     => ddr3_ras_n,
       ddr3_reset_n                   => ddr3_reset_n,
       ddr3_we_n                      => ddr3_we_n,
       ddr3_dq                        => ddr3_dq,
       ddr3_dqs_n                     => ddr3_dqs_n,
       ddr3_dqs_p                     => ddr3_dqs_p,
       init_calib_complete            => init_calib_complete_s,
       ddr3_cs_n                      => ddr3_cs_n,
       ddr3_odt                       => ddr3_odt,
-- Application interface ports
       app_addr                       => app_addr,
       app_cmd                        => app_cmd,
       app_en                         => app_en,
       app_wdf_data                   => app_wdf_data,
       app_wdf_end                    => app_wdf_end,
       app_wdf_wren                   => app_wdf_wren,
       app_rd_data                    => app_rd_data,
       app_rd_data_end                => app_rd_data_end,
       app_rd_data_valid              => app_rd_data_valid,
       app_rdy                        => app_rdy,
       app_wdf_rdy                    => app_wdf_rdy,
       app_sr_req                     => '0',
       app_ref_req                    => '0',
       app_zq_req                     => '0',
       app_sr_active                  => app_sr_active,
       app_ref_ack                    => app_ref_ack,
       app_zq_ack                     => app_zq_ack,
       ui_clk                         => clk,
       ui_clk_sync_rst                => rst,
-- System Clock Ports
       sys_clk_i                       => ck400,
-- Reference Clock Ports
       clk_ref_i                      =>  ck400,
        sys_rst                        => cntr02(28)
        );
-- End of User Design top instance


end Behavioral;
IEEE库;
使用IEEE.STD_LOGIC_1164.ALL;
使用ieee.std_logic_unsigned.all;
实体主项目是
港口(
--伊努特
ddr3_dq:inout标准逻辑向量(7到0);
ddr3_dqs_p:inout标准逻辑向量(0到0);
ddr3\u dqs\u n:inout标准逻辑向量(0到0);
--输出
ddr3地址:输出标准逻辑向量(13向下至0);
ddr3_ba:输出标准逻辑向量(2到0);
ddr3_ras_n:输出标准逻辑;
ddr3\u cas\u n:输出标准逻辑;
ddr3\u we\u n:输出标准逻辑;
ddr3\u复位\u n:输出标准\u逻辑;
ddr3\u ck\u p:输出标准逻辑向量(0到0);
ddr3检查:输出标准逻辑向量(0到0);
ddr3:out标准逻辑向量(0到0);
ddr3\u cs\u n:输出标准逻辑向量(0到0);
ddr3_odt:输出标准逻辑向量(0到0);
LEDV6:输出标准逻辑;
LEDV7:输出标准逻辑;
clk25:标准逻辑中);
末端主管道;
主_Prg的架构是
组件时钟
港口
(
时钟输入:在标准逻辑中;
时钟输出:输出标准逻辑
);
端部元件时钟;
组件DDR3_RAM
港口(
ddr3_dq:inout标准逻辑向量(7到0);
ddr3_dqs_p:inout标准逻辑向量(0到0);
ddr3\u dqs\u n:inout标准逻辑向量(0到0);
ddr3地址:输出标准逻辑向量(13向下至0);
ddr3_ba:输出标准逻辑向量(2到0);
ddr3_ras_n:输出标准逻辑;
ddr3\u cas\u n:输出标准逻辑;
ddr3\u we\u n:输出标准逻辑;
ddr3\u复位\u n:输出标准\u逻辑;
ddr3\u ck\u p:输出标准逻辑向量(0到0);
ddr3检查:输出标准逻辑向量(0到0);
ddr3:out标准逻辑向量(0到0);
ddr3\u cs\u n:输出标准逻辑向量(0到0);
ddr3_odt:输出标准逻辑向量(0到0);
应用地址:标准逻辑向量(27向下至0);
app_cmd:标准逻辑向量(2到0);
应用程序en:标准逻辑中;
应用程序wdf数据:标准逻辑向量(63向下至0);
应用程序wdf_端:标准逻辑中;
应用程序:标准逻辑;
应用程序数据:输出标准逻辑向量(63向下至0);
应用程序数据端:输出标准逻辑;
应用程序数据有效:输出标准逻辑;
应用程序rdy:输出标准逻辑;
应用程序wdf rdy:输出标准逻辑;
应用程序需求:标准逻辑中;
应用参考需求:标准逻辑中;
应用程序需求:标准逻辑中;
app_sr_激活:输出标准逻辑;
应用参考确认:输出标准逻辑;
app_zq_确认:输出标准逻辑;
用户界面时钟:输出标准时钟逻辑;
用户界面时钟同步:输出标准逻辑;
初始化校准完成:输出标准逻辑;
--系统时钟端口
系统时钟i:标准逻辑中;
--参考时钟端口
时钟参考i:标准逻辑中;
系统:在标准逻辑中
);
终端组件DDR3_RAM;
信号cntr01:std_逻辑_向量(50向下至0):=(其他=>'0');
信号cntr02:std_逻辑_向量(50向下至0):=(其他=>'0');
信号ck25:std_逻辑;
信号ck400:std_逻辑;
信号应用地址:标准逻辑向量(27向下至0):=(其他=>'0');
信号应用程序命令:标准逻辑向量(2到0):=(其他=>'0');
信号应用程序:标准逻辑:='0';
信号应用程序wdf数据:标准逻辑向量(63向下至0):=(其他=>'0');
信号应用程序wdf_端:标准逻辑:='0';
信号应用程序:标准逻辑:='0';
信号应用程序数据:标准逻辑向量(63到0):=(其他=>'0');
信号应用程序数据端:标准逻辑;
信号应用程序数据有效:标准逻辑;
信号应用:标准逻辑;
信号应用:标准逻辑;
信号应用程序sr激活:标准逻辑;
信号应用参考确认:标准逻辑;
信号应用程序确认:标准逻辑;
信号时钟:标准逻辑;
信号rst:std_逻辑;
信号初始校准完成:标准逻辑;
信号应用程序i:标准逻辑;
信号应用程序wdf rdy i:标准逻辑;
信号应用程序数据有效:标准逻辑;
信号初始校准完成:标准逻辑;
信号应用程序地址i:标准逻辑向量(27向下至0):=(其他=>'0');
开始
ck25 ddr3\u cas\n,
ddr3\u-ck\n=>ddr3\u-ck\n,
ddr3\u ck\u p=>ddr3\u ck\u p,
ddr3_-cke=>ddr3_-cke,
ddr3_ras_n=>ddr3_ras_n,
ddr3\u重置\u n=>ddr3\u重置\u n,
ddr3\u we\u n=>ddr3\u we\u n,
ddr3_-dq=>ddr3_-dq,
ddr3_-dqs_n=>ddr3_-dqs_n,
ddr3_dqs_p