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_iobs_0/] [MIG_data_path_iobs/] [MIG_v4_dqs_iob.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_v4_dqs_iob.vhd
11
-- /___/   /\    Date Last Modified : $Date: 2007/09/21 15:23:25 $
12
-- \   \  /  \   Date Created       : Mon May 2 2005
13
--  \___\/\___\
14
--
15
-- Device      : Virtex-4
16
-- Design Name : DDR SDRAM
17
-- Description: Places the data stobes in the IOBs.
18
-------------------------------------------------------------------------------
19
 
20
library ieee;
21
use ieee.std_logic_1164.all;
22
library UNISIM;
23
use UNISIM.vcomponents.all;
24
 
25
entity MIG_v4_dqs_iob is
26
  port(
27
    clk          : in    std_logic;
28
    dlyinc       : in    std_logic;
29
    dlyce        : in    std_logic;
30
    dlyrst       : in    std_logic;
31
    ctrl_dqs_rst : in    std_logic;
32
    ctrl_dqs_en  : in    std_logic;
33
    ddr_dqs      : inout std_logic;
34
    dqs_rise     : out   std_logic
35
    );
36
end MIG_v4_dqs_iob;
37
 
38
architecture arch of MIG_v4_dqs_iob is
39
 
40
  signal dqs_in         : std_logic;
41
  signal dqs_out        : std_logic;
42
  signal dqs_out_l      : std_logic;
43
  signal dqs_delayed    : std_logic;
44
  signal ctrl_dqs_en_r1 : std_logic;
45
  signal vcc            : std_logic;
46
  signal gnd            : std_logic;
47
  signal clk180         : std_logic;
48
  signal dqs_int        : std_logic;
49
  signal data1          : std_logic;
50
 
51
  attribute IOB : string;
52
  attribute IOB of tri_state_dqs : label is "true";
53
  attribute syn_useioff : boolean;
54
  attribute syn_useioff of tri_state_dqs : label is true;
55
 
56
begin
57
 
58
  vcc    <= '1';
59
  gnd    <= '0';
60
  clk180 <= not clk;
61
 
62
  process(clk180)
63
  begin
64
    if(clk180'event and clk180 = '1') then
65
      if (ctrl_dqs_rst = '1') then
66
        data1 <= '0';
67
      else
68
        data1 <= '1';
69
      end if;
70
    end if;
71
  end process;
72
 
73
  idelay_dqs : IDELAY
74
    generic map(
75
      IOBDELAY_TYPE  => "VARIABLE",
76
      IOBDELAY_VALUE => 0
77
      )
78
    port map(
79
      O   => dqs_delayed,
80
      I   => dqs_in,
81
      C   => clk,
82
      CE  => dlyce,
83
      INC => dlyinc,
84
      RST => dlyrst
85
      );
86
 
87
  dqs_pipe1 : FD
88
    port map(
89
      Q => dqs_int,
90
      C => clk,
91
      D => dqs_delayed
92
      );
93
 
94
  dqs_pipe2 : FD
95
    port map
96
    (Q  => dqs_rise,
97
      C => clk,
98
      D => dqs_int
99
      );
100
 
101
  oddr_dqs : ODDR
102
    generic map(
103
      SRTYPE       => "SYNC",
104
      DDR_CLK_EDGE => "OPPOSITE_EDGE"
105
      )
106
    port map
107
    (Q   => dqs_out,
108
      C  => clk180,
109
      CE => vcc,
110
      D1 => data1,
111
      D2 => gnd,
112
      R  => gnd,
113
      S  => gnd
114
      );
115
 
116
  tri_state_dqs : FD
117
    port map (
118
      Q => ctrl_dqs_en_r1,
119
      C => clk180,
120
      D => ctrl_dqs_en
121
      );
122
 
123
  iobuf_dqs : IOBUF
124
    port map (
125
      I  => dqs_out,
126
      T  => ctrl_dqs_en_r1,
127
      IO => ddr_dqs,
128
      O  => dqs_in
129
      );
130
 
131
end arch;

powered by: WebSVN 2.1.0

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