1 |
29 |
wfjm |
-- $Id: tst_serlooplib.vhd 641 2015-02-01 22:12:15Z mueller $
|
2 |
16 |
wfjm |
--
|
3 |
|
|
-- Copyright 2011- 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 |
|
|
-- Package Name: tst_serlooplib
|
16 |
|
|
-- Description: Definitions for tst_serloop records and helpers
|
17 |
|
|
--
|
18 |
|
|
-- Dependencies: -
|
19 |
29 |
wfjm |
-- Tool versions: ise 13.1-14.7; viv 2014.7; ghdl 0.29-0.31
|
20 |
16 |
wfjm |
-- Revision History:
|
21 |
|
|
-- Date Rev Version Comment
|
22 |
|
|
-- 2011-12-10 438 1.0.2 add rxui(cnt|dat) fields in hio_stat_type
|
23 |
|
|
-- 2011-12-09 437 1.0.1 rename serport stat->moni port
|
24 |
|
|
-- 2011-10-14 416 1.0 Initial version
|
25 |
|
|
------------------------------------------------------------------------------
|
26 |
|
|
|
27 |
|
|
library ieee;
|
28 |
|
|
use ieee.std_logic_1164.all;
|
29 |
|
|
|
30 |
|
|
use work.slvtypes.all;
|
31 |
19 |
wfjm |
use work.serportlib.all;
|
32 |
16 |
wfjm |
|
33 |
|
|
package tst_serlooplib is
|
34 |
|
|
|
35 |
|
|
constant c_mode_idle : slv2 := "00"; -- mode: idle (no tx activity)
|
36 |
|
|
constant c_mode_rxblast : slv2 := "01"; -- mode: rxblast (check rx activity)
|
37 |
|
|
constant c_mode_txblast : slv2 := "10"; -- mode: txblast (saturate tx)
|
38 |
|
|
constant c_mode_loop : slv2 := "11"; -- mode: loop (rx->tx loop-back)
|
39 |
|
|
|
40 |
|
|
type hio_cntl_type is record -- humanio controls
|
41 |
|
|
mode : slv2; -- mode (idle,(tx|tx)blast,loop)
|
42 |
|
|
enaxon : slbit; -- enable xon/xoff handling
|
43 |
|
|
enaesc : slbit; -- enable xon/xoff escaping
|
44 |
|
|
enathrottle : slbit; -- enable 1 msec tx throttling
|
45 |
|
|
enaftdi : slbit; -- enable ftdi flush handling
|
46 |
|
|
end record hio_cntl_type;
|
47 |
|
|
|
48 |
|
|
constant hio_cntl_init : hio_cntl_type := (
|
49 |
|
|
c_mode_idle, -- mode
|
50 |
|
|
'0','0','0','0' -- enaxon,enaesc,enathrottle,enaftdi
|
51 |
|
|
);
|
52 |
|
|
|
53 |
|
|
type hio_stat_type is record -- humanio status
|
54 |
|
|
rxfecnt : slv16; -- rx frame error counter
|
55 |
|
|
rxoecnt : slv16; -- rx overrun error counter
|
56 |
|
|
rxsecnt : slv16; -- rx sequence error counter
|
57 |
|
|
rxcnt : slv32; -- rx char counter
|
58 |
|
|
txcnt : slv32; -- tx char counter
|
59 |
|
|
rxuicnt : slv8; -- rx unsolicited input counter
|
60 |
|
|
rxuidat : slv8; -- rx unsolicited input data
|
61 |
|
|
rxokcnt : slv16; -- rxok 1->0 transition counter
|
62 |
|
|
txokcnt : slv16; -- txok 1->0 transition counter
|
63 |
|
|
end record hio_stat_type;
|
64 |
|
|
|
65 |
|
|
constant hio_stat_init : hio_stat_type := (
|
66 |
|
|
(others=>'0'), -- rxfecnt
|
67 |
|
|
(others=>'0'), -- rxoecnt
|
68 |
|
|
(others=>'0'), -- rxsecnt
|
69 |
|
|
(others=>'0'), -- rxcnt
|
70 |
|
|
(others=>'0'), -- txcnt
|
71 |
|
|
(others=>'0'), -- rxuicnt
|
72 |
|
|
(others=>'0'), -- rxuidat
|
73 |
|
|
(others=>'0'), -- rxokcnt
|
74 |
|
|
(others=>'0') -- txokcnt
|
75 |
|
|
);
|
76 |
|
|
|
77 |
|
|
-- -------------------------------------
|
78 |
|
|
|
79 |
|
|
component tst_serloop is -- tester for serport components
|
80 |
|
|
port (
|
81 |
|
|
CLK : in slbit; -- clock
|
82 |
|
|
RESET : in slbit; -- reset
|
83 |
|
|
CE_MSEC : in slbit; -- msec pulse
|
84 |
|
|
HIO_CNTL : in hio_cntl_type; -- humanio controls
|
85 |
|
|
HIO_STAT : out hio_stat_type; -- humanio status
|
86 |
|
|
SER_MONI : in serport_moni_type; -- serport monitor
|
87 |
|
|
RXDATA : in slv8; -- receiver data out
|
88 |
|
|
RXVAL : in slbit; -- receiver data valid
|
89 |
|
|
RXHOLD : out slbit; -- receiver data hold
|
90 |
|
|
TXDATA : out slv8; -- transmit data in
|
91 |
|
|
TXENA : out slbit; -- transmit data enable
|
92 |
|
|
TXBUSY : in slbit -- transmit busy
|
93 |
|
|
);
|
94 |
|
|
end component;
|
95 |
|
|
|
96 |
|
|
component tst_serloop_hiomap is -- default human I/O mapper
|
97 |
|
|
port (
|
98 |
|
|
CLK : in slbit; -- clock
|
99 |
|
|
RESET : in slbit; -- reset
|
100 |
|
|
HIO_CNTL : out hio_cntl_type; -- tester controls from hio
|
101 |
|
|
HIO_STAT : in hio_stat_type; -- tester status to display by hio
|
102 |
|
|
SER_MONI : in serport_moni_type; -- serport monitor to display by hio
|
103 |
|
|
SWI : in slv8; -- switch settings
|
104 |
|
|
BTN : in slv4; -- button settings
|
105 |
|
|
LED : out slv8; -- led data
|
106 |
|
|
DSP_DAT : out slv16; -- display data
|
107 |
|
|
DSP_DP : out slv4 -- display decimal points
|
108 |
|
|
);
|
109 |
|
|
end component;
|
110 |
|
|
|
111 |
|
|
end package tst_serlooplib;
|