SURF  1.0
AxiI2cQsfpPkg.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : AxiI2cQsfpPkg.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2014-10-21
5 -- Last update: 2017-05-02
6 -------------------------------------------------------------------------------
7 -- Description: AxiI2cQsfp Package File
8 -------------------------------------------------------------------------------
9 -- This file is part of 'SLAC Firmware Standard Library'.
10 -- It is subject to the license terms in the LICENSE.txt file found in the
11 -- top-level directory of this distribution and at:
12 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
13 -- No part of 'SLAC Firmware Standard Library', including this file,
14 -- may be copied, modified, propagated, or distributed except according to
15 -- the terms contained in the LICENSE.txt file.
16 -------------------------------------------------------------------------------
17 
18 library ieee;
19 use ieee.std_logic_1164.all;
20 
21 use work.StdRtlPkg.all;
22 
23 package AxiI2cQsfpPkg is
24 --! @file
25  --! @ingroup devices_transceivers_qsfp
26 
27  type AxiI2cQsfpInType is record
28  modPrstL : sl; -- Module Present
29  -- ModPrsL is pulled up to Vcc_Host on the host board and
30  -- grounded in the module. The ModPrsL is asserted "Low"
31  -- when module is inserted into the host connector, and
32  -- deasserted "High" when the module is physically absent
33  -- from the host connector.
34  intL : sl; -- Interrupt
35  -- IntL is an output signal. When "Low", it indicates a possible module operational fault or a status critical to the
36  -- host system. The host identifies the source of the interrupt using the 2-wire serial interface. The IntL signal is an
37  -- open collector output and must be pulled to host supply
38  -- voltage on the host board. A corresponding soft status
39  -- IntL signal is also available in the transceiver memory
40  -- page 0 address 2 bit 1.
41  end record;
42  type AxiI2cQsfpInArray is array (natural range <>) of AxiI2cQsfpInType;
43  type AxiI2cQsfpInVectorArray is array (integer range<>, integer range<>)of AxiI2cQsfpInType;
45  '1',
46  '1');
47 
48  type AxiI2cQsfpInOutType is record
49  scl : sl; -- 2-wire serial interface clock (SCL)
50  sda : sl; -- 2-wire serial interface data (SDA)
51  end record;
52  type AxiI2cQsfpInOutArray is array (natural range <>) of AxiI2cQsfpInOutType;
53  type AxiI2cQsfpInOutVectorArray is array (integer range<>, integer range<>)of AxiI2cQsfpInOutType;
55  'Z',
56  'Z');
57 
58  type AxiI2cQsfpOutType is record
59  modSelL : sl; -- Module Select
60  -- The ModSelL is an input signal. When held low by the
61  -- host, the module responds to 2-wire serial communication commands. The ModSelL allows the use of multiple
62  -- QSFP+ modules on a single 2-wire interface bus. When
63  -- the ModSelL is "High", the module will not respond to or
64  -- acknowledge any 2-wire interface communication from
65  -- the host. ModSelL signal input node is biased to the "High"
66  -- state in the module. In order to avoid conflicts, the host
67  -- system shall not attempt 2-wire interface communications within the ModSelL de-assert time after any QSFP+
68  -- module is deselected. Similarly, the host must wait at least
69  -- for the period of the ModSelL assert time before communicating with the newly selected module. The assertion and
70  -- de-assertion periods of different modules may overlap as
71  -- long as the above timing requirements are met.
72  rstL : sl; -- Module Reset
73  -- The ResetL signal is pulled to Vcc in the QSFP+ module.
74  -- A low level on the ResetL signal for longer than the
75  -- minimum pulse length (t_Reset_init) initiates a complete
76  -- module reset, returning all user module settings to their
77  -- default state. Module Reset Assert Time (t_init) starts on
78  -- the rising edge after the low level on the ResetL pin is
79  -- released. During the execution of a reset (t_init) the host
80  -- shall disregard all status bits until the module indicates a
81  -- completion of the reset interrupt. The module indicates
82  -- this by posting an IntL signal with the Data_Not_Ready bit
83  -- negated. Note that on power up (including hot insertion)
84  -- the module will post this completion of reset interrupt
85  -- without requiring a reset.
86  lpMode : sl; -- Low Power Mode
87  -- Low power mode. When held high by host, the module
88  -- is held at low power mode. When held low by host, the
89  -- module operates in the normal mode. For class 1 power
90  -- level modules (1.5W), low power mode has no effect.
91  end record;
92  type AxiI2cQsfpOutArray is array (natural range <>) of AxiI2cQsfpOutType;
93  type AxiI2cQsfpOutVectorArray is array (integer range<>, integer range<>)of AxiI2cQsfpOutType;
95  '1',
96  '1',
97  '0');
98 
99  type AxiI2cQsfpStatusType is record
102  end record;
104  '1',
105  '1');
106 
107  type AxiI2cQsfpConfigType is record
109  rst : sl;
110  lpMode : sl;
111  end record;
113  '1',
114  '1',
115  '0');
116 
117 end package;
std_logic sl
Definition: StdRtlPkg.vhd:28
array(natural range <> ) of AxiI2cQsfpOutType AxiI2cQsfpOutArray
array(natural range <> ) of AxiI2cQsfpInOutType AxiI2cQsfpInOutArray
array(integer range <> ,integer range <> ) of AxiI2cQsfpOutType AxiI2cQsfpOutVectorArray
array(integer range <> ,integer range <> ) of AxiI2cQsfpInOutType AxiI2cQsfpInOutVectorArray
AxiI2cQsfpInType :=( '1', '1') AXI_QSFP_IN_INIT_C
_library_ ieeeieee
array(integer range <> ,integer range <> ) of AxiI2cQsfpInType AxiI2cQsfpInVectorArray
AxiI2cQsfpStatusType :=( '1', '1') AXI_QSFP_STATUS_INIT_C
array(natural range <> ) of AxiI2cQsfpInType AxiI2cQsfpInArray
AxiI2cQsfpInOutType :=( 'Z', 'Z') AXI_QSFP_IN_OUT_INIT_C
AxiI2cQsfpOutType :=( '1', '1', '0') AXI_QSFP_OUT_INIT_C
AxiI2cQsfpConfigType :=( '1', '1', '0') AXI_QSFP_CONFIG_INIT_C