⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddr_sdram_mem_top.vhm

📁 DDR2 的控制器
💻 VHM
📖 第 1 页 / 共 5 页
字号:
  ddr_write_data_valid_d0 :  in std_logic;
  rst_acth :  in std_logic);
end bidi_cell_4;

architecture beh of bidi_cell_4 is
  signal OUT_TO_BB : std_logic ;
  signal OUT_EN_REG : std_logic ;
  signal BB_TO_IN_TMP : std_logic ;
  signal RST : std_logic ;
  signal GND : std_logic ;
  signal NN_1 : std_logic ;
  component ODDRMXA
    port(
      DA :  in std_logic;
      DB :  in std_logic;
      CLK :  in std_logic;
      RST :  in std_logic;
      DQSXFER :  in std_logic;
      Q :  out std_logic  );
  end component;
  component IDDRMFX1A
    port(
      D :  in std_logic;
      ECLK :  in std_logic;
      CLK1 :  in std_logic;
      CLK2 :  in std_logic;
      RST :  in std_logic;
      CE :  in std_logic;
      DDRCLKPOL :  in std_logic;
      QA :  out std_logic;
      QB :  out std_logic  );
  end component;
begin
  U1_BB: BB port map (
      B => em_ddr_data(13),
      I => OUT_TO_BB,
      T => OUT_EN_REG,
      O => BB_TO_IN_TMP);
  RST <= rst_acth;
  U1_TODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_valid_d0,
      DB => ddr_write_data_valid_d0,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(3),
      Q => OUT_EN_REG);
  U1_ODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_d1_0,
      DB => ddr_write_data_d1_16,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(3),
      Q => OUT_TO_BB);
  U1_IDDRMFX1A: IDDRMFX1A port map (
      D => BB_TO_IN_TMP,
      ECLK => dqsin_clk(3),
      CLK1 => k_clk_c,
      CLK2 => k_clk_c,
      RST => RST,
      CE => VCC,
      DDRCLKPOL => ddrclkpol(3),
      QA => ddr_read_data_0,
      QB => ddr_read_data_16);
  GND <= '0';
  NN_1 <= '1';
end beh;

--
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library synplify;
use synplify.components.all;
library ecp2;
use ecp2.components.all;

entity bidi_cell_3 is
port(
  ddr_read_data_16 :  out std_logic;
  ddr_read_data_0 :  out std_logic;
  ddrclkpol : in std_logic_vector(0 downto 0);
  dqsin_clk : in std_logic_vector(0 downto 0);
  ddr_write_data_d1_16 :  in std_logic;
  ddr_write_data_d1_0 :  in std_logic;
  dqsxfer_clk : in std_logic_vector(0 downto 0);
  em_ddr_data : inout std_logic_vector(3 downto 3);
  VCC :  in std_logic;
  k_clk_c :  in std_logic;
  ddr_write_data_valid_d0 :  in std_logic;
  rst_acth :  in std_logic);
end bidi_cell_3;

architecture beh of bidi_cell_3 is
  signal OUT_TO_BB : std_logic ;
  signal OUT_EN_REG : std_logic ;
  signal BB_TO_IN_TMP : std_logic ;
  signal RST : std_logic ;
  signal GND : std_logic ;
  signal NN_1 : std_logic ;
  component ODDRMXA
    port(
      DA :  in std_logic;
      DB :  in std_logic;
      CLK :  in std_logic;
      RST :  in std_logic;
      DQSXFER :  in std_logic;
      Q :  out std_logic  );
  end component;
  component IDDRMFX1A
    port(
      D :  in std_logic;
      ECLK :  in std_logic;
      CLK1 :  in std_logic;
      CLK2 :  in std_logic;
      RST :  in std_logic;
      CE :  in std_logic;
      DDRCLKPOL :  in std_logic;
      QA :  out std_logic;
      QB :  out std_logic  );
  end component;
begin
  U1_BB: BB port map (
      B => em_ddr_data(3),
      I => OUT_TO_BB,
      T => OUT_EN_REG,
      O => BB_TO_IN_TMP);
  RST <= rst_acth;
  U1_TODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_valid_d0,
      DB => ddr_write_data_valid_d0,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(0),
      Q => OUT_EN_REG);
  U1_ODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_d1_0,
      DB => ddr_write_data_d1_16,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(0),
      Q => OUT_TO_BB);
  U1_IDDRMFX1A: IDDRMFX1A port map (
      D => BB_TO_IN_TMP,
      ECLK => dqsin_clk(0),
      CLK1 => k_clk_c,
      CLK2 => k_clk_c,
      RST => RST,
      CE => VCC,
      DDRCLKPOL => ddrclkpol(0),
      QA => ddr_read_data_0,
      QB => ddr_read_data_16);
  GND <= '0';
  NN_1 <= '1';
end beh;

--
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library synplify;
use synplify.components.all;
library ecp2;
use ecp2.components.all;

entity bidi_cell_2 is
port(
  ddr_read_data_16 :  out std_logic;
  ddr_read_data_0 :  out std_logic;
  ddrclkpol : in std_logic_vector(1 downto 1);
  dqsin_clk : in std_logic_vector(1 downto 1);
  ddr_write_data_d1_16 :  in std_logic;
  ddr_write_data_d1_0 :  in std_logic;
  dqsxfer_clk : in std_logic_vector(1 downto 1);
  em_ddr_data : inout std_logic_vector(7 downto 7);
  VCC :  in std_logic;
  k_clk_c :  in std_logic;
  ddr_write_data_valid_d0 :  in std_logic;
  rst_acth :  in std_logic);
end bidi_cell_2;

architecture beh of bidi_cell_2 is
  signal OUT_TO_BB : std_logic ;
  signal OUT_EN_REG : std_logic ;
  signal BB_TO_IN_TMP : std_logic ;
  signal RST : std_logic ;
  signal GND : std_logic ;
  signal NN_1 : std_logic ;
  component ODDRMXA
    port(
      DA :  in std_logic;
      DB :  in std_logic;
      CLK :  in std_logic;
      RST :  in std_logic;
      DQSXFER :  in std_logic;
      Q :  out std_logic  );
  end component;
  component IDDRMFX1A
    port(
      D :  in std_logic;
      ECLK :  in std_logic;
      CLK1 :  in std_logic;
      CLK2 :  in std_logic;
      RST :  in std_logic;
      CE :  in std_logic;
      DDRCLKPOL :  in std_logic;
      QA :  out std_logic;
      QB :  out std_logic  );
  end component;
begin
  U1_BB: BB port map (
      B => em_ddr_data(7),
      I => OUT_TO_BB,
      T => OUT_EN_REG,
      O => BB_TO_IN_TMP);
  RST <= rst_acth;
  U1_TODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_valid_d0,
      DB => ddr_write_data_valid_d0,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(1),
      Q => OUT_EN_REG);
  U1_ODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_d1_0,
      DB => ddr_write_data_d1_16,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(1),
      Q => OUT_TO_BB);
  U1_IDDRMFX1A: IDDRMFX1A port map (
      D => BB_TO_IN_TMP,
      ECLK => dqsin_clk(1),
      CLK1 => k_clk_c,
      CLK2 => k_clk_c,
      RST => RST,
      CE => VCC,
      DDRCLKPOL => ddrclkpol(1),
      QA => ddr_read_data_0,
      QB => ddr_read_data_16);
  GND <= '0';
  NN_1 <= '1';
end beh;

--
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library synplify;
use synplify.components.all;
library ecp2;
use ecp2.components.all;

entity bidi_cell_1 is
port(
  ddr_read_data_16 :  out std_logic;
  ddr_read_data_0 :  out std_logic;
  ddrclkpol : in std_logic_vector(2 downto 2);
  dqsin_clk : in std_logic_vector(2 downto 2);
  ddr_write_data_d1_16 :  in std_logic;
  ddr_write_data_d1_0 :  in std_logic;
  dqsxfer_clk : in std_logic_vector(2 downto 2);
  em_ddr_data : inout std_logic_vector(10 downto 10);
  VCC :  in std_logic;
  k_clk_c :  in std_logic;
  ddr_write_data_valid_d0 :  in std_logic;
  rst_acth :  in std_logic);
end bidi_cell_1;

architecture beh of bidi_cell_1 is
  signal OUT_TO_BB : std_logic ;
  signal OUT_EN_REG : std_logic ;
  signal BB_TO_IN_TMP : std_logic ;
  signal RST : std_logic ;
  signal GND : std_logic ;
  signal NN_1 : std_logic ;
  component ODDRMXA
    port(
      DA :  in std_logic;
      DB :  in std_logic;
      CLK :  in std_logic;
      RST :  in std_logic;
      DQSXFER :  in std_logic;
      Q :  out std_logic  );
  end component;
  component IDDRMFX1A
    port(
      D :  in std_logic;
      ECLK :  in std_logic;
      CLK1 :  in std_logic;
      CLK2 :  in std_logic;
      RST :  in std_logic;
      CE :  in std_logic;
      DDRCLKPOL :  in std_logic;
      QA :  out std_logic;
      QB :  out std_logic  );
  end component;
begin
  U1_BB: BB port map (
      B => em_ddr_data(10),
      I => OUT_TO_BB,
      T => OUT_EN_REG,
      O => BB_TO_IN_TMP);
  RST <= rst_acth;
  U1_TODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_valid_d0,
      DB => ddr_write_data_valid_d0,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(2),
      Q => OUT_EN_REG);
  U1_ODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_d1_0,
      DB => ddr_write_data_d1_16,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(2),
      Q => OUT_TO_BB);
  U1_IDDRMFX1A: IDDRMFX1A port map (
      D => BB_TO_IN_TMP,
      ECLK => dqsin_clk(2),
      CLK1 => k_clk_c,
      CLK2 => k_clk_c,
      RST => RST,
      CE => VCC,
      DDRCLKPOL => ddrclkpol(2),
      QA => ddr_read_data_0,
      QB => ddr_read_data_16);
  GND <= '0';
  NN_1 <= '1';
end beh;

--
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library synplify;
use synplify.components.all;
library ecp2;
use ecp2.components.all;

entity bidi_cell is
port(
  ddr_read_data_16 :  out std_logic;
  ddr_read_data_0 :  out std_logic;
  ddrclkpol : in std_logic_vector(1 downto 1);
  dqsin_clk : in std_logic_vector(1 downto 1);
  ddr_write_data_d1_16 :  in std_logic;
  ddr_write_data_d1_0 :  in std_logic;
  dqsxfer_clk : in std_logic_vector(1 downto 1);
  em_ddr_data : inout std_logic_vector(4 downto 4);
  VCC :  in std_logic;
  k_clk_c :  in std_logic;
  ddr_write_data_valid_d0 :  in std_logic;
  rst_acth :  in std_logic);
end bidi_cell;

architecture beh of bidi_cell is
  signal OUT_TO_BB : std_logic ;
  signal OUT_EN_REG : std_logic ;
  signal BB_TO_IN_TMP : std_logic ;
  signal RST : std_logic ;
  signal GND : std_logic ;
  signal NN_1 : std_logic ;
  component ODDRMXA
    port(
      DA :  in std_logic;
      DB :  in std_logic;
      CLK :  in std_logic;
      RST :  in std_logic;
      DQSXFER :  in std_logic;
      Q :  out std_logic  );
  end component;
  component IDDRMFX1A
    port(
      D :  in std_logic;
      ECLK :  in std_logic;
      CLK1 :  in std_logic;
      CLK2 :  in std_logic;
      RST :  in std_logic;
      CE :  in std_logic;
      DDRCLKPOL :  in std_logic;
      QA :  out std_logic;
      QB :  out std_logic  );
  end component;
begin
  U1_BB: BB port map (
      B => em_ddr_data(4),
      I => OUT_TO_BB,
      T => OUT_EN_REG,
      O => BB_TO_IN_TMP);
  RST <= rst_acth;
  U1_TODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_valid_d0,
      DB => ddr_write_data_valid_d0,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(1),
      Q => OUT_EN_REG);
  U1_ODDRMXA: ODDRMXA port map (
      DA => ddr_write_data_d1_0,
      DB => ddr_write_data_d1_16,
      CLK => k_clk_c,
      RST => RST,
      DQSXFER => dqsxfer_clk(1),
      Q => OUT_TO_BB);
  U1_IDDRMFX1A: IDDRMFX1A port map (
      D => BB_TO_IN_TMP,
      ECLK => dqsin_clk(1),
      CLK1 => k_clk_c,
      CLK2 => k_clk_c,
      RST => RST,
      CE => VCC,
      DDRCLKPOL => ddrclkpol(1),
      QA => ddr_read_data_0,
      QB => ddr_read_data_16);
  GND <= '0';
  NN_1 <= '1';
end beh;

-- No definition of black box work.EHXPLLD.verilog
--
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library synplify;
use synplify.components.all;
library ecp2;
use ecp2.components.all;

entity ddr_dqs_io is
port(
  em_ddr_dqs : inout std_logic_vector(3 downto 0);
  dqs_pio_read : in std_logic_vector(3 downto 0);
  dqsin_clk : out std_logic_vector(3 downto 0);
  ddrclkpol : out std_logic_vector(3 downto 0);
  dqsxfer_clk : out std_logic_vector(3 downto 0);
  data_valid : out std_logic_vector(3 downto 0);
  ddr_dqs_out_d0 : in std_logic_vector(7 downto 0);
  rst_acth :  in std_logic;
  k_clk_c :  in std_logic;
  dqsdel_0 :  in std_logic;
  ddr_dqs_en_d0 :  in std_logic);
end ddr_dqs_io;

architecture beh of ddr_dqs_io is
  signal GND : std_logic ;
  signal VCC : std_logic ;
  component bidi_dqs
    port(
      ddr_dqs_out_d0 : in std_logic_vector(1 downto 0);
      data_valid : out std_logic_vector(0 downto 0);
      dqsxfer_clk : out std_logic_vector(0 downto 0);
      ddrclkpol : out std_logic_vector(0 downto 0);
      dqsin_clk : out std_logic_vector(0 downto 0);
      dqs_pio_read : in std_logic_vector(0 downto 0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -