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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.6/] [rtl/] [vlib/] [rlink/] [rlink_rlbmux.vhd] - Blame information for rev 24

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 17 wfjm
-- $Id: rlink_rlbmux.vhd 466 2012-12-30 13:26:55Z mueller $
2
--
3
-- Copyright 2012- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4
--
5
-- This program is free software; you may redistribute and/or modify it under
6
-- the terms of the GNU General Public License as published by the Free
7
-- Software Foundation, either version 2, or at your option any later version.
8
--
9
-- This program is distributed in the hope that it will be useful, but
10
-- WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY
11
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12
-- for complete details.
13
--
14
------------------------------------------------------------------------------
15
-- Module Name:    rlink_rlbmux - syn
16
-- Description:    rlink rlb multiplexer
17
--
18
-- Dependencies:   -
19
-- Test bench:     -
20
-- Tool versions:  xst 13.3; ghdl 0.29
21
--
22
-- Revision History: 
23
-- Date         Rev Version  Comment
24
-- 2012-12-29   466   1.0    Initial version 
25
------------------------------------------------------------------------------
26
 
27
library ieee;
28
use ieee.std_logic_1164.all;
29
use ieee.numeric_std.all;
30
use ieee.std_logic_textio.all;
31
use std.textio.all;
32
 
33
use work.slvtypes.all;
34
 
35
entity rlink_rlbmux is               -- rlink rlb multiplexer
36
  port (
37
    SEL : in slbit;                     -- port select (0:RLB<->P0; 1:RLB<->P1)
38
    RLB_DI : out slv8;                  -- rlb: data in
39
    RLB_ENA : out slbit;                -- rlb: data enable
40
    RLB_BUSY : in slbit;                -- rlb: data busy
41
    RLB_DO : in slv8;                   -- rlb: data out
42
    RLB_VAL : in slbit;                 -- rlb: data valid
43
    RLB_HOLD : out slbit;               -- rlb: data hold
44
    P0_RXDATA : in slv8;                -- p0: rx data
45
    P0_RXVAL : in slbit;                -- p0: rx valid
46
    P0_RXHOLD : out slbit;              -- p0: rx hold
47
    P0_TXDATA : out slv8;               -- p0: tx data
48
    P0_TXENA : out slbit;               -- p0: tx enable
49
    P0_TXBUSY : in slbit;               -- p0: tx busy
50
    P1_RXDATA : in slv8;                -- p1: rx data
51
    P1_RXVAL : in slbit;                -- p1: rx valid
52
    P1_RXHOLD : out slbit;              -- p1: rx hold
53
    P1_TXDATA : out slv8;               -- p1: tx data
54
    P1_TXENA : out slbit;               -- p1: tx enable
55
    P1_TXBUSY : in slbit                -- p1: tx busy
56
  );
57
end rlink_rlbmux;
58
 
59
 
60
architecture syn of rlink_rlbmux is
61
 
62
begin
63
 
64
  proc_rlmux : process (SEL, RLB_DO, RLB_VAL, RLB_BUSY,
65
                        P0_RXDATA, P0_RXVAL, P0_TXBUSY,
66
                        P1_RXDATA, P1_RXVAL, P1_TXBUSY)
67
  begin
68
 
69
    P0_TXDATA <= RLB_DO;
70
    P1_TXDATA <= RLB_DO;
71
 
72
    if SEL = '0' then
73
      RLB_DI    <= P0_RXDATA;
74
      RLB_ENA   <= P0_RXVAL;
75
      P0_RXHOLD <= RLB_BUSY;
76
      P0_TXENA  <= RLB_VAL;
77
      RLB_HOLD  <= P0_TXBUSY;
78
      P1_RXHOLD <= '0';
79
      P1_TXENA  <= '0';
80
    else
81
      RLB_DI    <= P1_RXDATA;
82
      RLB_ENA   <= P1_RXVAL;
83
      P1_RXHOLD <= RLB_BUSY;
84
      P1_TXENA  <= RLB_VAL;
85
      RLB_HOLD  <= P1_TXBUSY;
86
      P0_RXHOLD <= '0';
87
      P0_TXENA  <= '0';
88
    end if;
89
 
90
  end process proc_rlmux;
91
 
92
end syn;

powered by: WebSVN 2.1.0

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