OpenCores
URL https://opencores.org/ocsvn/the_wizardry_project/the_wizardry_project/trunk

Subversion Repositories the_wizardry_project

[/] [the_wizardry_project/] [trunk/] [Wizardry/] [VHDL/] [Wizardry Top Level/] [Memory Design/] [MIG_top_00/] [MIG_data_path_0/] [MIG_tap_logic/] [MIG_tap_logic_0.vhd] - Blame information for rev 24

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 mcwaccent
-------------------------------------------------------------------------------
2
-- Copyright (c) 2005-2007 Xilinx, Inc.
3
-- This design is confidential and proprietary of Xilinx, All Rights Reserved.
4
-------------------------------------------------------------------------------
5
--   ____  ____
6
--  /   /\/   /
7
-- /___/  \  /   Vendor             : Xilinx
8
-- \   \   \/    Version            : $Name: i+IP+131489 $
9
--  \   \        Application        : MIG
10
--  /   /        Filename           : MIG_tap_logic_0.vhd
11
-- /___/   /\    Date Last Modified : $Date: 2007/09/21 15:23:24 $
12
-- \   \  /  \   Date Created       : Mon May 2 2005
13
--  \___\/\___\
14
--
15
-- Device      : Virtex-4
16
-- Design Name : DDR SDRAM
17
-- Description: Instantiates the tap_cntrl and the data_tap_inc modules.
18
--              Used for calibration of the memory data with the FPGA clock.
19
-------------------------------------------------------------------------------
20
 
21
library ieee;
22
use ieee.std_logic_1164.all;
23
use work.MIG_parameters_0.all;
24
library UNISIM;
25
use UNISIM.vcomponents.all;
26
 
27
entity MIG_tap_logic_0 is
28
  port(
29
    clk                  : in  std_logic;
30
    reset0               : in  std_logic;
31
    idelay_ctrl_rdy      : in  std_logic;
32
    ctrl_dummyread_start : in  std_logic;
33
    dqs_delayed          : in  std_logic_vector((DATA_STROBE_WIDTH - 1) downto 0);
34
    sel_done             : out std_logic;
35
    data_idelay_inc      : out std_logic_vector((READENABLE - 1) downto 0);
36
    data_idelay_ce       : out std_logic_vector((READENABLE - 1) downto 0);
37
    data_idelay_rst      : out std_logic_vector((READENABLE - 1) downto 0);
38
    dqs_idelay_inc       : out std_logic_vector((READENABLE - 1) downto 0);
39
    dqs_idelay_ce        : out std_logic_vector((READENABLE - 1) downto 0);
40
    dqs_idelay_rst       : out std_logic_vector((READENABLE - 1) downto 0)
41
    );
42
end MIG_tap_logic_0;
43
 
44
architecture arch of MIG_tap_logic_0 is
45
 
46
  component MIG_tap_ctrl
47
    port(
48
      clk                  : in  std_logic;
49
      reset                : in  std_logic;
50
      rdy_status           : in  std_logic;
51
      dqs                  : in  std_logic;
52
      ctrl_dummyread_start : in  std_logic;
53
      dlyinc               : out std_logic;
54
      dlyce                : out std_logic;
55
      dlyrst               : out std_logic;
56
      sel_done             : out std_logic;
57
      valid_data_tap_count : out std_logic;
58
      data_tap_count       : out std_logic_vector(5 downto 0)
59
      );
60
  end component;
61
 
62
  component MIG_data_tap_inc
63
    port(
64
      clk                  : in  std_logic;
65
      reset                : in  std_logic;
66
      data_dlyinc          : out std_logic;
67
      data_dlyce           : out std_logic;
68
      data_dlyrst          : out std_logic;
69
      data_tap_sel_done    : out std_logic;
70
      dqs_sel_done         : in  std_logic;
71
      valid_data_tap_count : in  std_logic;
72
      data_tap_count       : in  std_logic_vector(5 downto 0)
73
      );
74
  end component;
75
 
76
  signal data_tap_select   : std_logic_vector((READENABLE - 1) downto 0);
77
  signal dqs_tap_sel_done  : std_logic_vector((READENABLE - 1) downto 0);
78
  signal valid_tap_count   : std_logic_vector((READENABLE - 1) downto 0);
79
  signal data_tap_inc_done : std_logic;
80
  signal tap_sel_done      : std_logic;
81
  signal rst_r             : std_logic;
82
 
83
signal data_tap_count0    : std_logic_vector(5 downto 0);
84
 
85
 
86
begin
87
 
88
  -- For controller to stop dummy reads
89
  sel_done <= tap_sel_done;
90
 
91
  process(clk)
92
  begin
93
    if(clk'event and clk = '1') then
94
      rst_r <= reset0;
95
    end if;
96
  end process;
97
 
98
  process(clk)
99
  begin
100
    if(clk'event and clk = '1') then
101
      if (rst_r = '1') then
102
        data_tap_inc_done <= '0';
103
        tap_sel_done      <= '0';
104
      else
105
        data_tap_inc_done <=  data_tap_select(0) ;
106
        tap_sel_done      <= data_tap_inc_done;
107
 
108
      end if;
109
    end if;
110
  end process;
111
 
112
  --**********************************************************************
113
  --  tap_ctrl instances for  ddr_dqs strobes
114
  --**********************************************************************
115
 
116
 
117
tap_ctrl_0: MIG_tap_ctrl
118
  port map (
119
          clk                       => clk,
120
          reset                     => reset0,
121
          rdy_status                => idelay_ctrl_rdy,
122
          dqs                       => dqs_delayed(3),
123
          ctrl_dummyread_start      => ctrl_dummyread_start,
124
          dlyinc                    => dqs_idelay_inc(0),
125
          dlyce                     => dqs_idelay_ce(0),
126
          dlyrst                    => dqs_idelay_rst(0),
127
          sel_done                  => dqs_tap_sel_done(0),
128
          valid_data_tap_count      => valid_tap_count(0),
129
          data_tap_count            => data_tap_count0(5 downto 0)
130
       );
131
 
132
 
133
  --**********************************************************************
134
  --  instances of data_tap_inc for each dqs and associated tap_ctrl
135
  --**********************************************************************
136
 
137
 
138
data_tap_inc_0: MIG_data_tap_inc
139
  port map (
140
        clk                     => clk,
141
        reset                   => reset0,
142
        data_dlyinc             => data_idelay_inc(0),
143
        data_dlyce              => data_idelay_ce(0),
144
        data_dlyrst             => data_idelay_rst(0),
145
        data_tap_sel_done       => data_tap_select(0),
146
        dqs_sel_done            => dqs_tap_sel_done(0),
147
        valid_data_tap_count    => valid_tap_count(0),
148
        data_tap_count          => data_tap_count0(5 downto 0)
149
             );
150
 
151
 
152
end arch;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.