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

Subversion Repositories nanoblaze

[/] [nanoblaze/] [trunk/] [Circuit/] [aluBOpSelector.vhd] - Blame information for rev 10

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 10 fcorthay
--##############################################################################
2
--
3
--  aluBOpSelector
4
--      ALU B-operand selector
5
--
6
--      This multiplexer brings the proper data on the B-input of the ALU.
7
--
8
--------------------------------------------------------------------------------
9
--
10
--  Versions / Authors
11
--      1.0 Francois Corthay    first implementation
12
--
13
--  Provided under GNU LGPL licence: <http://www.gnu.org/copyleft/lesser.html>
14
--
15
--  by the electronics group of "HES-SO//Valais Wallis", in Switzerland:
16
--  <http://www.hevs.ch/en/rad-instituts/institut-systemes-industriels/>.
17
--
18
--------------------------------------------------------------------------------
19
--
20
--  Hierarchy
21
--      Used by "nanoblaze/nanoProcessor/aluAndRegs".
22
--
23
--##############################################################################
24
 
25
LIBRARY ieee;
26
  USE ieee.std_logic_1164.all;
27
  USE ieee.numeric_std.all;
28
 
29
ENTITY aluBOpSelector IS
30
  GENERIC(
31
    registerBitNb : positive := 8
32
  );
33
  PORT(
34
      instrData       : IN  signed(registerBitNb-1 DOWNTO 0);
35
      instrDataSel    : IN  std_ulogic;
36
      portIn          : IN  signed(registerBitNb-1 DOWNTO 0);
37
      portInSel       : IN  std_ulogic;
38
      registerFileIn  : IN  signed(registerBitNb-1 DOWNTO 0);
39
      registerFileSel : IN  std_ulogic;
40
      scratchpadSel   : IN  std_ulogic;
41
      spadIn          : IN  signed(registerBitNb-1 DOWNTO 0);
42
      opB             : OUT signed (registerBitNb-1 DOWNTO 0)
43
  );
44
END aluBOpSelector ;
45
 
46
--==============================================================================
47
 
48
ARCHITECTURE RTL OF aluBOpSelector IS
49
BEGIN
50
 
51
  selectDataSource: process(
52
    registerFileSel, registerFileIn,
53
    scratchpadSel,   spadIn,
54
    portInSel,       portIn,
55
    instrDataSel,    instrData
56
  )
57
  begin
58
    if registerFileSel = '1' then
59
      opB <= registerFileIn;
60
    elsif scratchpadSel = '1' then
61
      opB <= spadIn;
62
    elsif portInSel = '1' then
63
      opB <= portIn;
64
    elsif instrDataSel = '1' then
65
      opB <= instrData;
66
    else
67
      opB <= (others => '-');
68
    end if;
69
  end process selectDataSource;
70
 
71
END ARCHITECTURE RTL;

powered by: WebSVN 2.1.0

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