OpenCores
URL https://opencores.org/ocsvn/802154phycore/802154phycore/trunk

Subversion Repositories 802154phycore

[/] [802154phycore/] [trunk/] [rtl/] [upsampler.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 entactogen
-- Copyright (c) 2010 Antonio de la Piedra
2
 
3
-- This program is free software: you can redistribute it and/or modify
4
-- it under the terms of the GNU General Public License as published by
5
-- the Free Software Foundation, either version 3 of the License, or
6
-- (at your option) any later version.
7
 
8
-- This program is distributed in the hope that it will be useful,
9
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
10
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
-- GNU General Public License for more details.
12
 
13
-- You should have received a copy of the GNU General Public License
14
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
16
-- A VHDL model of the IEEE 802.15.4 physical layer.
17
 
18
library IEEE;
19
use IEEE.STD_LOGIC_1164.ALL;
20
use IEEE.STD_LOGIC_ARITH.ALL;
21
use IEEE.STD_LOGIC_UNSIGNED.ALL;
22
 
23
entity upsampler is
24
 
25
        generic (factor : integer := 7);
26
 
27
        Port( upsampler_output: OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
28
              upsampler_input: IN  STD_LOGIC;
29
              upsampler_clk: IN STD_LOGIC;
30
              upsampler_start: IN STD_LOGIC);
31
 
32
end upsampler;
33
 
34
architecture Behavioral of upsampler is
35
        signal count_temp: integer range 0 to factor + 1;
36
begin
37
 
38
        counter: process(upsampler_clk, upsampler_start)
39
                variable count: integer range 0 to factor + 1;
40
        begin
41
                if (upsampler_start = '1' and rising_edge(upsampler_clk)) then
42
                        if (count = factor) then
43
                                count := 0;
44
                        else
45
                                count := count + 1;
46
                        end if;
47
                end if;
48
 
49
                count_temp <= count;
50
 
51
        end process;
52
 
53
        upsampler_output <= (not upsampler_input) & '1' when (upsampler_start = '1' and count_temp = 1)
54
                                                           else "00";
55
end Behavioral;
56
 
57
 

powered by: WebSVN 2.1.0

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