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

Subversion Repositories xucpu

[/] [xucpu/] [trunk/] [src/] [components/] [components.vhdl] - Blame information for rev 5

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

Line No. Rev Author Line
1 2 lcdsgmtr
-- Copyright 2015, Jürgen Defurne
2
--
3
-- This file is part of the Experimental Unstable CPU System.
4
--
5
-- The Experimental Unstable CPU System Is free software: you can redistribute
6
-- it and/or modify it under the terms of the GNU Lesser General Public License
7
-- as published by the Free Software Foundation, either version 3 of the
8
-- License, or (at your option) any later version.
9
--
10
-- The Experimental Unstable CPU System is distributed in the hope that it will
11
-- be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
12
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser
13
-- General Public License for more details.
14
--
15
-- You should have received a copy of the GNU Lesser General Public License
16
-- along with Experimental Unstable CPU System. If not, see
17
-- http://www.gnu.org/licenses/lgpl.txt.
18
 
19
 
20
LIBRARY IEEE;
21
USE IEEE.STD_LOGIC_1164.ALL;
22
USE IEEE.numeric_std.ALL;
23
 
24
PACKAGE components IS
25
 
26
  COMPONENT data_reg
27
    GENERIC(
28
      w_data      : NATURAL RANGE 1 TO 32 := 16;
29
      reset_value : NATURAL               := 0);
30
    PORT (RST : IN  STD_LOGIC;
31
          CLK : IN  STD_LOGIC;
32
          ENA : IN  STD_LOGIC;
33
          D   : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
34
          Q   : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0));
35
  END COMPONENT;
36
 
37
  COMPONENT queue IS
38
    GENERIC (
39
      w_data : NATURAL RANGE 1 TO 32 := 16);
40
    PORT (
41
      rst   : IN  STD_LOGIC;
42
      clk   : IN  STD_LOGIC;
43
      we    : IN  STD_LOGIC;
44
      sh    : IN  STD_LOGIC;
45
      clear : IN  STD_LOGIC;
46
      full  : OUT STD_LOGIC;
47
      empty : OUT STD_LOGIC;
48
      d     : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
49
      q     : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0));
50
  END COMPONENT queue;
51
 
52
  COMPONENT regf IS
53
    GENERIC (
54
      w_data : NATURAL RANGE 1 TO 32 := 16;
55
      w_addr : NATURAL               := 4);
56
    PORT (clk : IN  STD_LOGIC;
57
          we  : IN  STD_LOGIC;
58
          a1  : IN  STD_LOGIC_VECTOR(w_addr - 1 DOWNTO 0);
59
          a2  : IN  STD_LOGIC_VECTOR(w_addr - 1 DOWNTO 0);
60
          d   : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
61
          q1  : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
62
          q2  : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0));
63
  END COMPONENT;
64
 
65
  COMPONENT alu IS
66
    GENERIC(
67
      w_data : NATURAL RANGE 1 TO 32 := 16);
68
    PORT(
69
      clk : IN  STD_LOGIC;
70
      op  : IN  STD_LOGIC_VECTOR(3 DOWNTO 0);
71
      A   : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
72
      B   : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
73
      Y   : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0));
74
  END COMPONENT;
75
 
76
  COMPONENT incr
77
    GENERIC(
78
      w_data : NATURAL RANGE 1 TO 32 := 16);
79
    PORT(
80
      A : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
81
      Y : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0));
82
  END COMPONENT;
83
 
84
  COMPONENT memory IS
85
    GENERIC(
86
      w_data : NATURAL RANGE 1 TO 32 := 16);
87
    PORT(clk : IN  STD_LOGIC;
88
         A1  : IN  STD_LOGIC_VECTOR(14 DOWNTO 0);
89
         B1  : IN  STD_LOGIC_VECTOR(14 DOWNTO 0);
90
         we  : IN  STD_LOGIC;
91
         D   : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
92
         A   : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
93
         B   : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0));
94
  END COMPONENT;
95
 
96
  COMPONENT gpio_in
97
    GENERIC(
98
      w_data : NATURAL RANGE 1 TO 32 := 16;
99
      w_port : NATURAL RANGE 1 TO 32 := 16);
100
    PORT (rst     : IN  STD_LOGIC;
101
          clk     : IN  STD_LOGIC;
102
          ena     : IN  STD_LOGIC;
103
          Q       : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
104
          port_in : IN  STD_LOGIC_VECTOR(w_port - 1 DOWNTO 0));
105
  END COMPONENT;
106
 
107
  COMPONENT gpio_out
108
    GENERIC(
109
      w_data : NATURAL RANGE 1 TO 32 := 16;
110
      w_port : NATURAL RANGE 1 TO 32 := 16);
111
    PORT (rst      : IN  STD_LOGIC;
112
          clk      : IN  STD_LOGIC;
113
          ena      : IN  STD_LOGIC;
114
          we       : IN  STD_LOGIC;
115
          D        : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
116
          Q        : OUT STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
117
          port_out : OUT STD_LOGIC_VECTOR(w_port - 1 DOWNTO 0));
118
  END COMPONENT;
119
 
120
  COMPONENT decoder
121
    PORT (
122
      clk     : IN  STD_LOGIC;
123
      ena     : IN  STD_LOGIC;
124
      a1      : IN  STD_LOGIC_VECTOR(14 DOWNTO 0);
125
      gpio_1  : OUT STD_LOGIC;
126
      gpio_2  : OUT STD_LOGIC;
127
      gpio_3  : OUT STD_LOGIC;
128
      bus_sel : OUT STD_LOGIC_VECTOR(2 DOWNTO 0));
129
  END COMPONENT;
130
 
131
  COMPONENT zerof
132
    GENERIC (
133
      w_data : NATURAL RANGE 1 TO 32 := 16);
134
    PORT (
135
      A    : IN  STD_LOGIC_VECTOR(w_data - 1 DOWNTO 0);
136
      zero : OUT STD_LOGIC);
137
  END COMPONENT;
138
 
139
  COMPONENT clock_gen
140
    PORT (
141
      CLK_IN    : IN  STD_LOGIC;
142
      RESET     : IN  STD_LOGIC;
143
      CLK_VALID : OUT STD_LOGIC;
144
      CLK_OUT   : OUT STD_LOGIC
145
      );
146
  END COMPONENT;
147
 
148
  COMPONENT sync_reset
149
    PORT (
150
      async_rst : IN  STD_LOGIC;
151
      clk       : IN  STD_LOGIC;
152
      clk_valid : IN  STD_LOGIC;
153
      rst       : OUT STD_LOGIC);
154
  END COMPONENT;
155
 
156
  COMPONENT control
157
  END COMPONENT;
158
 
159
END components;

powered by: WebSVN 2.1.0

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