📄 tap_dly.vhd
字号:
--#############################################################################//
-- Internal dqs delay structure for ddr sdram controller //
--#############################################################################//
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
-- pragma translate_off
library UNISIM;
use UNISIM.VCOMPONENTS.ALL;
-- pragma translate_on
entity tap_dly is
port (
clk : in std_logic;
reset : in std_logic;
tapIn : in std_logic;
flop2 : out std_logic_vector(31 downto 0)
);
end tap_dly;
architecture arc_tap_dly of tap_dly is
-------------------------------------------------------------------------------------------------------------------------------
attribute syn_keep : boolean;
-------------------------------------------------------------------------------------------------------------------------------
component LUT4
generic(
INIT : bit_vector(15 downto 0) := x"0000" );
port(
O : out STD_ULOGIC;
I0 : in STD_ULOGIC;
I1 : in STD_ULOGIC;
I2 : in STD_ULOGIC;
I3 : in STD_ULOGIC
);
end component;
component FDR
port(
Q : out STD_LOGIC;
C : in STD_LOGIC;
D : in STD_LOGIC;
R : in STD_LOGIC
);
end component;
signal tap : std_logic_vector(31 downto 0);
signal flop1 : std_logic_vector(31 downto 0);
signal flop2n_0 : std_logic;
signal flop2n_2 : std_logic;
signal flop2n_4 : std_logic;
signal flop2n_6 : std_logic;
signal flop2n_8 : std_logic;
signal flop2n_10: std_logic;
signal flop2n_12: std_logic;
signal flop2n_14: std_logic;
signal flop2n_16: std_logic;
signal flop2n_18: std_logic;
signal flop2n_20: std_logic;
signal flop2n_22: std_logic;
signal flop2n_24: std_logic;
signal flop2n_26: std_logic;
signal flop2n_28: std_logic;
signal flop2n_30: std_logic;
signal high : std_logic;
signal low : std_logic;
----------------------------------------------------------------------------------------------------------------------
attribute syn_keep of flop1 : signal is true;
attribute syn_keep of flop2n_0 : signal is true;
attribute syn_keep of flop2n_2 : signal is true;
attribute syn_keep of flop2n_4 : signal is true;
attribute syn_keep of flop2n_6 : signal is true;
attribute syn_keep of flop2n_8 : signal is true;
attribute syn_keep of flop2n_10 : signal is true;
attribute syn_keep of flop2n_12 : signal is true;
attribute syn_keep of flop2n_14 : signal is true;
attribute syn_keep of flop2n_16 : signal is true;
attribute syn_keep of flop2n_18 : signal is true;
attribute syn_keep of flop2n_20 : signal is true;
attribute syn_keep of flop2n_22 : signal is true;
attribute syn_keep of flop2n_24 : signal is true;
attribute syn_keep of flop2n_26 : signal is true;
attribute syn_keep of flop2n_28 : signal is true;
attribute syn_keep of flop2n_30 : signal is true;
attribute syn_keep of tap : signal is true;
----------------------------------------------------------------------------------------------------------------------
begin
flop2(0) <= not flop2n_0;
flop2(2) <= not flop2n_2;
flop2(4) <= not flop2n_4;
flop2(6) <= not flop2n_6;
flop2(8) <= not flop2n_8;
flop2(10) <= not flop2n_10;
flop2(12) <= not flop2n_12;
flop2(14) <= not flop2n_14;
flop2(16) <= not flop2n_16;
flop2(18) <= not flop2n_18;
flop2(20) <= not flop2n_20;
flop2(22) <= not flop2n_22;
flop2(24) <= not flop2n_24;
flop2(26) <= not flop2n_26;
flop2(28) <= not flop2n_28;
flop2(30) <= not flop2n_30;
high <= '1';
low <= '0';
l0 : LUT4 generic map (INIT => x"e2e2")
port map ( I0 => high,
I1 => tapIn,
I2 => low,
I3 => high,
O => tap(0)
);
l1 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(0),
I2 => low,
I3 => high,
O => tap(1)
);
l2 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(1),
I2 => low,
I3 => high,
O => tap(2)
);
l3 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(2),
I2 => low,
I3 => high,
O => tap(3)
);
l4 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(3),
I2 => low,
I3 => high,
O => tap(4)
);
l5 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(4),
I2 => low,
I3 => high,
O => tap(5)
);
l6 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(5),
I2 => low,
I3 => high,
O => tap(6)
);
l7 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(6),
I2 => low,
I3 => high,
O => tap(7)
);
l8 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(7),
I2 => low,
I3 => high,
O => tap(8)
);
l9 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(8),
I2 => low,
I3 => high,
O => tap(9)
);
l10 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(9),
I2 => low,
I3 => high,
O => tap(10)
);
l11 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(10),
I2 => low,
I3 => high,
O => tap(11)
);
l12 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(11),
I2 => low,
I3 => high,
O => tap(12)
);
l13 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(12),
I2 => low,
I3 => high,
O => tap(13)
);
l14 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(13),
I2 => low,
I3 => high,
O => tap(14)
);
l15 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(14),
I2 => low,
I3 => high,
O => tap(15)
);
l16 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(15),
I2 => low,
I3 => high,
O => tap(16)
);
l17 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(16),
I2 => low,
I3 => high,
O => tap(17)
);
l18 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(17),
I2 => low,
I3 => high,
O => tap(18)
);
l19 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(18),
I2 => low,
I3 => high,
O => tap(19)
);
l20 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(19),
I2 => low,
I3 => high,
O => tap(20)
);
l21 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(20),
I2 => low,
I3 => high,
O => tap(21)
);
l22 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(21),
I2 => low,
I3 => high,
O => tap(22)
);
l23 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(22),
I2 => low,
I3 => high,
O => tap(23)
);
l24 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(23),
I2 => low,
I3 => high,
O => tap(24)
);
l25 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(24),
I2 => low,
I3 => high,
O => tap(25)
);
l26 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(25),
I2 => low,
I3 => high,
O => tap(26)
);
l27 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(26),
I2 => low,
I3 => high,
O => tap(27)
);
l28 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(27),
I2 => low,
I3 => high,
O => tap(28)
);
l29 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(28),
I2 => low,
I3 => high,
O => tap(29)
);
l30 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(29),
I2 => low,
I3 => high,
O => tap(30)
);
l31 : LUT4 generic map (INIT => x"e2e2")
port map (
I0 => high,
I1 => tap(30),
I2 => low,
I3 => high,
O => tap(31)
);
r0 : FDR port map (
Q => flop1(0),
C => clk,
D => tap(0),
R => reset
);
r1 : FDR port map (
Q => flop1(1),
C => clk,
D => tap(1),
R => reset
);
r2 : FDR port map (
Q => flop1(2),
C => clk,
D => tap(2),
R => reset
);
r3 : FDR port map (
Q => flop1(3),
C => clk,
D => tap(3),
R => reset
);
r4 : FDR port map (
Q => flop1(4),
C => clk,
D => tap(4),
R => reset
);
r5 : FDR port map (
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -