w11 - vhd 0.794
W11 CPU core and support modules
Loading...
Searching...
No Matches
rlinktblib.vhd
Go to the documentation of this file.
1-- $Id: rlinktblib.vhd 1181 2019-07-08 17:00:50Z mueller $
2-- SPDX-License-Identifier: GPL-3.0-or-later
3-- Copyright 2007-2016 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4--
5------------------------------------------------------------------------------
6-- Package Name: rlinktblib
7-- Description: rlink test environment components
8--
9-- Dependencies: -
10-- Tool versions: xst 8.2-14.7; viv 2015.4-2016.2; ghdl 0.18-0.33
11-- Revision History:
12-- Date Rev Version Comment
13-- 2016-02-13 730 4.1 drop tbcore_rlink component definition
14-- 2014-08-28 588 4.0 now full rlink v4 iface and 4 bit STAT
15-- 2014-08-15 583 3.5 rb_mreq addr now 16 bit
16-- 2011-12-23 444 3.1 new clock iface for tbcore_rlink; drop .._dcm
17-- 2010-12-29 351 3.0.1 add rbtba_aif;
18-- 2010-12-24 347 3.0 rename rritblib->rlinktblib, CP_*->RL_*;
19-- many rri->rlink renames; drop rbus parts;
20-- 2010-11-13 338 2.5.2 add rritb_core_dcm
21-- 2010-06-26 309 2.5.1 add rritb_sres_or_mon
22-- 2010-06-06 302 2.5 use sop/eop framing instead of soc+chaining
23-- 2010-06-05 301 2.1.2 renamed _rpmon -> _rbmon
24-- 2010-05-02 287 2.1.1 rename CE_XSEC->CE_INT,RP_STAT->RB_STAT
25-- drop RP_IINT signal from interfaces
26-- add sbcntl_sbf_(cp|rp)mon defs
27-- 2010-04-24 282 2.1 add rritb_core
28-- 2008-08-24 162 2.0 all with new rb_mreq/rb_sres interface
29-- 2008-03-24 129 1.1.5 CLK_CYCLE now 31 bits
30-- 2007-12-23 105 1.1.4 add AP_LAM for rritb_rpmon(_sb)
31-- 2007-11-24 98 1.1.3 add RP_IINT for rritb_rpmon(_sb)
32-- 2007-09-01 78 1.1.2 add rricp_rp
33-- 2007-08-25 75 1.1.1 add rritb_cpmon_sb, rritb_rpmon_sb
34-- 2007-08-16 74 1.1 remove rritb_tt* component; some interface changes
35-- 2007-08-03 71 1.0.2 use rrirp_acif; change generics for rritb_[cr]pmon
36-- 2007-07-22 68 1.0.1 add rritb_cpmon rritb_rpmon monitors
37-- 2007-07-15 66 1.0 Initial version
38------------------------------------------------------------------------------
39
40library ieee;
41use ieee.std_logic_1164.all;
42
43use work.slvtypes.all;
44use work.rlinklib.all;
45
46package rlinktblib is
47
48type rlink_tba_cntl_type is record -- rlink_tba control
49 cmd : slv3; -- command code
50 ena : slbit; -- command enable
51 addr : slv16; -- address
52 cnt : slv16; -- block size
53 eop : slbit; -- end packet after current command
54end record rlink_tba_cntl_type;
55
57 (others=>'0'), -- cmd
58 '0', -- ena
59 (others=>'0'), -- addr
60 (others=>'0'), -- cnt
61 '0'); -- eop
62
63type rlink_tba_stat_type is record -- rlink_tba status
64 busy : slbit; -- command busy
65 ack : slbit; -- command acknowledge
66 err : slbit; -- command error flag
67 stat : slv8; -- status flags
68 braddr : slv16; -- block read address (for wblk)
69 bre : slbit; -- block read enable (for wblk)
70 bwaddr : slv16; -- block write address (for rblk)
71 bwe : slbit; -- block write enable (for rblk)
72 dcnt : slv16; -- block done count
73 apend : slbit; -- attn pending (from stat)
74 ano : slbit; -- attn notify seen
75 apat : slv16; -- attn pattern
76end record rlink_tba_stat_type;
77
79 '0','0','0', -- busy, ack, err
80 (others=>'0'), -- stat
81 (others=>'0'), -- braddr
82 '0', -- bre
83 (others=>'0'), -- bwaddr
84 '0', -- bwe
85 (others=>'0'), -- dcnt
86 '0','0', -- apend, ano
87 (others=>'0') -- apat
88 );
89
90component rlink_tba is -- rlink test bench adapter
91 port (
92 CLK : in slbit; -- clock
93 RESET : in slbit; -- reset
94 CNTL : in rlink_tba_cntl_type; -- control port
95 DI : in slv16; -- input data
96 STAT : out rlink_tba_stat_type; -- status port
97 DO : out slv16; -- output data
98 RL_DI : out slv9; -- rlink: data in
99 RL_ENA : out slbit; -- rlink: data enable
100 RL_BUSY : in slbit; -- rlink: data busy
101 RL_DO : in slv9; -- rlink: data out
102 RL_VAL : in slbit; -- rlink: data valid
103 RL_HOLD : out slbit -- rlink: data hold
104 );
105end component;
106
107component rbtba_aif is -- rbus tba, abstract interface
108 -- no generics, no records
109 port (
110 CLK : in slbit; -- clock
111 RESET : in slbit := '0'; -- reset
112 RB_MREQ_aval : in slbit; -- rbus: request - aval
113 RB_MREQ_re : in slbit; -- rbus: request - re
114 RB_MREQ_we : in slbit; -- rbus: request - we
115 RB_MREQ_initt : in slbit; -- rbus: request - init; avoid name coll
116 RB_MREQ_addr : in slv16; -- rbus: request - addr
117 RB_MREQ_din : in slv16; -- rbus: request - din
118 RB_SRES_ack : out slbit; -- rbus: response - ack
119 RB_SRES_busy : out slbit; -- rbus: response - busy
120 RB_SRES_err : out slbit; -- rbus: response - err
121 RB_SRES_dout : out slv16; -- rbus: response - dout
122 RB_LAM : out slv16; -- rbus: look at me
123 RB_STAT : out slv4 -- rbus: status flags
124 );
125end component;
126
127-- FIXME after this point !!
128
129component rricp_rp is -- rri comm->reg port aif forwarder
130 -- implements rricp_aif, uses rrirp_aif
131 port (
132 CLK : in slbit; -- clock
133 CE_INT : in slbit := '0'; -- rri ito time unit clock enable
134 RESET : in slbit :='0'; -- reset
135 RL_DI : in slv9; -- rlink: data in
136 RL_ENA : in slbit; -- rlink: data enable
137 RL_BUSY : out slbit; -- rlink: data busy
138 RL_DO : out slv9; -- rlink: data out
139 RL_VAL : out slbit; -- rlink: data valid
140 RL_HOLD : in slbit := '0' -- rlink: data hold
141 );
142end component;
143
144end package rlinktblib;
rlink_tba_cntl_type :=(( others => '0'), '0',( others => '0'),( others => '0'), '0') rlink_tba_cntl_init
Definition: rlinktblib.vhd:56
rlink_tba_stat_type :=( '0', '0', '0',( others => '0'),( others => '0'), '0',( others => '0'), '0',( others => '0'), '0', '0',( others => '0')) rlink_tba_stat_init
Definition: rlinktblib.vhd:78
std_logic_vector( 2 downto 0) slv3
Definition: slvtypes.vhd:35
std_logic_vector( 8 downto 0) slv9
Definition: slvtypes.vhd:41
std_logic_vector( 15 downto 0) slv16
Definition: slvtypes.vhd:48
std_logic slbit
Definition: slvtypes.vhd:30
std_logic_vector( 7 downto 0) slv8
Definition: slvtypes.vhd:40