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

📄 delay.vhd

📁 VHDL设计实例
💻 VHD
字号:
--
-- This module causes the input signal to be delayed DELAY_LENGTH clock cycles.
-- The delays are implemented using SHIFT REGISTER LUTS.
--
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

library WORK1;
use WORK1.SER_PAR_LIB.all;


entity DELAY is
    generic(DELAY_LENGTH: INTEGER);
    port (
	CLK: in STD_LOGIC;
	CE: in STD_LOGIC;
	DIN: in STD_LOGIC;
	DOUT: out STD_LOGIC
    );
end DELAY;

architecture DELAY_arch of DELAY is

component SRL16E
   port (D: in STD_LOGIC;
       CE: in STD_LOGIC;
       CLK: in STD_LOGIC;
       A0: in STD_LOGIC;
       A1: in STD_LOGIC;
       A2: in STD_LOGIC;
       A3: in STD_LOGIC;
       Q: out STD_LOGIC
       ) ;
end component ;

signal TEMP: STD_LOGIC_VECTOR(3 downto 0);

begin

--TEMP <= (CONV_STD_LOGIC_VECTOR(DELAY_LENGTH,4)-1);
TEMP <= CONV_STD_LOGIC_VECTOR(DELAY_LENGTH,4);
--
-- If the delay is zero, don't use the SRLUT, and just pass the data through
--
--DELAY0:
--if DELAY_LENGTH = 0 generate
--   DOUT <= DIN;
--end generate;
--
-- If the delay is not zero, use the SRLUT to cause the delay
-- 
--DELAY1:
--if DELAY_LENGTH /= 0 generate
SRL1: SRL16E
   port map (
       D=> DIN,
       CE=> CE,
       CLK=> CLK,
       A0=> TEMP(0),
       A1=> TEMP(1),
       A2=> TEMP(2),
       A3=> TEMP(3),
       Q=> DOUT
    );
--end generate;

end DELAY_arch;

⌨️ 快捷键说明

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