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

Subversion Repositories btc_dsha256

[/] [btc_dsha256/] [trunk/] [rtl/] [vhdl/] [misc/] [pipelines_without_reset.vhd] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 nuxi1209
-- Copyright (c) 2013 VariStream
2
-- Author : Yu Peng 
3
 
4
LIBRARY ieee;
5
USE     ieee.std_logic_1164.all;
6
USE ieee.std_logic_unsigned.all;
7
 
8
ENTITY pipelines_without_reset IS
9
        GENERIC (gBUS_WIDTH : integer := 1; gNB_PIPELINES: integer range 1 to 255 := 2);
10
        PORT(
11
                iClk                            : IN            STD_LOGIC;
12
                iInput                          : IN            STD_LOGIC;
13
                ivInput                         : IN            STD_LOGIC_VECTOR(gBUS_WIDTH-1 downto 0);
14
                oDelayed_output         : OUT           STD_LOGIC;
15
                ovDelayed_output        : OUT           STD_LOGIC_VECTOR(gBUS_WIDTH-1 downto 0)
16
        );
17
END pipelines_without_reset;
18
 
19
ARCHITECTURE behavioral OF pipelines_without_reset IS
20
 
21
        type tPipeline_stages is array(gNB_PIPELINES downto 1) of std_logic_vector(gBUS_WIDTH-1 downto 0);
22
        signal svPipeline_stages        : tPipeline_stages;
23
 
24
        type single_bit_pipe_stage is array(gNB_PIPELINES downto 1) of std_logic;
25
        signal sPipeline_stages : single_bit_pipe_stage;
26
 
27
BEGIN
28
        ovDelayed_output <= svPipeline_stages(gNB_PIPELINES);
29
        oDelayed_output <= sPipeline_stages(gNB_PIPELINES);
30
 
31
        more_than_one_pipe:
32
        if (gNB_PIPELINES > 1) generate
33
                pipelinesGen:
34
                for i in 2 TO gNB_PIPELINES generate
35
                        process(iClk)
36
                        begin
37
                                if rising_edge(iClk) then
38
                                        svPipeline_stages(i) <= svPipeline_stages(i-1);
39
                                        sPipeline_stages(i) <= sPipeline_stages(i-1);
40
                                end if;
41
                        end process;
42
                end generate;
43
        end generate more_than_one_pipe;
44
 
45
        process(iClk)
46
        begin
47
                if rising_edge(iClk) then
48
                        svPipeline_stages(1) <= ivInput;
49
                        sPipeline_stages(1) <= iInput;
50
                end if;
51
        end process;
52
 
53
 
54
END behavioral;
55
 

powered by: WebSVN 2.1.0

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