?? correlator.vhd
字號:
-------------------------------------------------------------------------------
-- Title : Correlator
-- Project : Bluetooth baseband core
-------------------------------------------------------------------------------
-- File : correlator.vhd
-- Author : Jamil Khatib (khatib@ieee.org)
-- Organization: OpenIPCore Project
-- Created : 2000/12/18
-- Last update : 2000/12/18
-- Platform :
-- Simulators : Modelsim 5.3XE/Windows98
-- Synthesizers: Leonardo/WindowsNT
-- Target :
-- Dependency : ieee.std_logic_1164
-------------------------------------------------------------------------------
-- Description: correlator core
-------------------------------------------------------------------------------
-- Copyright (c) 2000 Jamil Khatib
--
-- This VHDL design file is an open design; you can redistribute it and/or
-- modify it and/or implement it after contacting the author
-- You can check the draft license at
-- http://www.opencores.org/OIPC/license.shtml
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 1
-- Version : 0.1
-- Date : 18 Nov 2000
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Created
-- Known bugs :
-- To Optimze :
-------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity correlator_core_ent is
generic (
REG_WIDTH : integer := 72); -- Register width
port (
clk : in std_logic; -- system clock
rst : in std_logic; -- system reset
Din : in std_logic; -- Input Data
Dout : out std_logic; -- Output Data
enable : in std_logic; -- correlator enable
pattern : in std_logic_vector(REG_WIDTH-1 downto 0); -- Match pattern
Threshold : out std_logic_vector(REG_WIDTH-1 downto 0)); -- Threshold
end correlator_core_ent;
architecture correlator_core_beh of correlator_core_ent is
signal data_reg : std_logic_vector(REG_WIDTH-1 downto 0); -- data register
signal pattern_reg : std_logic_vector(REG_WIDTH-1 downto 0); -- pattern register
begin -- correlator_core_beh
-- purpose: Correlator core
-- type : sequential
-- inputs : clk, rst
-- outputs:
correlate_proc : process (clk, rst)
begin -- process correlate_proc
if rst = '0' then -- asynchronous reset (active low)
data_reg <= (others => '0');
pattern_reg <= (others => '0');
Dout <= '0';
Threshold <= (others => '0');
elsif clk'event and clk = '1' then -- rising clock edge
if enable = '1' then
pattern_reg <= pattern;
else
data_reg <= Din & data_reg(REG_WIDTH-1 downto 1);
Threshold <= data_reg xor pattern_reg;
end if;
Dout <= data_reg(0);
end if;
end process correlate_proc;
end correlator_core_beh;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -