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

Subversion Repositories bluetooth

[/] [bluetooth/] [trunk/] [code/] [cores/] [HEC/] [generator/] [core/] [HEC_gen.vhd] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 khatib
-------------------------------------------------------------------------------
2
-- Title      :  HEC generator
3
-- Project    :  Bluetooth baseband core
4
-------------------------------------------------------------------------------
5
-- File        : hec_gen.vhd
6
-- Author      : Jamil Khatib  (khatib@ieee.org)
7
-- Organization: OpenIPCore Project
8
-- Created     : 2000/12/28
9
-- Last update : 2000/12/28
10
-- Platform    : 
11
-- Simulators  : Modelsim 5.3XE/Windows98
12
-- Synthesizers: Leonardo/WindowsNT
13
-- Target      : 
14
-- Dependency  : ieee.std_logic_1164
15
-------------------------------------------------------------------------------
16
-- Description: HEC generator core
17
-------------------------------------------------------------------------------
18
-- Copyright (c) 2000 Jamil Khatib
19
-- 
20
-- This VHDL design file is an open design; you can redistribute it and/or
21
-- modify it and/or implement it after contacting the author
22
-- You can check the draft license at
23
-- http://www.opencores.org/OIPC/license.shtml
24
 
25
-------------------------------------------------------------------------------
26
-- Revisions  :
27
-- Revision Number :   1
28
-- Version         :   0.1
29
-- Date            :   28 Dec 2000
30
-- Modifier        :   Jamil Khatib (khatib@ieee.org)
31
-- Desccription    :   Created
32
-- Known bugs      :   
33
-- To Optimze      :  
34
-------------------------------------------------------------------------------
35
 
36
library ieee;
37
use ieee.std_logic_1164.all;
38
 
39
entity HECgen_ent is
40
 
41
  port (
42
    clk    : in  std_logic;                     -- system clock
43
    rst    : in  std_logic;                     -- system reset
44
    header : in  std_logic_vector(9 downto 0);  -- header data
45
    hec    : out std_logic_vector(7 downto 0);  -- HEC 8 bit value
46
    init   : in  std_logic_vector(7 downto 0);  -- init value
47
    load   : in  std_logic);                    -- load header
48
 
49
end HECgen_ent;
50
 
51
architecture HECgen_beh of HECgen_ent is
52
 
53
begin  -- HECgen_beh
54
 
55
 
56
 
57
  -- purpose: Generate HEC
58
  -- type   : sequential
59
  -- inputs : clk, rst
60
  -- outputs: 
61
  generate_proc : process (clk, rst)
62
 
63
    variable lfsr         : std_logic_vector(7 downto 0);  -- LFSR (HEC register)
64
    variable feedback_var : std_logic;  -- feed back variable
65
 
66
  begin  -- process generate_proc
67
    if rst = '0' then                   -- asynchronous reset (active low)
68
 
69
      lfsr := (others => '0');
70
      HEC  <= (others => '0');
71
 
72
    elsif clk'event and clk = '1' then  -- rising clock edge
73
 
74
      if load = '1' then
75
 
76
        lfsr := init;
77
 
78
      else
79
 
80
        for i in 9 downto 0 loop
81
 
82
          feedback_var := header(i) xor lfsr(7);
83
 
84
          lfsr(7) := feedback_var xor lfsr(6);
85
          lfsr(6) := lfsr(5);
86
          lfsr(5) := feedback_var xor lfsr(4);
87
          lfsr(4) := lfsr(3);
88
          lfsr(3) := lfsr(2);
89
          lfsr(2) := feedback_var xor lfsr(1);
90
          lfsr(1) := feedback_var xor lfsr(0);
91
          lfsr(0) := feedback_var;
92
 
93
        end loop;  -- i
94
 
95
 
96
      end if;
97
 
98
      HEC <= lfsr;
99
 
100
    end if;
101
 
102
  end process generate_proc;
103
 
104
end HECgen_beh;

powered by: WebSVN 2.1.0

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