summaryrefslogtreecommitdiffstats
path: root/examples/forgen.vhd
blob: 61f11fee40e0523f2de0d76b8afbf86e8ec0a1a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;

entity forgen is
  generic(
    bus_width : integer := 15;
    TOP_GP2 : integer:= 0
  );
  port(
    sysclk, reset, wrb : in std_logic;
    din : in std_logic_vector(bus_width downto 0);
    rdout: out std_logic_vector(bus_width downto 0)
  );
end forgen;

architecture rtl of forgen is
  component wbit1                       -- register bit default 1
    port(
      clk   : in  std_logic;
      wrb   : in  std_logic;
      reset : in  std_logic;
      enb   : in  std_logic;
      din   : in  std_logic;
      dout  : out std_logic);
  end component;

  signal regSelect : std_logic_vector(bus_width * 2 downto 0);
begin
  -----------------------------------------------------
  -- Reg    : GP 2
  -- Active : 32
  -- Type   : RW
  -----------------------------------------------------
  reg_gp2 : for bitnum in 0 to bus_width generate
    wbit1_inst : wbit1
      PORT MAP(
      clk   => sysclk,
      wrb   => wrb,
      reset => reset,
      enb   => regSelect(TOP_GP2),
      din   => din(bitnum),
      dout  => rdout(bitnum)
      );
  end generate;

  process(sysclk) begin
    if sysclk'event and sysclk = '1' then
      regSelect(1) <= '1';
    end if;
  end process;

end rtl;
OpenPOWER on IntegriCloud