ENGINEERING
SPECIFICATION
SECURITY NOTATION
SPEC NO.
EB7038228
X05
CAGE CODE
55939
REV LTR
THIS TITLE PAGE CONTAINS PROPRIETARY AND DATA RIGHTS NOTATIONS.
DOCUMENT TYPE
CLASS
INITIAL RELEASE DATE
FORMDROPDOWN
A
DIVISION
DEPARTMENT NO.
PRODUCT LINE NO.
CONTRACT NO.
AES – BELL RD.
450444
6710
TITLE
FPGA REQUIREMENTS DOCUMENT FOR the MAU NextGen NIC VbPCI MASTER FIELD PROGRAMMABLE GATE ARRAY
PREPARED BY:
DATE
APPROVED BY TECHNICAL MANAGER
DATE
APPROVED BY ENGINEERING DEPARTMENT MANAGER
DATE
Y. Skaggs
R. Skutecki
APPROVED FOR SCM
DATE
APPROVED FOR SQA
DATE
APPROVED BY:
REF AWAEB/PSAEB NO.
CHECKER EIR
PRODUCT DESIGN CHECKER (FOR REF, SPCL CONT PER HWEP-039)
COGNIZANCE OF QE SUPVR (FOR REF, SPCL CONT PER HWEP-039)
7027848
FOR PAGE INDEX, SEE PAGE CR-2. REVISION RECORD FOLLOWS PAGE INDEX.
THIS IS AN ELECTRONIC FACSIMILE OF THE ORIGINAL CR-1 ON FILE WITH DOCUMENT CONTROL.
PROPRIETARY NOTICE
THIS DOCUMENT AND THE INFORMATION DISCLOSED HEREIN ARE PROPRIETARY DATA OF HONEYWELL INTERNATIONAL INC. NEITHER THIS DOCUMENT NOR THE INFORMATION CONTAINED HEREIN SHALL BE REPRODUCED, USED, OR DISCLOSED TO OTHERS WITHOUT THE WRITTEN AUTHORIZATION OF HONEYWELL INTERNATIONAL INC.
NOTICE
FREEDOM OF INFORMATION ACT (5 USC 552) AND
DISCLOSURE OF CONFIDENCE INFORMATION GENERALLY
(18 USC 1905)
THIS DOCUMENT IS BEING FURNISHED IN CONFIDENCE BY
HONEYWELL INTERNATIONAL INC.
THE INFORMATION DISCLOSED HEREIN FALLS WITHIN EXEMPTION (b) (4) OF 5 USC 552 AND THE PROHIBITIONS OF 18 USC 1905.
Copyright 2008 HONEYWELL INTERNATIONAL INC.
All Rights Reserved
Title
CR-1
-
Page
Index
CR-2
-
Revision
Records
CR-3
-
Table of Contents
i
-
ii
-
iii
-
iv
-
v
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67 -
68 -
69 –
70 –
71 –
72 –
73 –
74 –
75 –
76 –
77 –
78 –
79 –
80 –
81 –
82 –
83 –
84 –
85 –
Appendix A
A-0
-
A-1
-
A-2
-
A-3
-
A-4
-
A-5
-
TOTAL
PAGES:
91
X00
INITIAL RELEASE
April 27, 2007
X01
Updated after review per Review Action Items Log
June 12, 2007
X02
Incremental changes for initial HDL delivery
Jan 2, 2008
X03
Verion reviewed on 8th Jan 2008
Janary 8,2008
X04
Updated with AIs from FCR_3973
April 23, 2008
X05
Updated with Actions from CR’s since version X03
September 1, 2008
A
Table of Contents
Title
Page
11.
INTRODUCTION
1.1
Scope
1
1.2
References
2
1.3
Acronyms and Abbreviations
2
1.4
Definitions
4
2.
GENERAL DESCRIPTION
4
2.1
Level 0 Top Level Block Diagram
6
2.2
Level 1 Functional Block Diagram
7
3.
DETAILED REQUIREMENTS
8
3.1
Trace Anchor Format
8
3.2
General Requirements
8
3.2.1
Device Selection
8
3.2.2
Device I/O Signal Definitions
9
3.3
Functional Requirements
23
3.3.1
Clock
23
3.3.2
Reset
23
3.3.2.1
Backplane VbPCI Bus 1 Reset Control
24
3.3.3
Monitors
25
3.3.3.1
Isolated Window Pulse Detector (IPD)
25
3.3.3.2
Power Monitors
26
3.3.4
PCI Busses
27
3.3.4.1
Configuration of PCI Busses
27
3.3.5
PCI Client Bus Interface
28
3.3.5.1
PCI Bus Operations and Address spaces
29
3.3.5.2
PCI Bus Data Path Access
32
3.3.5.3
PCI Data Bursting
33
3.3.5.4
PCI Bus Access latency
34
3.3.6
VbPCI Bus 1 Master Functions
35
3.3.6.1.1
VbPCI Memory Reads and Writes
38
3.3.6.1.2
VbPCI Bus 1 Configuration Reads and Writes
38
3.3.6.1.3
VbPCI Error Handling
40
3.3.6.2
VbPCI Bus Request/ Bus Arbitration
42
3.3.6.3
VbPCI Test Registers
42
3.3.6.4
VbPCI Bus 1 Last Transaction Registers
43
3.3.7
Aircraft Personality Module (APM) Interface
45
3.3.8
FPGA ID
49
3.3.9
Discrete Outputs
50
3.3.10
Discrete Inputs
55
3.3.11
Automatic DMA
59
3.3.12
NIC Dual-Port RAM Interface
67
3.3.12.1
DPRAM Arbitration
69
3.3.12.2
External DPRAM memory Interface timing
70
3.3.12.3
Internal DPRAM Interface
74
3.3.13
Real-Time Clock / Temperature Monitor Interface
75
3.3.14
Fan Monitor
81
3.3.14.1
Fan Monitor Requirements
82
3.3.15
Fault Containment Function (FCI)
83
3.3.16
JTAG and Programming
84
APPENDIX A TRACEABILITY INDEX
1
List of Figures
6Figure 1 – NG NIC VbPCI FPGA Top Level External Interface Block Diagram
Figure 2 – NG NIC VbPCI Level 1 Functional Block Diagram
7
Figure 3 – FPGA Rev. Register format
50
Figure 4 – DPRAM Signal timing
71
Figure 5 – DPRAM Memory Read Cycle
72
Figure 6 – DPRAM Memory Write Cycle
73
Figure 7 – I2C Write Data Format
77
Figure 8 – I2C Read Data Format
78
Figure 9 – I2C Register Format
80
List of Tables
11Table 1 – NextGen NIC VbPCI Master FPGA Pin-out
Table 2 – NG_NICVBPCI Clock Inputs
23
Table 3 – Local Power Supply Monitor Test Discrete Outputs
27
Table 4 – Supported PCI bus operations
30
Table 5 – NG_NICVBPCI FPGA PCI Memory Space Address Map
31
Table 6 – NG_NICVBPCI FPGA PCI I/O Space Address Map
31
Table 7 – PCI Configuration Space Accesses
32
Table 8 – PCI Burst Ordering
33
Table 9 – Required PCI Bus maximum access times
34
Table 10 – VbPCI Bus 1 Memory Map
37
Table 11 – PCI Bus Command Definitions
37
Table 12 – VbPCI Bus 1 I/O Address Map
38
Table 13 – CONFIG_ADDR Register
39
Table 14 – Translation of CONFIG_ADDR to VB_AD
40
Table 15 – VbPCI Bus 1 Test Memory Map
43
Table 16 – VbPCI Bus 1 Last Transaction Memory Map
44
Table 17 – VbPCI Bus 1 Last Command Register
44
Table 18 – VbPCI Bus 1 Last Address Register
44
Table 19 – APM Register Memory Map
46
Table 20 – APM Serial Data Out (SDO) Register
47
Table 21 – APM Serial Data In (SDI) Register
49
Table 22 – FPGA Revision Register Memory Map
49
Table 23 – Discrete Output Registers Memory Map
52
Table 24 – Discrete Outputs
53
Table 25 – Discrete Input Registers Memory Map
56
Table 26 – Lower Discrete Inputs Register Bit Definition
57
Table 27 – Upper Discrete Inputs and Fan Read/Set Status Register Bit Definition
58
Table 28 – Auto DMA Registers
60
Table 29 – Auto DMA Register Bit Definition
66
Table 30 – NIC DPRAM Arbitration Priority
69
Table 31 – RTC memory map
76
TITLE: FPGA REQUIREMENTS DOCUMENT FOR nEXT GEN NIC VbPCI MASTER FIELD PROGRAMMABLE GATE ARRAY
1. INTRODUCTION
The Next Generation (NG) NIC VbPCI Master FPGA, referred to herein as the NG_NICVBPCI, is used on the Next Generation Network Interface Controller (NG_NIC) Circuit Card Assembly (CCA). This CCA performs three main functions. The first is to provide the Avionics Standard Communication Bus - rev. D (ASCB-D) interface, which is a multi-drop deterministic communication bus based on IEEE802.3, but with a proprietary physical layer. The second function is to act as the bus master for a backplane bus. The backplane bus is a passive bus designed to meet the timing and electrical requirements defined in the Peripheral Component Interconnect (PCI) Local Bus Specification, Revision 2.1, revised to meet the Primus Epic® Virtual Backplane Network® requirements. This modified PCI interface is called Virtual backplane PCI (VbPCI). The third function is to provide Ethernet 10B2/100BTX LAN communications capability for all client modules within each EPIC MAU Cabinet.
The NG_NIC CCA can be installed in the Modular Avionics Unit (MAU) Cabinet as a single NIC module or as a sub-assembly in a Dual NIC w/ PM-Processor module. A stand-alone NIC is able to access up to eight client modules on one VbPCI bus. When connected with a Pentium M -NIC card eight additional client modules can be accessed on a second VbPCI bus.
The purpose of the NGNIC VbPCI Master FPGA is to provide the interface to the VbPCI backplane signals and the master timing to exchange data between the NIC and one or more client modules.
The requirements for the NG_NIC VbPCI Master FPGA were derived from the Hardware Requirements Document for the Primus EPIC® Next Gen Dual NIC with Processor Module, EB 7037770, the Hardware Requirements Document for the Primus EPIC® -906 Next Gen NIC Core, EB7038227, and the Hardware Requirements Document for the Primus EPIC® Next Gen NIC CCA, EB7028226.
1.1 Scope
This FPGA Requirements Document (FRD) will define all of the requirements for the Next Generation NIC VbPCI Master FPGA. Each requirement will be tagged with a trace anchor and contain the word shall.
This document is also intended to function as a user’s guide for this FPGA. Therefore, commentary was included to better describe functions within the FPGA. Any text in this specification that is not identified as a requirement will be considered to be commentary.
1.2 References
Ref. No.
Document No.
Title
1
EB7038226
Hardware Requirements Document for the Primus EPIC® NextGen NIC CCA, P/N 7037781-var, 7037782-var
2
EB7038227
Hardware Requirements Document for the Primus EPIC® NextGen NIC Core
3
EB7037770
Hardware Requirements Document for the Primus EPIC® NextGen Dual NIC w/ Proc Module, P/N 7038231-1901
4
EB7038229
FPGA Requirements Document for Next Gen NIC Core Resources Field Programmable Gate Array
5
EB7034444
FPGA Requirements Document for PM-NIC BIC Master Field Programmable Gate Array
External:
6
PCI Local Bus Specification (June 1, 1995), Revision 2.1.
7
PCI Local Bus Specification (December 18, 1998), Revision 2.2.
8
Dallas Semi MaximDS3232 I2C RTC with Int. Crystal and SRAM Datasheet, Revision 2.
9
The I2C Bus Specification (January, 2000), Revision 2.1.
10
ProASIC3E Flash Family FPGAs Datasheet (April, 2006), version 2.1 (July 2007.)
1.3 Acronyms and Abbreviations
ASCB-D
Avionics Standard Communication Bus – rev. D
ASIC
Application Specific Integrated Circuit
B
Binary
BIC
Backplane Interface Controller
BIT
Built In Test
BITE
Built In Test Equipment
BTM
Branch Trace Messaging
CCA
Circuit Card Assembly
CPU
Central Processing Unit
D
Decimal
DEOS
Digital Engine Operating System
DIN
Discrete Input
DMA
Direct Memory Access
DOUT
Discrete Output
DPRAM
Dual-Port Random Access Memory
EEPROM
Electrically Erasable & Programmable Read Only Memory
EOI
End Of Interrupt
FIFO
First-In / First-Out
FPGA
Field Programmable Gate Array
FRD
FPGA Requirements Document
GB
Giga-Byte (1,073,741,824 Bytes)
GND
Ground
H
Hexadecimal
HBM
Heartbeat Monitor
HRD
Hardware Requirements Document
H/W
Hardware
I2C
Inter-Integrated Circuit (2-wire serial communication port)
ID
Identification
I/O
Input / Output
JTAG
Joint Test Advisory Group (industry standard test access port)
KB
kilo-Byte (1024 Bytes)
MAU
Modular Avionics Unit
MB
Mega-Byte (1,048,576 Bytes)
Ms
Millisecond (10-3 second)
MSB
Most Significant Byte/Most Significant Bit
MTBF
Mean Time Between Failure
N/A
Not Applicable
NG
Next Generation
NIC
Network Interface Controller
Ns
nanosecond (10-9 second)
PCI
Peripheral Component Interconnect
PIC
Programmable Interrupt Controller
P/N
Part Number
Ppm
Parts Per Million
P/S
Power Supply
RAM
Random Access Memory
RTC
Real-Time Clock
RX
Receive or Receiver
SDRAM
Synchronous Dynamic Random Access Memory
SNIC
Serial Network Interface Controller
S/W
Software
TX
Transmit or Transmitter
Us
microsecond (10-6 second)
VbPCI
Virtual Backplane PCI
1.4 Definitions
Asserted – When referring to external or internal signals of the FPGA, an active-high signal is asserted when its value is 1. An active-low signal, which contains a “_n” (lower-case N) or “_N” or “#” suffix, is asserted when its value is 0.
De-asserted – When referring to external or internal signals of the FPGA, an active-high signal is de-asserted when its value is 0. An active-low signal, which contains a “_n” (lower-case N) or “_N” or “#” suffix, is de-asserted when its value is 1.
2. GENERAL DESCRIPTION
The NICVBPCI FPGA will perform the following functions:
· Act as a PCI bus master to allow the NIC CPU to initiate transactions to all client modules connected to the VbPCI bus.
· Monitor error signals during VbPCI transactions and send an interrupt to the NIC Core FPGA when an error is detected.
· Capture the VbPCI address and control values on each VbPCI transaction in case an error occurs.
· Support broadcast writes to multiple VbPCI clients.
· Use an automatic DMA function to fetch data from the NIC DPRAM for transfer on the VbPCI bus or to read data from the VbPCI bus and store it in the NIC DPRAM.
· Provide Discrete Inputs (DINs) and Discrete Outputs (DOUTs) used to support both internal and external functions.
· Provide a Local Bus PCI interface for access by the CPU
· Provide arbitration of accesses to the left port of the NIC DPRAM by the CPU, the PCI bus 1 master, and the PCI bus 2 master function in the PM-NIC VbPCI Master FPGA (if dual NIC mezzanine card installed).
· Monitor pulses from the cabinet cooling fans and determine if the fans have dropped below a certain speed.
· Support CPU accesses to an external temperature monitor.
· Support CPU accesses to an external real-time clock.
· Provide an FPGA ID byte that can be read by the CPU.
· Tri-state all outputs when a test input is asserted to support In-Circuit Test.
· Function as a PCI target device on PCI Bus 0.
· Provide power supply (P/S) test bus interface.
· Provide VbPCI Bus 1 backplane reset control.
· Provide an interface to the DPRAM.
· Provide fan control and fan tachometer functions.
Refer to Figure 1 for a top-level interface block diagram and Figure 2 for functional block diagrams.
2.1 Level 0 Top Level Block Diagram
Figure 1 – NG NIC VbPCI FPGA Top Level External Interface Block Diagram
2.2 Level 1 Functional Block Diagram
Figure 2 – NG NIC VbPCI Level 1 Functional Block Diagram
3. DETAILED REQUIREMENTS
The following sections will provide detailed requirements and implementation data on the various functions of the NIC VbPCI Master FPGA.
3.1 Trace Anchor Format
As the FRD identifies requirements that must be fulfilled by detailed hardware design and verification, these requirements will be tagged with a trace anchor. This allows other documents to trace to the defined requirement. The trace anchor identifies the requirement, while the trace-up pointer identifies the source of the requirement. The format for a trace anchor is shown below:
Trace Anchor>Trace-up Pointer
The Trace-up Pointer identifies the higher-level requirement that the Trace Anchor is satisfying. If there is no higher-level requirement then the Trace-up Pointer will contain the word “derived”.
The actual Trace Anchor format is shown below:
FRD_NGNICVBPCI_aaaa_nnnn
The prefix FRD_NGNICVBPCI identifies that the requirement pertains to this FRD. The “aaaa” field contains a unique sub-function descriptor (not limited to four characters). The “nnnn” field contains a unique 4-digit number for each requirement in this document.
3.2 General Requirements
3.2.1 Device Selection
[FRD_NGNICVBPCI_IO_0010>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0010>DERIVED" ]
The NG_NICVBPCI functions shall be implemented in a Flash based, Live on Power-up, FPGA technology device.
[FRD_NGNICVBPCI_IO_0020>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0020>DERIVED" ]
The NG_NICVBPCI FPGA shall be In System Programmable (ISP).
[FRD_NGNICVBPCI_IO_0030>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0030>DERIVED" ]
The NG_NICVBPCI shall be implemented in an FPGA technology with an integrated PLL capable of producing a 5X multiplied frequency from a specified input clock.
[FRD_NGNICVBPCI_IO_0040>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0040>DERIVED" ]
The NG_NICVBPCI shall be implemented in an FPGA technology with an integrated PLL capable of generating an internal clock with a frequency between 99 MHz and 120 MHz.
[FRD_NGNICVBPCI_IO_0050>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0050>DERIVED" ]
The NG_NICVBPCI device programmable cell utilization shall be no more than 75% at the time of the Critical Design Review (CDR).
Commentary: A programmable cell is the smallest unit of logic reported by the FPGA vendor's tool set as being allocated to implement the intended function.
[FRD_NGNICVBPCI_IO_0060>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0060>DERIVED" ]
The NG_NICVBPCI device package used for this design shall be the FG484 FBGA package or equivalent.
[FRD_NGNICVBPCI_IO_0070>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0070>DERIVED" ]
The NG_NICVBPCI FPGA shall be rated to meet required speed, timing and power performance over the industrial temperature range (-40C to +85C).
3.2.2 Device I/O Signal Definitions
The pin-out for the NG_NICVBPCI is listed in Table 1.
[FRD_NGNICVBPCI_IO_0080>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0080>DERIVED" ]
The NG_NICVBPCI shall assign package pin numbers to top-level pin names as defined in Table 1.
[FRD_NGNICVBPCI_IO_0090>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0090>DERIVED" ]
When the TRISTATE_N input is asserted the NG_NICVBPCI shall tri-state all outputs and bi-directional pins listed in Table 1 except for TDO.
Commentary : Certain PCI and VB_PCI signals require PCI_CLK and CLK_25 to be present to react to TRISTATE_N assertion. If clocks are not present then assertion of PCI_RST_N and Assertion of CCA_RST_N signals will cause those signals to tri-state asynchronously.
[FRD_NGNICVBPCI_IO_0100>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0100>DERIVED" ]
Unless specifically called out, all inputs (and bi-directional circuits when acting as inputs) of the NG_NICVBPCI shall respond to LVTTL voltage levels.
[FRD_NGNICVBPCI_IO_0110>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IO_0110>DERIVED" ]
Unless specifically called out, all outputs (and bi-directional circuits when acting as outputs) of the NG_NICVBPCI shall drive to LVTTL voltage levels.
The following legend applies to Table 1:
The following abbreviations are used to identify the reset state of the pin
· N/A
not applicable
· U
undefined
· Z
tri-state or high impedance state
· 0
Driven Low
· 1
Driven High
The following abbreviations are used for the I/O type of the pin.
· IN
Input
· OUT
output
· STS
Sustained Tristate
· OD
Open Drain
· OS
Open Source
· I/O
Input and Output
· I/STS
Input and Sustained Tristate Output
· I/OD
Input and Open Drain
Table 1 – NextGen NIC VbPCI Master FPGA Pin-out
Schematic Name
Spec Name
FPGA Ball #
Type
Pull up
Reset State
SSO prone
Description
Clock/ Reset Interface
CLK20_FPGA1
CLK20
M5
In
N/A
N/A
N/A
20Mhz clock (Reserved for growth)
CLK25_FPGA1
CLK_25
L19
In
N/A
N/A
N/A
25Mhz clock
PCI_CLK1
PCI_CLK
N4
In
N/A
N/A
N/A
50 MHz clock
CCA_RST#
CCA_RST_N
D5
In
N/A
N/A
N/A
CCA reset signal, resets internal FPGA logics
PCI_RST#
PCI_RST_N
U5
In
N/A
N/A
N/A
PCI reset signal (PCI I/O standard)
PCI (bus 0) Interface
PCI_DEVSEL#
PCI_DEVSEL_N
R4
STS
No
Z
No
PCI DEVSEL# (PCI I/O standard)
PCI_FRAME#
PCI_FRAME_N
V5
In
N/A
N/A
N/A
PCI FRAME# (PCI I/O standard)
PCI_IRDY#
PCI_IRDY_N
T6
In
N/A
N/A
N/A
PCI IRDY# (PCI I/O standard)
PCI_PAR
PCI_PAR1
AB6
I/STS
No
Z
No
PCI PAR (PCI I/O standard)
PCI_PERR#
PCI_PERR_N
P5
I/STS
No
Z
No
PCI PERR# (PCI I/O standard)
PCI_SERR#
PCI_SERR_N
P4
OD
No
Open
No
PCI SERR#
PCI_STOP#
PCI_STOP_N1
T4
I/STS
No
Z
No
PCI STOP# (PCI I/O standard)
PCI_IDSEL
PCI_IDSEL
M3
In
No
N/A
No
PCI DEVSEL (unused – reserved)
PCI_TRDY#
PCI_TRDY_N1
AA6
I/STS
No
Z
No
PCI TRDY# (PCI I/O standard)
PCI_C_BE#0
PCI_C_BE0_N
M8
In
N/A
N/A
N/A
PCI C/BE# bit 0 (PCI I/O standard)
PCI_C_BE#1
PCI_C_BE1_N
M7
In
N/A
N/A
N/A
PCI C/BE# bit 1 (PCI I/O standard)
PCI_C_BE#2
PCI_C_BE2_N
L6
In
N/A
N/A
N/A
PCI C/BE# bit 2 (PCI I/O standard)
PCI_C_BE#3
PCI_C_BE3_N
L4
In
N/A
N/A
N/A
PCI C/BE# bit 3 (PCI I/O standard)
PCI_AD(31:0)
Bit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
PCI_AD(31:0) 1
H7
J7
H5
H4
J6
K6
J5
K5
J4
K4
J2
J1
L2
K1
N1
M2
N6
N7
P2
R2
T2
P6
P7
R6
R5
V7
W7
W6
W5
U4
K7
L8
I/O
No
Z
Yes
PCI Address/ Data Bus (PCI I/O standard)
VbPCI Backplane Interface
VB_C_BE#(3:0)
Bit
0
1
2
3
VB_C_BE_N(3:0) 2
P17
N17
M17
P16
Out
No
Z
No
VbPCI Command / Byte Enable (active low)
VB_FRAME#
VB_FRAME_N2
L17
STS
No
Z
No
VbPCI Cycle Frame (active low)
VB_IRDY#
VB_IRDY_N2
L15
STS
No
Z
No
VbPCI Initiator Ready (active low)
VB_DEVSEL#
VB_DEVSEL_N2
M15
I/STS
No
Z
No
VbPCI Device Select (active low)
VB_TRDY#
VB_TRDY_N2
L16
I/STS
No
Z
No
VbPCI Target Ready (active low)
VB_PAR
VB_PAR2
K19
I/O
No
Z
No
VbPCI Parity – even parity across VB_AD(31:0) and VB_C_BE_N(3:0)
VB_SERR#
VB_SERR_N2
N16
I/OD
No
Z
No
VbPCI System Error (active low)
VB_PERR#
VB_PERR_N2
M16
I/STS
No
Z
No
VbPCI Parity Error (active low)
VB_STOP#
VB_STOP_N
L22
In
N/A
N/A
N/A
VbPCI Stop (active low) – target initiated stop
VB_RST#
VB_RST_N
K18
Out
No
0
No
VbPCI Reset (active low)
VB_NIC_GNT#
VB_NIC_GNT_N
K16
Out
No
1
No
VbPCI NIC Grant (active low)
VB_RST_LOCK
VB_RST_LOCK
K17
Out
No
0
No
VbPCI Reset Lockout
VB1_SERR_INT#
VB_SERR_INT_L
R17
Out
No
1
No
VbPCI Bus #1 System Error Interrupt signal (active low)
VB1_PERR_INT#
VB_PERR_INT_L
V15
Out
No
1
No
VbPCI Bus #1 Parity Error Interrupt signal (active low)
VB1_STOP_INT#
VB_STOP_INT_L
V16
Out
No
1
No
VbPCI Bus #1 Stop Interrupt signal (active low)
VB_AD(31:0)
Bit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
VB_AD(31:0) 2
K22
J22
J21
J19
J18
J17
H19
H18
G19
G18
F19
E19
B17
B16
A17
A16
AA16
W17
U19
T19
R19
R21
R22
P19
P18
M21
P22
N18
N19
N21
M19
F18
I/O
Yes
Z
Yes
VbPCI Address / Data Bus (32 bits)
EEPROM
EEPROM_WP
EEPROM_WP
AA17
Out
No
1
No
EEPROM Write Protect Input (reserved for growth)
EE_SCL
EE_SCL
AB14
Out
No
1
No
I2C Serial Clock (reserved for growth)
EE_SDA
EE_SDA
AB15
I/OD
No
Z
No
I2C Serial Data (reserved for growth)
RTC/ Temperature Monitor Interface
RTC_SDA
RTC_SDA
AA8
I/OD
Yes
0
No
I2C Serial Data
RTC_SCL
RTC_SCL
AA9
OD
No
0
No
I2C Serial Clock
NIC ASCB DPRAM Interface (Left Port)
NIC_RW#
NIC_RW_N
F15
Out
No
1
No
DPRAM Read/Write Select
NIC_OE#
NIC_OE_N
G17
I/O
No
1
No
DPRAM Output Enable (active low)
NIC_ADS#
NIC_ADS_N
E15
I/O
No
1
No
DPRAM Address Strobe (active low)
NIC_CNTEN#
NIC_CNTEN_N
J16
I/O
No
1
No
DPRAM Counter Enable (active low)
NIC_CNTRST#
NIC_CNTRST_N
H16
Out
No
1
No
DPRAM Counter Reset (active low)
NIC_CE1_B0
NIC_CE1_BO
A14
Out
No
0
No
Chip Enable (active hi) for ASCB DPRAM
NIC_CE0#
NIC_CE0_N
H17
Out
No
1
No
Chip Enable (active low) for ASCB DPRAM
NIC_BE#(3:0)
Bit
0
1
2
3
NIC_BE_N(3:0)
D8
E8
A7
B7
I/O
No
1
No
DPRAM Byte Enable (active low)
NIC_A(16:2)
Bit
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
NIC_A(16:2)
D15
D14
F14
G14
A13
B13
G13
G2
G1
A6
B6
B8
B9
A9
A8
I/O
No
0
Yes
DPRAM Address Bus (15-bit)
NIC_D(31:0)
Bit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
NIC_D(31:0)
F9
F8
E7
D7
E5
F5
D6
A4
E14
A12
D13
D12
E13
G12
H12
F12
E12
A11
A10
E11
D11
F11
F10
B10
G11
H11
D10
E10
D9
E9
G10
G9
I/O
Yes
Z
Yes
DPRAM Data Bus (32-bit)
LAN DPRAM Interface (Right Port)
LAN_DPR_RW#
LAN_DPR_RW_N
F2
Out
No
1
No
DPRAM Read/Write Select (reserved for growth)
LAN_DPR_OE#
LAN_DPR_OE_N
C10
Out
No
1
No
DPRAM Output Enable (reserved for growth)
LAN_DPR_ADS#
LAN_DPR_ADS_N
A18
Out
No
1
No
DPRAM Address Strobe (reserved for growth)
LAN_DPR_CNTEN#
LAN_DPR_CNTEN_N
F13
Out
No
1
No
DPRAM Counter Enable (reserved for growth)
LAN_DPR_CNTRST#
LAN_DPR_CNTRST_N
C11
Out
No
1
No
DPRAM Counter Reset (reserved for growth)
LAN_DPR_CE#
LAN_DPR_CE_N
F4
Out
No
1
No
Chip Enable (reserved for growth)
LAN DPRAM Interface (Left Port)
NIC_CE1_B1
NIC_CE1_B1
A15
Out
No
0
No
Chip Enable (active hi) for LAN DPRAM (left port)
NG NIC Core FPGA and CPU Interface
IPD_STROBE#
IPD_STROBE_N
T9
In
N/A
N/A
N/A
IPD strobe from Core FPGA every 12.5 ms
IPD_VALID
IPD_VALID
V4
Out
No
0
No
IPD Monitor Valid
AUTO_DMA_DONE#
AUTO_DMA_DONE_N
T18
Out
No
0
No
Indicates Auto DMA is busy transferring data between the NIC DPRAM and clients on VbPCI Bus 1 or VbPCI Bus 2.
Local POL Monitors
FAIL_1_5V_HI
FAIL_1_5V_HI
B4
Out
No
0
No
1.5V supply overshoot test
FAIL_1_5V_LO
FAIL_1_5V_LO
C6
Out
No
0
No
1.5V supply undershoot test
FAIL_3_3V_HI
FAIL_3_3V_HI
B5
Out
No
0
No
3.3V supply overshoot test
FAIL_3_3V_LO
FAIL_3_3V_LO
C7
Out
No
0
No
3.3v supply undershoot test
APM Interface
APM_CLK
APM_CLK
N5
Out
No
1
No
Aircraft Personality Module clock
APM_CS
APM_CS
U3
Out
No
0
No
Aircraft Personality Module chip select
APM_DI
APM_DI
AA4
In
Yes
N/A
N/A
Aircraft Personality Module serial data input
APM_DO
APM_DO
U2
Out
No
1
No
Aircraft Personality Module serial data output
APM_PWR_FAIL#
APM_PWR_FAIL_N
AB5
In
Yes
N/A
N/A
Status for Power Supply for APM
APM_SHDN#
APM_SHDN_N
Y4
Out
No
1
No
Control Signal for PS for APM
Host ID Interface
HSTIDBUS(4:0)
Bit
0
1
2
3
4
HOSTIDBUS(4:0)
N22
L20
K21
L21
K20
In
N/A
N/A
N/A
Host identification discrete inputs (4-0)
HOSTIDBUS5
HOSTIDBUS5
P21
In
N/A
N/A
N/A
Channel A/B# input
HOSTIDBUS6
HOSTIDBUS6
Y10
In
N/A
N/A
N/A
Channel Parity input
P/S Test Bus
PSBUS(8:0)
Bit
0
1
2
3
4
5
6
7
8
PSBUS(8:0)
W10
W9
W8
AB9
AB8
AA7
AA10
R12
R11
Out
Out
Out
Out
Out
In
In
In
In
No
No
No
No
No
N/A
N/A
N/A
N/A
0
0
0
0
0
N/A
N/A
N/A
N/A
No
No
No
No
No
N/A
N/A
N/A
N/A
Power supply #1 output discrete bus, Bits 0 -4
Power supply #1 input discrete bus, Bits 5-8
Mezzanine Card Interface
AUTO_DPREQ3#
AUTO_DPREQ3_N
G6
In
N/A
N/A
N/A
Active-low DPRAM request from Auto DMA state machine in FPGA#3 (PII-NIC VbPCI Master FPGA).
AUTO_BUSY3#
AUTO_BUSY3_N
G5
In
N/A
N/A
N/A
When low, indicates Auto DMA in FPGA#3 is busy transferring data between the NIC DPRAM and clients on PCI Bus 2.
AUTO_DPGNT3#
AUTO_DPGNT3_N
H6
Out
No
1
No
Active-low DPRAM grant to Auto DMA state machine in FPGA#3 (PII-NIC VbPCI Master FPGA).
AUTO_EXCUSE_ME
AUTO_EXCUSE_ME_N
G4
Out
No
1
No
Used to pause Auto DMA in this FPGA and FPGA#3 temporarily if another function needs access to the DPRAM (active low).
Fan Tachometer Interface
FANTACH(4:1)
Bit
0
1
2
3
4
FANTACH(4:1)
U9
V8
U10
T10
In
N/A
N/A
N/A
Fan Tachometer signals
FAN_ON (4:1)
Bit
0
1
2
3
4
FAN_ON (4:1)
V10
V9
U11
T11
Out
No
0
No
Fan Control on/ off signals
JTAG Interface
FPGA1_TCK
FPGA1_TCK
U16
In
N/A
N/A
N/A
Boundary Scan Test Clock
B_TMS
B_TMS
W18
In
N/A
N/A
N/A
Boundary Scan Test Mode Select
FPGA1_TDI
FPGA_TDI
V17
In
N/A
N/A
N/A
Boundary Scan Test Data In
B_TRST#
B_TRST_N
U18
In
N/A
N/A
N/A
Boundary Scan Test Reset
FPGA1_TDO
FPGA1_TDO
V19
Out
N/A
N/A
N/A
Boundary Scan Test Data Output
Fault Isolation
SLOT_SERR#(7:0)
Bit
0
1
2
3
4
5
6
7
SLOT_SERR_N(7:0)
V12
V11
U12
T12
W13
W12
W11
AA13
In
N/A
N/A
N/A
To monitor SERR# signals from multiple clients on the VbPCI bus 1.
SLOT_RST#(7:0)
Bit
0
1
2
3
4
5
6
7
SLOT_RST_N(7:0)
U14
U13
AB13
AB12
T14
T13
AB17
AB16
Out
N/A
1
No
To drive RST# signals to multiple clients on the VbPCI bus 1
Miscellaneous
CLK25_TEST_CLK
CLK25_TEST_CLK
D16
In
N/A
N/A
N/A
For JTAG structured test coverage to emulate a clock input to the DPRAM's (Reserved for growth)
CLK25_OSC_DISABLE#
CLK25_OSC_DISABLE_N
G21
In
N/A
N/A
N/A
For JTAG structured test coverage to emulate a clock input to the DPRAM's (Reserved for growth)
CLK25_GEN_TESTMODE
CLK25_GEN_TESTMODE
B18
In
N/A
N/A
N/A
For JTAG structured test coverage to emulate a clock input to the DPRAM's (Reserved for growth)
PCICLK_GEN_TESTMODE
PCICLK_GEN_TESTMODE
G20
In
N/A
N/A
N/A
For JTAG structured test coverage to emulate a clock input to the DPRAM's (Reserved for growth)
TRISTATE2#
TRISTATE_N
M4
In
N/A
N/A
N/A
Tri-state#: The assertion of this signal tri-states all outputs.
VBPCI_CPU_DREQ
VBPCI_CPU_DREQ
L3
Out
No
0
No
(Reserved for growth)
SCRUB_MCHK_INT#
SCRUB_MCHK_INT_N
R18
Out
No
1
No
(Reserved for growth)
CORE_DONE#
CORE_DONE_N
A5
In
N/A
N/A
N/A
Done signal from CORE FPGA
IM_HERE#
IM_HERE_N
B12
In
N/A
N/A
N/A
Indicates that PM NIC card is installed.
Spares
INTER_FPGA_SPARE1
INTER_FPGA_SPARE1
W16
In
N/A
N/A
N/A
Spare signal from Core FPGA.
INTER_FPGA_SPARE2
INTER_FPGA_SPARE2
F3
Out
Yes
Z
No
Spare signal to Core FPGA.
FPGA1_SPARE43
FPGA1_SPARE43
V14
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE42
FPGA1_SPARE42
V13
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE32
FPGA1_SPARE32
W15
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE31
FPGA1_SPARE31
W14
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE21
FPGA1_SPARE21
B11
Out
No
0
No
Spare signal from VBPCI FPGA.
BKP_EN_MON
BKP_EN_MON
AB4
Out
No
Z
No
Unused left for future development (ascb TX time stamp function).
PRI_EN_MON
PRI_EN_MON
AA5
Out
No
Z
No
Unused left for future development (ascb TX time stamp function).
FPGA1_SPARE17
FPGA1_SPARE17
Y7
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE16
FPGA1_SPARE16
Y6
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE11
FPGA1_SPARE11
E16
Out
No
0
No
Spare signal from VbPCI FPGA
FPGA1_SPARE5
FPGA1_SPARE5
K2
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE4
FPGA1_SPARE4
U8
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE3
FPGA1_SPARE3
T22
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE2
FPGA1_SPARE2
AB7
Out
No
0
No
Spare signal from VBPCI FPGA.
FPGA1_SPARE1
FPGA1_SPARE1
N2
Out
No
0
No
Spare signal from VBPCI FPGA.
Notes:
1. The output enable signal for these signals is registered therefore the signals will tri-state within two PCI_CLK cycles after TRISTATE_N is asserted. These signals are tri-stated when CCA_RST_N or PCI_RST_N is asserted.
2. The output enable signal for these signals is registered therefore the signals will tri-state within two CLK_25 cycles after TRISTATE_N is asserted. These signals are tri-stated when CCA_RST_N is asserted.
3.3 Functional Requirements
3.3.1 Clock
CLK25, CLK20 and PCI_CLK are generated from separate oscillators and are therefore asynchronous. The frequencies of the CLK25 and CLK20 clocks are set to avoid the COM frequencies.
[FRD_NGNICVBPCI_CLK_0120>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_CLK_0120>DERIVED" ]
The NG_NICVBPCI FPGA shall operate from the three clock inputs defined in Table 2.
Table 2 – NG_NICVBPCI Clock Inputs
Clock Name
Frequency
Function
CLK25
24.9975MHz ± 50 ppm
VbPCI Master interface, DPRAM interface, IPD
CLK20
19.998MHz ± 50 ppm
Reserved
PCI_CLK
50.000MHz ± 50 ppm
PCI Client interface
3.3.2 Reset
CCA_RST_N is a CCA level reset signal that is generated by the NG_NICCORE's FPGA and input into NG_NICVBPCI FPGA. This signal is the primary reset control for the all internal NG_NICVBPCI FPGA logic. The NG_NICVBPCI FPGA Reset signal (CCA_RST_N) is asserted to force the logic in the NG_NICVBPCI FPGA to a deterministic state.
In addition, the NG_NICVBPCI FPGA has the local input reset signal, PCI_RST_N from the CPU, which resets the PCI target interface and associated functions on the 50 MHz clock domain.
[FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0330 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0330" ]
[FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0360 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0360" ]
[FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0370 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0370" ]
[FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0380 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0380" ]
[FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0400 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0400" ]
[FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0430 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0430" ]
[FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0448 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0448" ]
The bi-directional and output pins of the NG_NICVBPCI FPGA shall be initialized to their reset state, as defined in Table 1 when CCA_RST_N is asserted.
[FRD_NGNICVBPCI_RST _0140>HRD_NGNIC_Func_0330 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0140>HRD_NIC_Func_0330" ]
The assertion of CCA_RST_N shall initialize the memory-mapped registers in NG_NICVBPCI FPGA.
Commentary: The reset value requirement for each register is defined in a subsequent section(s) of this document.
[FRD_NGNICVBPCI_RST _0150>HRD_NGNIC_Func_0330 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0150>HRD_NGNIC_Func_0330" ]
The NG_NICVBPCI FPGA shall asynchronously assert and synchronously de-assert all internal reset signals, relative to their corresponding clock domains.
[FRD_NGNICVBPCI_RST _0160>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0160>DERIVED" ]
When PCI_RST_N is asserted the NG_NICVBPCI FPGA shall complete all the following:
· Forces all PCI configuration registers, state machine and output drivers to a reset state as defined throughout this document.
· All PCI bus 0 outputs and bidirectional signals must be tri-stated.
3.3.2.1 Backplane VbPCI Bus 1 Reset Control
The Dual NIC configuration contains bus masters for two independent PCI busses (PCI BUS 1 and PCI BUS 2). Since the NIC is the master for both busses, the logic used to generate the reset signal to all clients originates with the NIC. There are Four (4) discrete outputs used to operate the backplane reset logic in the MAU cabinet. Two (2) discrete outputs for PCI bus 1 located on NIC module and two discrete outputs for PCI Bus 2 located on PM module. One discrete output of the PCI1 pair, called “Backplane PCI bus 1 RST#”, is used to directly control the VB_RST_N line on its respective PCI BUS 1. A ‘0’ written to this discrete output will drive the VB_RST_N line to the asserted state (low). A ‘1’ written to this discrete output will drive the RST# line to the de-asserted state (high). The second discrete output is called “Backplane reset lockout 1”. Writing a ‘1’ to this discrete output will prevent the VB_RST_N line from resetting the client module. Writing a ‘0’ to this discrete output will allow the VB_RST_N backplane signal to reset each client.
The purposes of the “Backplane reset lockout 1” signal are:
3. First, it allows BIT S/W to exercise the backplane reset signal without actually resetting clients,
4. Second, the design of the BIC on each client is such that the reset lockout signal, when asserted, prevents the client from resetting the BIC.
Independent reset control of the two PCI busses is necessary due to the fact that in some MAU cabinets, with separate power supplies for the clients on the two backplane busses, it is possible that clients on PCI bus 2 must be reset independently of clients on PCI bus 1.
Upon power up reset or system reset to the NIC, clients on both backplanes will be held in reset. i.e. VB_RST_N will be in the asserted state and VB_RST_LOCK will be in the de-asserted state.
Reset for the VbPCI client can originate either by the VB_RST_N (DOUT20 PCI bus 1 reset#), or by the NIC module itself (CCA_RST_N). VB_RST_LOCK (DOUT19) is an active high signal that prohibits these sources from resetting the VbPCI client.
[FRD_NGNICVBPCI_RST _0170>HRD_NGNICM_Mod_0060 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0170>HRD_NGNICM_Mod_0060" ]
[FRD_NGNICVBPCI_RST _0170>HRD_NGNIC_Func_0240 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0170>HRD_NGNIC_Func_0240" ]
[FRD_NGNICVBPCI_RST _0170>HRD_NGNIC_Func_0360 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0170>HRD_NGNIC_Func_0360" ]
When VB_RST_LOCK (DOUT19 PCI bus 1 reset lockout) is de-asserted, either of the following conditions shall assert VB_RST_N to reset the VbPCI Bus 1 clients:
· when DOUT20 (PCI bus 1 reset#) is asserted
· when NIC’s CCA_RST_N is asserted.
[FRD_NGNICVBPCI_RST _0180>HRD_NGNIC_Func_0190 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0180>HRD_NGNIC_Func_0190" ]
[FRD_NGNICVBPCI_RST _0180>HRD_NGNIC_Func_0370 XE \f "TRACETAG" "FRD_NGNICVBPCI_RST _0180>HRD_NGNIC_Func_0370" ]
VB_RST_LOCK (DOUT19 VbPCI bus 1 reset lockout) output shall be de-asserted when CCA_RST_N (VbPCI bus 1 PS power valid) is de-asserted.
Commentary: This is to prevent asserted high signals from driving voltage onto a backplane that may not be powered.
3.3.3 Monitors
3.3.3.1 Isolated Window Pulse Detector (IPD)
The NIC Heartbeat Monitor (HBM) includes two functional parts: the Window Pulse Detector (WPD) which is incorporated into the NG_NICCORE FPGA and the Isolated Window Pulse Detector (IPD) which is incorporated in the NG_NICVBPCI FPGA. The IPD requires pulses spaced at a certain interval to keep the output IPD_VALID high. If the IPD times out and sets the IPD_VALID output low, the Driver Power to the ASCB bus drivers is disabled.
The Isolated Window Pulse Detector (IPD) uses a 25MHz clock that is independent from the WPD clock to establish the window between the pulses. If the WPD stops sending pulses to the IPD or sends pulses too fast to the IPD because of a failed processor or a power supply fault, the IPD will go into the invalid state within 55.5 ms. If the WPD goes invalid then the IPD monitor is not satisfied and the IPD_VALID signal is de-asserted. The IPD will remain in the invalid state until the WPD becomes satisfied and starts sending pulses at the proper rate once again.
After the CPU is reset (or upon a power-up condition), the IPD functions will remain in the invalid state until the IPD detects IPD_STROBE_N (active low) pulses within time limits specified above.
[FRD_NGNICVBPCI_IPD_0190>HRD_NGNIC_CoreFunc_0720 XE \f "TRACETAG" "FRD_NGNICVBPCI_IPD_0190>HRD_NGNIC_CoreFunc_0720" ]
[FRD_NGNICVBPCI_IPD_0190> HRD_NGNIC_CoreSafe_0040 XE \f "TRACETAG" "FRD_NGNICVBPCI_IPD_0190>HRD_NGNIC_CoreFunc_0720" ]
The Isolated Window Pulse Detector (IPD) shall use the independent clock, 25 MHz, to establish the window for the IPD_STROBE_N pulses.
Commentary: WPD operates from 20 MHz clock, so IPD has to operate from independent (from WPD) 25 MHz clock.
[FRD_NGNICVBPCI_IPD_0210>HRD_NGNIC_CoreFunc_0753 XE \f "TRACETAG" "FRD_NGNICVBPCI_IPD_0210>HRD_NGNIC_CoreFunc_0753" ]
[FRD_NGNICVBPCI_IPD_0210>HRD_NGNIC_CoreFunc_0754 XE \f "TRACETAG" "FRD_NGNICVBPCI_IPD_0210>HRD_NGNIC_CoreFunc_0754" ]
If a time interval of 12.3 to 25.2 ms is detected between two falling edges of the IPD_STROBE_N signal, the IPD circuit shall assert the IPD_VALID output pin active high.
Commentary: The state of the IPD_VALID output pin can be read by the CPU on DIN28.
[FRD_NGNICVBPCI_IPD_0220>HRD_NGNIC_CoreFunc_0752 XE \f "TRACETAG" "FRD_NGNICVBPCI_IPD_0220>HRD_NGNIC_CoreFunc_0752" ]
When no falling edges have been detected on IPD_STROBE_N (DIN27) or the time between falling edges is less than 12.3 ms or more than 25.2 ms, the IPD logic shall complete the following sequence:
1. Wait for 55.5 ± 0.5 ms (IPD logic “time out” period)
2. Set IPD_VALID (DIN28) to the invalid state (LOW)
[FRD_NGNICVBPCI_IPD_0221>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IPD_0221>DERIVED" ]
The NG_NICVBPCI FPGA shall ignore IPD_STROBE_N (DIN27) during the IPD logic “time out” period.
[FRD_NGNICVBPCI_IPD_0230>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IPD_0230>DERIVED" ]
When CCA_RST_N is asserted the NG_NICVBPCI FPGA shall de-assert IPD_VALID.
[FRD_NGNICVBPCI_IPD_0240>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_IPD_0240>DERIVED" ]
After CCA_RST_N is de-asserted, if exactly two falling edges of IPD_STROBE_N are detected with a time interval between 12.3 ms – 25.2ms, the IPD shall assert IPD_VALID to valid state.
Commentary: This requirement assumes that a 12.5 ms timer will be started with the first IPD_STROBE_N pulse (after reset or power up). The requirement assumes no synchronization between the pulses and the timing circuits. The circuit monitors a free running (asynchronous) window of 25.2ms for exactly one IPD_STROBE_N events. When this case occurs, the output of the monitor changes from invalid to valid. It is not necessary to wait for the IPD logic “time out” period when CCA_RST_N transitions to the de-asserted state. The “time out” period only applies when IPD_VALID is asserted.
3.3.3.2 Power Monitors
Internal discrete outputs are provided to test each of the power supply monitors. Each monitor has a Fail High and Fail Low discrete associated with it. All monitors are tested with the same procedure. If the discrete output “Fail High” set to a ‘1’, the monitor discrete input should show “invalid” and the Local_PV discrete input should indicate invalid. If the discrete output “Fail High” set to a ‘0’, the monitor discrete input should show “valid” and the Local_PV discrete should indicate valid. If the discrete output “Fail Low” set to a ‘1’, the Monitor input should show “invalid” and the Local_PV should indicate invalid. If the discrete output “Fail Low” set to a ‘0’, the monitor discrete input should show “valid” and the Local_PV discrete should indicate valid.
Table 3 – Local Power Supply Monitor Test Discrete Outputs
Register
Signal Name
Reset value
Description
DOUT 32
FAIL_1_5V_HI
0
Discrete Output Bit 32, Local PS 1.5V Overvoltage Test Dout32, active high
DOUT 33
FAIL_1_5V_LOW
0
Discrete Output Bit 33, Local PS 1.5V Undervoltage Test Dout33, active high
DOUT 34
FAIL_3_3V_HI
0
Discrete Output Bit 34, Local PS 3.3V Overvoltage Test Dout34, active high
DOUT 35
FAIL_3_3V_LOW
0
Discrete Output Bit 35, Local PS 3.3V Undervoltage Test Dout35, active high
[FRD_NGNICVBPCI_SAFE_0250>HRD_NGNIC_CoreSafe_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_SAFE_0250>HRD_NGNIC_CoreSafe_0120" ]
The NG_NICVBPCI FPGA shall provide DOUTS shown in Table 3 for testing the Local Power Supplies.
Commentary: A power supply test discrete output must be set to the active state for at least 5 ms before the power supply monitor circuit will indicate an invalid condition.
[FRD_NGNICVBPCI_MON_0260>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_MON_0260>DERIVED" ]
The NG_NICVBPCI FPGA shall support PCI Bus 0 writes of the DOUT register and specifically the outputs defined by Table 3.
[FRD_NGNICVBPCI_MON_0280>HRD_NGNIC_CoreFunc_1100 XE \f "TRACETAG" "FRD_NGNICVBPCI_MON_0280>HRD_NGNIC_CoreFunc_1100" ]
The reset values for the POL monitors Discrete Outputs shall be defined By Table 3.
3.3.4 PCI Busses
3.3.4.1 Configuration of PCI Busses
The NIC CCA is required to support the “plug and play” requirements of the PCI specification and is required to interrogate and allocate memory space for two backplane VbPCI busses at power-up. The NIC CCA has three PCI busses: PCI Bus 0, VbPCI Bus 1, and VbPCI Bus 2 (only present on dual NIC modules).
PCI Bus 0 is local bus to the NextGen NIC CCA. This bus is accessed through the MPC8280 processor, NIC Core FPGA, and NIC VbPCI FPGA.
VbPCI Bus 1 is defined as the backplane bus connected on a single NextGen NIC module and the non-mezzanined bus connection on a Dual NextGen NIC module. The NG_NICVBPCI FPGA controls VbPCI Bus 1.
VbPCI Bus 2 is defined as the mezzanined backplane bus connected on a Dual NextGen NIC module, and the PM-NIC VbPCI Master FPGA controls this bus.
To configure the PCI busses, the NIC supports the preferred PCI “configuration mechanism #1” which defines two 32-bit locations in “I/O space” at address 0CF8H (register “CONFIG_ADDR”) and address 0CFCH (register “CONFIG_DATA”) for configuring PCI devices. The bus number entered into bits 23-16 of the configuration address register identify which bus (0 – 2) the configuration access is intended for. The device number entered into bits 15 - 11 of the configuration address register identifies which slot the configuration access is aimed at. During a configuration access, hardware will assert one AD signal within the range AD (31:11). Each of the AD lines in this range is connected to a different IDSEL line, one for each slot. Device number 0 asserts AD31, device number 1 will assert AD30, and device number 3 will assert AD29 and so on.
For VbPCI Busses 1 and 2, the general rule for the IDSEL distribution has been most significant address bit (AD31) is tied to the slot adjacent to the respective NIC connector (either VbPCI Bus 1 or VbPCI Bus 2 connector). The next slot over would have the next address bit (AD30) tied to IDSEL and so on. Routing on the backplane to connect the IDSEL to its respective address bit should be as short as possible.
From the NIC CPU’s perspective, the physical memory address range for the PCI Bus 0 interface is from 6100:0000h through 62FF:FFFFh (32 Mbytes). The physical memory address range for the VbPCI Bus 1 interface is from 2000:0000h through 2FFF:FFFFh (256 Mbytes). The physical memory address range for the VbPCI Bus 2 interface is from 3000:0000h through 3FFF:FFFFh (256 Mbytes). The physical memory address range for broadcast data to all VbPCI devices is from 4000:0000h through 4FFF:FFFFh (256 Mbytes), of which 128K bytes are presently used.
3.3.5 PCI Client Bus Interface
The NG_NICVBPCI FPGA provides a PCI bus client interface (PCI Bus 0) to allow S/W accesses to the following resources within the FPGA:
· External EEPROM memory
· External NIC Dual-Port RAM memory (left port)
· External Real-Time Clock
· External Temperature Monitor
· External VbPCI Bus 1
· Internal Discrete Inputs/Outputs registers
· External APM interface
· External Fan Interface
The NG_NICVBPCI interprets the PCI protocol into actions that will be performed in the system. The assertion of the PCI_FRAME_N input signal marks the initiation of a PCI transaction. The NG_NICVBPCI logic will decode the address and other control inputs to execute the commanded host operation (i.e. read DMA register, write DOUTs, etc.). To end the transaction, the FPGA will produce a PCI_TRDY_N output signal back to the host, allowing it to begin another transaction. All accesses are mutually exclusive by nature since only one address can be decoded at a time.
Commentary: Any reference to “clocks” in this section will be referring to the PCI_CLK input (50 MHz). Any reference to the term “access time” (for a host access) will be referring to the number of full PCI_CLK cycles from the start of a data phase to the assertion of PCI_TRDY_N.
The NG_NICVBPCI PCI Bus 0 interface is based on the PCI Local Bus Specification Revision 2.2. The NG_NICVBPCI Interface is not fully compliant with this specification. The PCI Bus is well documented in its corresponding specification. Refer to the reference list at the beginning of this document.
[FRD_NGNICVBPCI_PCI_0290>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0290>DERIVED" ]
The NG_NICVBPCI shall implement 32 bit PCI Target Interface Bus protocol bus transactions as defined in PCI local bus specification Revision 2.2, Sections 3.3.1-3.3.2 and 3.3.3.1-3.3.3.2 (and its subsections)
[FRD_NGNICVBPCI_PCI_0300>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0300>DERIVED" ]
The NG_NICVBPCI shall implement the required PCI signals as defined in PCI local Bus specification Sections 2.2.1 - 2.2.3 and 2.2.5
3.3.5.1 PCI Bus Operations and Address spaces
[FRD_NGNICVBPCI_PCI_0310>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0310>DERIVED" ]
The NG_NICVBPCI shall support the PCI bus operations indicated in Table 4 as operations to implement if the NG_NICVBPCI is the addressed target (Claim if Target)
Table 4 – Supported PCI bus operations
PCI Bus Command
PCI address phase C/BE(3:0)
NG NIC VbPCI Bus response*
NG NIC VbPCI action*
Interrupt Acknowledge
0h
Ignored
Ignored
Special Cycle
1h
Ignored
Ignored
I/O Read
2h
Claim if Target
I/O read
I/O Write
3h
Claim if Target
I/O write
Reserved
4h
Ignored
Ignored
Reserved
5h
Ignored
Ignored
Memory Read
6h
Claim if Target
Memory Read
Memory Write
7h
Claim if Target
Memory Write
Reserved
8h
Ignored
Ignored
Reserved
9h
Ignored
Ignored
Config. Read
Ah
Ignored
Ignored
Config. Write
Bh
Ignored
Ignored
Memory Read Multiple
Ch
Claim if Target
Memory Read
Dual Address Cycle
Dh
Ignored
Ignored
Memory Read Line
Eh
Claim if Target
Memory Read
Memory Write & Invalidate
Fh
Claim if Target
Memory Write
*Ignored means the NG_NICVBPCI FPGA will not acknowledge the operation.
[FRD_NGNICVBPCI_PCI_0330>HRD_NGNIC_CoreIO_0310 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0330>HRD_NGNIC_CoreIO_0310" ]
The NG_NICVBPCI PCI bus Memory map shall be as defined in Table 5.
Commentary: A multi-FPGA transaction is one in which the transaction is processed by both FPGAs, but only the NG_NICVBPCI FPGA claims and terminates the transaction on PCI Bus 0. The NG_NICCORE FPGA completes the transaction like any other PCI access, but never drives signals on PCI Bus 0. The NG_NICCORE FPGA asserts the CORE_DONE_N signal to indicate that it is done processing the transaction. The NG_NICVBPCI FPGA will process the transaction and wait until CORE_DONE_N is asserted before terminating the cycle on PCI Bus 0.
Table 5 – NG_NICVBPCI FPGA PCI Memory Space Address Map
Block
Size
Starting Address
Ending Address
Notes
APM
16 MB
7E00:0000H
7EFF:FFFFH
Auto DMA
16 MB
7B00:0000H
7BFF:FFFFH
Multi-FPGA transaction
RTC/ Temp. Sensors
16 MB
7900:0000H
79FF:FFFFH
VbPCI Bus 1 Last Command Register
4K
7810:B000H
7810:BFFFH
VbPCI Bus 1 Last Address Register
4K
7810:A000H
7810:AFFFH
DINs
1 MB
7310:0000H
731F:FFFFH
DOUTs
1 MB
7210:0000H
721F:FFFFH
FPGA ID
1 MB
7190:0000H
7190:FFFFH
NIC DPRAM Left
128K
6000:0000H
6001:FFFFH
ASCB DPRAM left port
Internal DPRAM (L)
4K
6002:0000H
6002:0FFFH
Internal DPRAM (R)
4K
6202:0000H
6202:0FFFH
VbPCI Broadcast
256 MB
4000:0000H
4FFF:FFFFH
Write only.
Multi-FPGA transaction
System Error Test
16MB
2F00:0000H
2FFF:FFFFH
VbPCI Bus 1
251 MB
2000:0000H
2F00:0000H
Parity Error Test
4K
0000:0054H
[FRD_NGNICVBPCI_PCI_0340>HRD_NGNIC_CoreIO_0320 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0340>HRD_NGNIC_CoreIO_0320" ]
The NG_NICVBPCI PCI bus I/O map shall be as defined in Table 6.
Table 6 – NG_NICVBPCI FPGA PCI I/O Space Address Map
Block
Size
Starting Address
Ending Address
Notes
PCI (Local, Bus 1, Bus 2)
4 bytes
0CF8H
0CFBH
PCI Configuration Address Register.
Multi-FPGA transaction.
PCI (Local, Bus 1, Bus 2)
4 bytes
0CFCH
0CFFH
PCI Configuration Data Register
[FRD_NGNICVBPCI_PCI_0350>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0350>DERIVED" ]
PCI accesses to the address ranges shown in Table 5 shall be terminated by the NG_NICVBPCI FPGA by setting PCI_TRDY_N to the asserted state.
[FRD_NGNICVBPCI_PCI_0355>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0355>DERIVED" ]
PCI accesses to addresses shown in Table 5 that are identified as Multi-FPGA transaction shall not be terminated by the NG_NIC_VbPCI until CORE_DONE_N is asserted or the PCI target latency time out period has been exceeded while IM_HERE_N input remains asserted.
Commentary: See 3.3.5.4 for the definition of the PCI target latency timeout period. IM_HERE_N identifies dual card configuration of NIC.
[FRD_NGNICVBPCI_PCI_0360>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0360>DERIVED" ]
PCI accesses to the Configuration Address Register shown in Table 6 shall be terminated by the NG_NICVBPCI FPGA by setting PCI_TRDY_N to the asserted state.
[FRD_NGNICVBPCI_PCI_0365>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0365>DERIVED" ]
PCI write accesses to the Configuration Address Register shown in Table 6 shall not be terminated by the NG_NIC_VbPCI until CORE_DONE_N is asserted or the PCI target latency time out period has been exceeded while IM_HERE_N input remains asserted.
Commentary: See 3.3.5.4 for the definition of the PCI target latency timeout period IM_HERE_N identifies dual card configuration of NIC..
[FRD_NGNICVBPCI_PCI_0370>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0370>DERIVED" ]
PCI accesses to the Configuration Data register shall be terminated by the NG_NICVBPCI FPGA if the contents of the Config. Address Register indicate that VbPCI Bus 1 is the target bus for the configuration transaction as shown Table 7.
Table 7 – PCI Configuration Space Accesses
Description
Contents of Config. Address Register
Terminated by NG_NICVBPCI FPGA
VbPCI Bus 2
1_XXXXXXX_XXXXXX10_XXXXX_XXX_YYYYYY_YYb
No
VbPCI Bus 1
1_XXXXXXX_XXXXXX01_XXXXX_XXX_YYYYYY_YYb
Yes
All others
----
No
Note: X and Y denote don’t cares
[FRD_NGNICVBPCI_PCI_0380>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0380>DERIVED" ]
NG_NICVBPCI shall claim all PCI Bus memory address space transactions within its address spaces listed in Table 5 when no PCI address/command parity errors are present by asserting the PCI_DEVSEL_N signal.
3.3.5.2 PCI Bus Data Path Access
To support the big endian to little endian mapping issue, the PCI client interface will swap all four data bytes (during the data phase, but not address phase).
[FRD_NGNICVBPCI_MON_0385> DERIVED XE \f "TRACETAG" " FRD_NGNICVBPCI_MON_0385>Derived" ]
PCI accesses to the NG_NICCORE FPGA shall swap bytes during the data phase of any transaction. PCI bus Byte Lane 0 (LSByte) will be swapped with Internal bus Byte Lane 3, PCI bus byte lane 1 will be swapped with Internal bus byte lane 2, PCI bus byte lane 2 will be swapped with internal bus byte lane 1 and PCI bus byte lane 3 (MSByte) will be swapped with internal bus byte lane 0.
[FRD_NGNICVBPCI_MON_0386> DERIVED XE \f "TRACETAG" " FRD_NGNICVBPCI_MON_0386>Derived" ]
PCI accesses to the NG_NICCORE FPGA shall swap byte enables during the data phase of any transaction. PCI bus C_BE0_n (LSByte) will be swapped with Internal bus Byte Enable 3, PCI bus C_BE1_n will be swapped with Internal bus Byte Enable 2, PCI bus C_BE2_n will be swapped with internal bus Byte Enable 1 and PCI bus C_BE3_n (MSByte) will be swapped with internal bus Byte Enable 0.
3.3.5.3 PCI Data Bursting
[FRD_NGNICVBPCI_PCI_0390>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0390>DERIVED" ]
NG_NICVBPCI shall support the PCI Bus burst ordering as indicated in Table 8.
Table 8 – PCI Burst Ordering
Address Phase
Burst Order
NIC VbPCI Target Action
PCI_AD1
PCI_AD0
0
0
Linear Incrementing
Linear Incrementing
0
1
Reserved
Target Abort
1
0
Cache-line Wrap Mode
Target Abort
1
1
Reserved
Target Abort
Commentary: The NG_NICVBPCI monitors the boundaries of the 16MB partitions during burst transactions to burst accessible memory spaces. If the address crosses the 16MB memory partition boundary (e.g. DINS into DOUTS), the target will perform a target abort for the last allocated location within the memory region. The target abort will only occur if the transaction is to continue beyond the last allocated memory location. A single access to the last location or a burst up to the last location won't generate a target abort.
[FRD_NGNICVBPCI_PCI_0400>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0400>DERIVED" ]
For the burst accessible devices listed in Table 9 the NG_NICVBPCI shall issue target abort for any PCI Bus burst access outside the memory mapped address boundaries listed in Table 5.
[FRD_NGNICVBPCI_PCI_0410>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0410>DERIVED" ]
The NG_NICVBPCI shall not claim the transaction if an address/command cycle has parity errors.
[FRD_NGNICVBPCI_PCI_0420>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0420>DERIVED" ]
If the NG_NICVBPCI detects a parity error during the address/command cycle, it shall assert PCI_SERR_N.
3.3.5.4 PCI Bus Access latency
The PCI protocol supports a variety of bus transfers. Bus transactions can be burst or non-burst. Transfer widths can be 8, 16, or 32-bits. Not all combinations of transactions and transfer widths are supported for each resource the host can access.
The NG_NICVBPCI provides access to three basic resource types: internal register based, external shared and external handshake based resources. Access latency to internal register based resources is tightly bounded. Access latency to external shared resources is loosely bounded and access latency to external handshake based resources is unbounded.
[FRD_NGNICVBPCI_PCI_0425>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0425>DERIVED" ]
The NG_NICVBPCI FPGA PCI target latency timeout period shall be 1937 ± 1 PCI_CLK cycles for any data phase of a PCI Bus 0 transaction.
Commentary: If any data phase of a PCI Bus 0 transaction that has been claimed by the NG_NICVBPCI FPGA take more than 1937 cycles to complete, the transaction will be terminated by a target abort. This is a deviation from the PCI Revision 2.2 specification which states that a target must issue a retry if it cannot complete the first data phase in 16 clock cycles. This deviation is required to allow accesses to the APM to complete. Refer to 3.3.7 for a description of the APM interface.
[FRD_NGNICVBPCI_PCI_0430>HRD_NGNIC_CoreIO_0330 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0430>HRD_NGNIC_CoreIO_0330" ]
[FRD_NGNICVBPCI_PCI_0430>HRD_NGNIC_CoreIO_0340 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0430>HRD_NGNIC_CoreIO_0340" ]
PCI accesses to the NG_NICVBPCI subfunctions shown in Table 5 shall require no more than the specified amount of time to complete as shown in Table 9.
Table 9 – Required PCI Bus maximum access times
Block Name
Read Clocks*
Write Clocks*
Access types supported
External NIC DPRAM left port
28-16
22-16
32 bit, 16 bit, 8 bit
External Real Time clock/ External Temperature Monitor
16
19
32 bit
APM
1937
1937
32 bit, 16 bit, 8 bit
Internal DMA register
16
26
32 bit
Internal FPGA ID register
16
N/A
32 bit
DINs
16
N/A
32 bit
DOUTs
16
19
32 bit
Internal DPRAM left port
28-16
22-16
32 bit, 16 bit, 8 bit
Internal DPRAM right port
9-1
7-1
32 bit, 16 bit, 8 bit
* For burst accesses, the first number indicates how many PCI clock cycles are required to complete the first access; the second number shows how many cycles are required to complete subsequent accesses.
[FRD_NGNICVBPCI_PCI_0440>HRD_NGNIC_CoreIO_0330 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0440>HRD_NGNIC_CoreIO_0330" ]
The NG_NICVBPCI shall support PCI Byte Enables and Access Types as indicated in Table 9.
[FRD_NGNICVBPCI_PCI_0450>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0450>DERIVED" ]
The NG_NICVBPCI shall provide PCI access to internal registers and shared external resources using non-burst memory read/write bus accesses as indicated in Table 9.
[FRD_NGNICVBPCI_PCI_0460>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0460>DERIVED" ]
The NG_NICVBPCI shall support minimum PCI bus access times defined by Table 9 for PCI burst and non-burst accesses to external handshake based resources.
3.3.6 VbPCI Bus 1 Master Functions
The NG_NICVBPCI FPGA Master Function allows the NIC CPU to perform the following functions:
· PCI Memory Reads and Writes on the VbPCI backplane (PCI bus 1) and to the User DPRAM which interfaces through the VbPCI client.
· PCI Configuration Reads and Writes on the VbPCI backplane (PCI bus1) and to the configuration registers in the VbPCI client via the configuration address and configuration data registers.
· Reads to the VbPCI bus 1 last address and PCI bus 1 last command registers which contain the last address and command (respectively) that were issued on the VbPCI backplane (PCI bus 1).
· Write to the VbPCI bus 1 test address and data registers.
The NG_NICVBPCI PCI Master interface is based on the PCI Local Bus Specification Revision 2.1. The NG_NICVBPCI Master Interface is not fully compliant with this specification. See Primus Epic( Virtual Backplane Network( requirements, EB7031405. The following deviations to PCI Local Bus Specification 2.1 exist for the VbPCI interface:
· The NIC may broadcast information to all user modules in the MAU during a single memory write transaction called a broadcast write.
· Relaxed timing specifications exist on certain PCI signals.
· Bit 1 of the PCI Header Command Configuration Register is internally hardwired to ‘1’ allowing users to accept memory accesses from power up.
· The VB_NIC_GNT_N signal is used to qualify PCI configuration and memory accesses.
· Burst configuration accesses to Configuration Register are not allowed.
· During broadcast write transactions the VbPCI master generates the VB_DEVSEL_N and VB_TRDY_N signals.
Commentary: For systems with VbPCI bridge Revision IDs up to (and including) version 6, plug-n-play software cannot use/assign a Base Address Register the value of 00xxxxxxh (in any present PCI device). If a Base Address Register value of 00xxxxxxh is assigned to any present PCI device (with a system that includes VbPCI Bridge devices with Revision IDs up to (and including) version 6), memory conflicts will occur with VbPCI bridges which are strapped not for Frame Buffer Arrangement Two (the two independent Frame Buffer Arrangement).
NOTE: Any reference to clocks in this section will be referring to the CLK_25 input (24.9975 MHz). Any reference to the term “access time” (for a host access) will be referring to the number of full CLK_25 cycles from the start of a data phase to the assertion of PCI_TRDY_N.
[FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0010 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0020" ]
[FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0020 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0020" ]
[FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0030 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0030" ]
[FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0040 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0040" ]
[FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0085 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0040" ]
The NG_NICVBPCI FPGA shall implement 32 bit PCI Master Interface Bus protocol bus transactions as defined in PCI local bus specification Revision 2.1, Sections 3.3.1-3.3.2 and 3.3.3.1-3.3.3.2 (and its subsections)
[FRD_NGNICVBPCI_PCI_0490>HRD_NGNIC_BP_0100 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0490>HRD_NGNIC_BP_0100" ]
The NG_NICVBPCI FPGA shall implement the required PCI signals as defined in PCI local Bus specification Revision 2.1, Sections 2.2.1 - 2.2.5.
Table 10 shows the memory map for VbPCI backplane (PCI bus 1 and VbPCI broadcast).
Table 10 – VbPCI Bus 1 Memory Map
Region
Starting Address
Ending Address
Access
Data
bits
VbPCI Bus 1
2000:0000H
2FFF:FFFFH
Read/Write
D(31:0)
VbPCI Broadcast
4000:0000H
4FFF:FFFFH
Write
D(31:0)
Table 11
shows how the PCI bus commands are decoded on the VbPCI backplane. Refer to the PCI Specification version 2.1 for more information on PCI bus transactions.
Table 11 – PCI Bus Command Definitions
VB_C_BE_N(3:0)
PCI bus command
0110
Memory Read
0111
Memory Write
1010
Configuration Read
1011
Configuration Write
[FRD_NGNICVBPCI_PCI_0500>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0500>DERIVED" ]
The NG_NICVBPCI FPGA shall support byte, word, double word aligned CPU accesses to all of the address regions defined in Table 10.
Commentary: This does not imply that burst transfers (>1 data phase) are supported for any non-dword aligned addresses.
[FRD_NGNICVBPCI_PCI_0510>HRD_NGNIC_BP_0102 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0510>HRD_NGNIC_BP_0102" ]
[FRD_NGNICVBPCI_PCI_0510>HRD_NGNIC_FUNC_0085 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0510>HRD_NGNIC_BP_0102" ]
The NG_NICVBPCI FPGA shall implement the VbPCI master signals VB_FRAME_N, VB_IRDY_N, and VB_PERR_N as sustained tri-state signals during master transactions performed across the VbPCI backplane (PCI bus 1).
Commentary: The PCI protocol requires that the above signals be implemented as sustained tri-state signals. These signals will be driven low during assertion and, when released, will be driven high for one clock before being tri-stated by the NG_NICVBPCI FPGA. See chapter 2 of the Local PCI specification version 2.1 for more information on sustained tri-state signals.
[FRD_NGNICVBPCI_PCI_0520>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0520>DERIVED" ]
The NG_NICVBPCI FPGA shall implement the VbPCI master signal VB_SERR_N as an open drain signal during master transactions performed across the VbPCI backplane (PCI bus 1).
3.3.6.1.1 VbPCI Memory Reads and Writes
[FRD_NGNICVBPCI_PCI_0550>HRD_NGNIC_Func_0030 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0550>HRD_NGNIC_Func_0030" ]
A CPU Memory Write in the VbPCI Bus 1 or the VbPCI Broadcast address range shown in Table 10 shall cause the FPGA to perform a PCI Memory Write on the VbPCI Bus 1.
[FRD_NGNICVBPCI_PCI_0551>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0551>DERIVED" ]
VbPCI Master Functions shall assert VB_DEVSEL_N after VB_FRAME_N was asserted followed by VB_TRDY_N assertion two CLK25 periods later when CPU writes into the VbPCI Broadcast address range.
Commentary: The VbPCI Master responds to decoded-owned Broadcast Memory Write transactions as the target agent and the VbPCI Client snoops the write data of the transaction. Since broadcast transactions target all of the devices on the VbPCI bus, the transaction is claimed and terminated by the bus master. The timing here is a legacy requirement necessary for client BICs to correctly recognize broadcast operations
[FRD_NGNICVBPCI_PCI_0552.>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0552>DERIVED" ]
The NG_NICVBPCI FPGA shall implement the VbPCI target signals VB_TRDY_N and VB_DEVSEL_N as sustained tri-state signals when CPU writes into the VbPCI Broadcast address range.
[FRD_NGNICVBPCI_PCI_0560>HRD_NGNIC_Func_0020 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0560>HRD_NGNIC_Func_0020" ]
A CPU Memory Read in the VbPCI bus 1 address range shown in Table 10 shall cause the FPGA to perform a PCI Memory Read on the VbPCI Bus 1.
Commentary: Reads to the VbPCI Broadcast address range are not supported.
3.3.6.1.2 VbPCI Bus 1 Configuration Reads and Writes
Table 12 shows the I/O address map associated with VbPCI Bus 1 configuration cycle generation registers. This is a PCI to PCI bridge functionality refer to section 3.7.4 of the Local PCI specification version 2.1 for more information on how bridges should generate type 0 configuration cycles.
Table 12 – VbPCI Bus 1 I/O Address Map
I/O Register
Address CPU_A(15:2)
Access
Data
Bits
CONFIG_ADDR
0CF8H
Read/Write
D(31:0)
CONFIG_DATA
0CFCH
Read/Write
D(31:0)
[FRD_NGNICVBPCI_PCI_0570>HRD_NGNIC_Func_0060 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0570>HRD_NGNIC_Func_0060" ]
A double word CPU I/O Write to the CONFIG_ADDR address shown in Table 12 shall cause the register to be written.
Commentary: When the CPU writes to the CONFIG_ADDR location, it is actually writing to two registers (or three if the dual-slot NIC mezzanine card is installed). The NIC Core FPGA implements the CONFIG_ADDR register for Local PCI Bus 0. The NG_NICVBPCI FPGA contains the CONFIG_ADDR register for VbPCI Bus 1. And the CONFIG_ADDR register for VBPCI Bus 2 is in the PM-NIC VbPCI Master FPGA (on dual-slot NIC mezzanine card). Because this is a “shared” register, only one of the FPGAs can terminate the CPU access. This is done by the NIC VbPCI FPGA. Furthermore, during CPU reads of the CONFIG_ADDR register, only the NIC VbPCI FPGA drives the data on PCI Bus 0.
[FRD_NGNICVBPCI_PCI_0580>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0580>DERIVED" ]
The NG_NICVBPCI FPGA shall assert PCI_TRDY_N (PCI local bus 0) during CPU accesses, and drive the PCI_AD (PCI 0) bus during CPU read accesses, to the CONFIG_ADDR register.
[FRD_NGNICVBPCI_PCI_0590>HRD_NGNIC_Func_0070 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0590>HRD_NGNIC_Func_0070" ]
If bits 31, 17, and 16 of the CONFIG_ADDR register contain 1, 0, and 1 respectively, as shown in Table 13, a CPU I/O Write to the CONFIG_DATA address shown in Table 12 shall cause the FPGA to perform a PCI Configuration Write on VbPCI Bus 1.
[FRD_NGNICVBPCI_PCI_0600>HRD_NGNIC_Func_0070 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0600>HRD_NGNIC_Func_0070" ]
If bits 31, 17 and 16 of the CONFIG_ADDR register contain 1, 0, and 1 respectively, as shown in Table 13, a CPU I/O Read to the CONFIG_DATA address shown in Table 12 shall cause the FPGA to perform a PCI Configuration Read on VbPCI Bus 1.
Table 13 – CONFIG_ADDR Register
D31
D30-D18
D17-D16
D15-D11
D10-D8
D7-D2
D1-D0
Enable
Don’t Care
PCI Bus Number
Device Number
Function Number
Register Number
Don’t Care
‘1’ = Enable
‘0’ = Disable
“00” = Local Bus 0
“01” = VbPCI Bus 1
“10” = VbPCI Bus 2
[FRD_NGNICVBPCI_PCI_0610>HRD_NGNIC_Func_0075 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0610>HRD_NGNIC_Func_0075" ]
During a PCI Configuration Read or PCI Configuration Write, the NG_NICVBPCI FPGA shall translate the value stored in bits 15:11 of the CONFIG_ADDR register to an address that is driven on the VB_AD bus for the address phase of the PCI transaction, as shown in Table 14.
Table 14 – Translation of CONFIG_ADDR to VB_AD
VB_AD
(31:23)
VB_AD(22:11)
VB_AD
(10:8)
VB_AD
(7:2)
VB_AD
(1:0)
CONFIG_ADDR (15:11)
Function Number
Register Number
“00000”
“100000000”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
“00001”
“010000000”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
“00010”
“001000000”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
“00011”
“000100000”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
“00100”
“000010000”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
“00101”
“000001000”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
“00110”
“000000100”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
“00111”
“000000010”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
“01000”
“000000001”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
Others
“000000000”
all bits ‘0’
CONFIG_ADDR(10:8)
CONFIG_ADDR(7:2)
“00”
3.3.6.1.3 VbPCI Error Handling
The NIC VbPCI Master provides error detection and reporting. This section describes how the NG_NICVBPCI Master handles different error (or interrupt) conditions. Errors detected by the VbPCI Master are reported by asserting internal error signals for each detected error. The system error (SERR) and parity error (PERR) signals are used to report errors on the VbPCI bus.
The VbPCI Master function receives and generates VB_SERR_N (system error) and VB_PERR_N (parity error) during PCI transactions on the VbPCI backplane. The VbPCI Master function also receives a VB_STOP_N signal. Whenever VB_SERR_N occurs or if the VB_STOP_N signal is asserted, the VbPCI Master function ends the transaction on the VbPCI backplane and sends VB_SERR_INT_L and VB_STOP_INT_L interrupts to the NIC CPU. Whenever VB_PERR_N occurs the VbPCI Master function sends VB_PERR_INT_L interrupt to the NIC CPU.
[FRD_NGNICVBPCI_PCI_0620>HRD_NGNIC_Func_0100 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0620>HRD_NGNIC_Func_0100" ]
If VB_DEVSEL_N has not been asserted five CLK_25 clock cycles after the NICVBPCI FPGA asserts VB_FRAME_N, the FPGA shall assert VB_SERR_N for one CLK_25 clock cycle, complete the PCI Bus 0 transaction, and terminate the VbPCI Bus 1 transaction by master abort.
Commentary: Master abort is defined in section 3.3.3.1 of the PCI Local Bus Specification.
[FRD_NGNICVBPCI_PCI_0630>HRD_NGNIC_Func_0110 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0630>HRD_NGNIC_Func_0110" ]
If VB_TRDY_N has not been asserted sixteen CLK_25 clocks cycles after the NICVBPCI FPGA asserts VB_FRAME_N, the FPGA shall assert VB_SERR_N for one CLK_25 clock cycle, complete the PCI Bus 0 transaction, and complete the VbPCI Bus 1 transaction.
Commentary: Completion of operation is defined as a regular transaction completion by master. Master simply indicates that given data phase is the last to be performed. Refer to section 3.3.3.1 of the PCI Local Bus Specification.
[FRD_NGNICVBPCI_PCI_0635>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0630>HRD_NGNIC_Func_0110" ]
If VB_SERR_N is asserted due to VB_DEVSEL_N or VB_TRDY_N timeout error during PCI0 read operation the NICVBPCI FPGA shall return all 1’s on PCI Bus 0 PCI_AD lines.
[FRD_NGNICVBPCI_PCI_0640>HRD_NGNIC_Func_0085 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0640>HRD_NGNIC_Func_0090" ]
[FRD_NGNICVBPCI_PCI_0640>HRD_NGNIC_Func_0090 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0640>HRD_NGNIC_Func_0090" ]
VB_PERR_N shall be asserted if VB_PAR does not provide even parity across VB_AD(31:0) and VB_C_BE_N(3:0) during the data phase of a read on VbPCI Bus 1.
Commentary: Correct even parity occurs when the number of 1’s on VB_AD(31:0), VB_C_BE_N(3:0), and VB_PAR is an even number.
Commentary: A VbPCI client must always assert VB_PERR_N two clocks after a data transfer in which an error occurred. Once VB_PERR_N is asserted it must remain asserted until two clocks following the actual transfer. See PCI rev.2.1 spec, section 3.8.2.1.
[FRD_NGNICVBPCI_PCI_0645>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0640>HRD_NGNIC_Func_0090" ]
When VB_SERR_N is asserted during broadcast operation VbPCI FPGA shall complete transaction on VbPCI Bus 1.
Commentary: Since Broadcast operation is a deviation form PCI spec error handling behavior for such operation has to be defined. During broadcasts VbPCI master acts both as Master and slave (drives VB_TRDY_N and VB_TRDY_N). Strategy was defined to complete broadcast operation (master Completion) in order to gracefully bring PCI bus 1 to Idle state. PCI spec expects SERR_N to result in complete system reset, this may not be the case for NG_NIC. CPU will be informed about error condition by means of VB_SERR_N_INT (see below).
[FRD_NGNICVBPCI_PCI_0650>HRD_NGNIC_Func_0235 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0650>HRD_NGNIC_Func_0235" ]
[FRD_NGNICVBPCI_PCI_0650>HRD_NGNIC_Func_0237 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0650>HRD_NGNIC_Func_0237" ]
VB_PERR_INT_L shall be asserted for a time period of to four to seven PCI_CLK clock cycles when VB_PERR_N is asserted.
[FRD_NGNICVBPCI_PCI_0660>HRD_NGNIC_Func_0200 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0660>HRD_NGNIC_Func_0200" ]
[FRD_NGNICVBPCI_PCI_0660>HRD_NGNIC_Func_0210 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0660>HRD_NGNIC_Func_0210" ]
VB_SERR_INT_L shall be asserted for a time period of to four to seven PCI_CLK clock cycles when VB_SERR_N is asserted.
[FRD_NGNICVBPCI_PCI_0670>HRD_NGNIC_Func_0220 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0670>HRD_NGNIC_Func_0220" ]
[FRD_NGNICVBPCI_PCI_0670>HRD_NGNIC_Func_0230 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0670>HRD_NGNIC_Func_0230" ]
When VB_STOP_N is asserted, the NG_NICVBPCI FPGA shall assert VB_STOP_INT_L for a time period of five to eight PCI_CLK clock cycles and terminate the VbPCI Bus 1 transaction as defined in section 3.3.3.2 of the PCI Local Bus Specification.
3.3.6.2 VbPCI Bus Request/ Bus Arbitration
The VB_NIC_GNT_N line provided to all clients on the backplane PCI bus 1 is used to enable clients to respond to backplane transactions from the master. The NIC is the only master on VBPCI bus (PCI bus 1). Each module (or each slot) is supplied with an REQ_N line and a GNT_N line. These lines will be used for fault isolation functions.
NOTE: The ability to have multiple VbPCI bus masters is not required in the MAU system, so this functionality is removed.
[FRD_NGNICVBPCI_PCI_0680>HRD_NGNIC_Func_0250 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0680>HRD_NGNIC_Func_0250" ]
[FRD_NGNICVBPCI_PCI_0680>HRD_NGNIC_Func_0260 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0680>HRD_NGNIC_Func_0260" ]
NG_NICVbPCI Master Function shall drive signal VB_NIC_GNT_N low for all transactions.
Commentary: See chapter 3.4 of the Local PCI specification version 2.1 for more information.
3.3.6.3 VbPCI Test Registers
To facilitate testing of the VbPCI bus, test registers are built into the hardware.
The System Error Test register is located in the CPU address region for VbPCI Bus 1. CPU writes to the each System Error Test register (2F000000 for VbPCI Bus 1 and 3F000000 for VbPCI Bus 2 if mezzanine card is connected). Writing to these registers will generate a PCI write transaction with incorrect even parity during the address phase. All BICs will assert SERR# simultaneously and set the SERR# error bit in their status registers. Upon detection of the SERR# backplane signal, the SERR interrupt will be asserted by the NG_NICVBPCI FPGA
The Parity Error Test register is a PCI Configuration register that is accessed via the CONFIG_ADDR and CONFIG_DATA registers. To test that each BIC asserts PERR# correctly, the master performs a PCI write to a client’s Parity Error Test register with incorrect even parity during the data phase. Each target will assert PERR# and set PERR# error bit in their status register. Upon detection of the PERR# backplane signal, the PERR# interrupt will be asserted by the NG_NICVBPCI FPGA.
NOTE: To generate incorrect even parity, VB_PAR will be driven such that the number of 1’s on VB_AD(31:0), VB_C_BE_N(3:0), and VB_PAR is an odd number.
[FRD_NGNICVBPCI_PCI_0690>HRD_NGNIC_Safe_0005 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0690>DERIVED" ]
A CPU Memory Write to the System Error Test register shown in Table 15 shall cause the NG_NICVBPCI FPGA to generate incorrect even parity on VB_PAR during the address phase of the PCI Memory Write transaction.
Table 15 – VbPCI Bus 1 Test Memory Map
Register
CPU Address
Decoded
Address Bits*
Access
Type
Data
Bits
31:24
7:2
System Error Test
2F00:0000H
2FH
x
Write
N/A
Parity Error Test
0000:0054H
X
15H
Write
N/A
* The decoded address bits show how the register addresses are shadowed within the FPGA.
[FRD_NGNICVBPCI_PCI_0700>HRD_NGNIC_Safe_0005 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0700>DERIVED" ]
A PCI Configuration Write to the Parity Error Test register shown in Table 15 shall cause the NG_NICVBPCI FPGA to generate incorrect even parity on VB_PAR during the data phase of the VbPCI Configuration Write transaction.
This is accomplished by first performing a CPU I/O Write to the CONFIG_ADDR register (0CF8H) with D31 = ‘1’, D17-D16 = “01”, and D7-D2 = “010101”. Any subsequent CPU I/O Write to the CONFIG_DATA register (0CFCH) executes a PCI Configuration Write to the Parity Error Test register.
3.3.6.4 VbPCI Bus 1 Last Transaction Registers
The NIC module has up to three PCI busses. These three busses are PCI Bus 0 (local PCI), VbPCI Bus 1, and VbPCI Bus 2 (only present on dual NIC modules). The NG_NICVBPCI FPGA provides the interface to VbPCI Bus 1. The VbPCI Bus 1 last command register is a read-only register that contains the command value for the last PCI transaction that was performed on VbPCI Bus 1. The VbPCI Bus 1 last address register is also read-only and contains the address value for the last PCI transaction.
The VbPCI Bus1 last command register and last address register may assist in software diagnosis of errors that triggered STOP_N, PERR_N and SERR_N interrupts
[FRD_NGNICVBPCI_PCI_0710>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0710>DERIVED" ]
The CPU Address and Access Type for the VbPCI Bus 1 Last Transaction registers shall be as defined in Table 16.
[FRD_NGNICVBPCI_PCI_0720>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0720>DERIVED" ]
The VbPCI Bus 1 Last Transaction registers shall be initialized to the Reset Value shown in Table 16 when CCA_RST_N is asserted.
Table 16 – VbPCI Bus 1 Last Transaction Memory Map
Register Name
CPU Address
Decoded Address bits*
Access
Type
Data
Width
Reset
Value
31:20
15:12
VbPCI Bus 1 Last Command
7810:B000H
781H
BH
Read
D(3:0)
FH
VbPCI Bus 1 Last Address
7810:A000H
781H
AH
Read
D(31:0)
FFFF_FFFCH
* The decoded address bits show how the register addresses are shadowed within the FPGA.
[FRD_NGNICVBPCI_PCI_0730>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0730>DERIVED" ]
A CPU Memory read of the VbPCI Bus 1 Last Command register shall return the state of the PCI command/byte enable bus (VB_C_BE_N) during the address phase of the last transaction on VbPCI Bus 1, as shown in Table 17.
Table 17 – VbPCI Bus 1 Last Command Register
D31-D4
D3-D0
all bits ‘0’
VB_C_BE_N(3:0)
[FRD_NGNICVBPCI_PCI_0740>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0740>DERIVED" ]
A CPU Memory read of the VbPCI Bus 1 Last Address register shall return the state of the PCI address/data bus (VB_AD) during the address phase of the last transaction on VbPCI Bus 1, as shown in Table 18.
Table 18 – VbPCI Bus 1 Last Address Register
D31-D2
D1-D0
VB_AD(31:2)
“00”
[FRD_NGNICVBPCI_PCI_0750>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0750>DERIVED" ]
CPU Memory writes to the VbPCI Bus 1 Last Transaction registers shall be terminated with no action taken (Read only).
[FRD_NGNICVBPCI_PCI_0760>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0760>DERIVED" ]
The PCI bus 1 last address register shall contain the most recent address issued on VB_AD(31:2) on the VbPCI backplane.
[FRD_NGNICVBPCI_PCI_0770>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0770>DERIVED" ]
The PCI bus 1 last command register shall contain the most recent bus command issued on VB_C_BE_N(3:0) on the VbPCI backplane.
3.3.7 Aircraft Personality Module (APM) Interface
The APM (Aircraft Personality Module) will be mounted external to the MAU cabinet and connected to the NIC through its front connector. The interface to the NIC will be based on a Serial Peripheral Interface (SPI) protocol. The certified configuration of the aircraft can be read through this interface to compare against the actual configuration for Return to Service considerations. The digital portion of the APM interface is contained in the NG_NICVBPCI FPGA.
The Serial Peripheral Interface (SPI) port built into the NG_NICVBPCI FPGA. The SPI controller generates APM_CLK 1.5625 MHz by dividing the CLK_25 (25 MHz) down. The SPI controller has a number of memory mapped registers.
The current APM contains a 16Kbyte serial EEPROM. The EEPROM internal status register indicates if a write is in progress and allows control over the write protect mechanisms available in the part. See the Xicor X25128 (or Catalyst CAT25C128) data sheet for more information on the configuration of the status register. The 16Kbyte contiguous block starts at address 7E010000h. One byte to four bytes may be written before the EEPROM begins its internal write process. After the internal write process has started the EEPROM can take up to 10ms to finish the write cycle. Byte, word or double word accesses may be made to the APM. The hardware interface to the APM always does 32 bit accesses, so double word accesses provide the most efficient use of the interface.
Accesses to the APM are controlled by an 8 bit address mapped command that is generated on every CPU access to the APM, see Table 19. The EEPROM memory must be write-enabled by setting the Write Enable Latch (WEL) issuing the WREN instruction before every write access. The WEL bit is reset automatically after every write access to the serial EEPROM memory of status register.
To write data to the Xicor X25128 (or Catalyst CAT25C128) EEPROM memory array, the user issues the write instruction, followed by the address and then the data to be written. This is 32 clock min. operation. APM_CS must go high and remain high for the duration of the operation.
NOTE: Since board level inverting Schmitt triggers are applied on all APM interface signals FPGA must compensate for this fact and all APM signals at FPGA pins have inverted polarity with regard to levels described in datasheets of the respective eeprom devices.
The host may continue to write up to 32 bytes of data to the Xicor X25128 (or Catalyst CAT25C128). The only restriction is the 32 bytes must reside on the same page. If the address counter reaches the end of the page and the clock continues, the counter will “roll over” to the first address of the page and overwrite any data that may have been written.
To read data from the Xicor X25128 (or Catalyst CAT25C128) EEPROM, the APM_CS is first pulled high to select the device. The 8-bit read instruction is transmitted to the Xicor X25128 (or Catalyst CAT25C128), followed by the 16-bit address. After the read opcode and address are sent, the data stored in the memory at the selected address is shifted out on the APM_DO line. The data stored in memory at the next address can be read sequentially by continuing to provide clock pulses. The address is automatically incremented to the next higher address after each byte of data is shifted out. When the highest address is reached the address counter rolls over to address $0000 allowing the read cycle to be continued. See the Xicor X25128 (or Catalyst CAT25C128) data sheet for more information.
[FRD_NGNICVBPCI_APM_0775> HRD_NGNIC_Func_0680 XE \f "TRACETAG" "FRD_NGNICVBPCI_PCI_0770>DERIVED" ]
The NG_NIC_VBPCI FPGA shall implement protocol per Xicor X25128 and CAT25C128 datasheet to allow correct operation with APM module using either of the parts.
Table 19 – APM Register Memory Map
Register Name
CPU Address
Decoded Address Bits*
Access
Type
Reset
Value
31:24
16,13,12
APM Status**
7E00:0000H
7EH
000b
Read/Write
undefined
APM WREN***
7E00:1000H
7EH
001b
Write
N/A
APM WRDI***
7E00:2000H
7EH
01-b
Write
N/A
APM MEM
7E01:0000H
7EH
1—b
Read/Write
N/A
* The decoded address bits show how the register addresses are shadowed within the FPGA.
** The status register is located in the APM, external to the FPGA.
*** WREN and WRDI are address-mapped instructions that are sent serially to the APM.
[FRD_NGNICVBPCI_APM_0780>HRD_NGNIC_Func_0662 XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0780>HRD_NGNIC_Func_0662" ]
[FRD_NGNICVBPCI_APM_0780>HRD_NGNIC_Func_0666 XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0780>HRD_NGNIC_Func_0666" ]
The access type, reset value, and actual decoded CPU address bits for the APM registers and memory shall be as defined in Table 19.
[FRD_NGNICVBPCI_APM_0790>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0790>DERIVED" ]
APM_CLK shall be held at ‘1’ when no CPU bus cycle is accessing the APM.
Commentary: The Serial Clock controls the serial bus timing for data input and output. Addresses, or data present on the SDI pin are latched on the rising edge of the clock input, while data on the SDO pin change after the falling edge of the clock input. Data input is sampled on the first rising edge of APM_SCK after chip select goes low. APM_SCK is static, allowing the user to stop the clock and then resume operations.
[FRD_NGNICVBPCI_APM_0800>HRD_NGNIC_Func_0664 XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0800>HRD_NGNIC_Func_0664" ]
APM_CLK shall be a 1.5625 ± 0.008 MHz clock.
[FRD_NGNICVBPCI_APM_0810>HRD_NGNIC_Func_0668 XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0810>HRD_NGNIC_Func_0668" ]
The APM Interface shall accept byte, word, and double word writes from the CPU.
Commentary: During an APM Status Register write, PCI_AD(31:24) data bits are written to the 8 bit status register. The 14 bit starting byte memory address for APM Memory Writes is constructed from PCI_AD (13:2) address and a 2-bit value derived from the CPU Byte Enables, see Table 20. After the APM Status Register is loaded, the APM Serial Data Out Register will be shifted by one bit from the LSB to MSB every APM_CLK cycle. APM_DO will be connected to the MSB of the APM Serial Data Out Register
Table 20 – APM Serial Data Out (SDO) Register
ACCESS TYPE
SDO BITS 55-48
SDO BITS 47-40
SDO BITS 39-34
SDO BITS 33-32
SDO BITS 31-24
SDO BITS 23-16
SDO BITS 15-8
SDO BITS 7-0
APM STATUS READ
0000:0101
PCI_D31-24
DONT CARE
DONT CARE
DONT CARE
Don’t CARE
DONT CARE
DONT CARE
APM STATUS WRITE
0000:0001
PCI_D31-24
DONT CARE
DONT CARE
DONT CARE
Don’t CARE
DONT CARE
DONT CARE
APM WREN WRITE
0000:0110
PCI_A15-8
PCI_A7-2
DONT CARE
DONT CARE
Don’t CARE
DONT CARE
DONT CARE
APM WRDI WRITE
0000:0100
PCI_A15-8
PCI_A7-2
DONT CARE
DONT CARE
Don’t CARE
DONT CARE
DONT CARE
APM MEM WRITE, PCI_BE(3:0)_N = 0000
0000:0010
PCI_A15-8
PCI_A7-2
00
PCI_D7-0
PCI_D15-8
PCI_D23-16
PCI_D31-24
APM MEM WRITE, PCI_BE(3:0)_N = 1110
0000:0010
PCI_A15-8
PCI_A7-2
00
PCI_D7-0
Don’t CARE
DONT CARE
DONT CARE
APM MEM WRITE, PCI_BE(3:0)_N = 1101
0000:0010
PCI_A15-8
PCI_A7-2
01
PCI_D15-8
Don’t CARE
DONT CARE
DONT CARE
APM MEM WRITE, PCI_BE(3:0)_N = 1011
0000:0010
PCI_A15-8
PCI_A7-2
10
PCI_D23-16
Don’t CARE
DONT CARE
DONT CARE
APM MEM WRITE, PCI_BE(3:0)_N = 0111
0000:0010
PCI_A15-8
PCI_A7-2
11
PCI_D31-24
Don’t CARE
DONT CARE
DONT CARE
APM MEM WRITE, PCI_BE(3:0)_N = 1100
0000:0010
PCI_A15-8
PCI_A7-2
00
PCI_D7-0
PCI_D15-8
DONT CARE
DONT CARE
APM MEM WRITE, PCI_BE(3:0)_N = 1001
0000:0010
PCI_A15-8
PCI_A7-2
01
PCI_D15-8
PCI_D23-16
DONT CARE
DONT CARE
APM MEM WRITE, PCI_BE(3:0)_N = 0011
0000:0010
PCI_A15-8
PCI_A7-2
10
PCI_D23-16
PCI_D31-24
DONT CARE
DONT CARE
APM MEM READ
0000:0011
PCI_A15-8
PCI_A7-2
00
PCI_D7-0
PCI_D15-8
PCI_D23-16
PCI_D31-24
[FRD_NGNICVBPCI_APM_0820>HRD_NGNIC_Func_0662 XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0820>HRD_NGNIC_Func_0662" ]
[FRD_NGNICVBPCI_APM_0820>HRD_NGNIC_Func_0668 XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0820>HRD_NGNIC_Func_0668" ]
At the start of a CPU bus Read access of the APM, the desired APM data shall be placed onto the CPU Data Bus as indicated in Table 21.
Commentary: All CPU Reads of the APM memory return 4 bytes with byte (0) being the word location addressed by PCI_A(13:2). A CPU Read of the APM Status register returns the 8 bits in PCI_D(31:24) as shown in Table 21.
[FRD_NGNICVBPCI_APM_0830>HRD_NGNIC_Func_0662 XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0830>HRD_NGNIC_Func_0662" ]
[FRD_NGNICVBPCI_APM_0830>HRD_NGNIC_Func_0674 XE \f "TRACETAG" "FRD_NGNICVBPCI_APM_0830>HRD_NGNIC_Func_0662" ]
During APM accesses, the APM serial data shall be sent and received MSB first.
Table 21 – APM Serial Data In (SDI) Register
Access TYPE
PCI_D
(31:24)
PCI_D
(23:16)
PCI_D
(15:8)
PCI_D
(7:0)
APM MEM READ
APM MEM BYTE (3)
APM MEM BYTE (2)
APM MEM BYTE (1)
APM MEM BYTE (0)
APM STATUS READ
APM STATUS (7:0)
DONT
CARE
DONT
CARE
DONT
CARE
3.3.8 FPGA ID and Modul ID
The FPGA Rev.Num. register is a read-only register. S/W reads of the Module ID return an ID byte that is specific to a particular module type and FPGA Revision number byte. The Module ID byte consists of bits 0 though bit 7. Bits 0 and 1 indicate that Mezzanine Connection exists or not. Two bits are used in order to preserve even parity across the byte. The Module ID bits 7:2 are hard wired in the NG_NICVBPCI. The FPGA Revision Number Byte is hardwired in the NG_NICVBPCI.
[FRD_NGNICVBPCI_ID_0840>HRD_NGNIC_CoreFunc_1240 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0840>HRD_NIC_CoreFunc_1240" ]
[FRD_NGNICVBPCI_ID_0840>HRD_NGNICM_Mod_0070 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0840>HRD_NGNICM_Mod_0070" ]
The CPU Address and Access Type for the NG_NICVBPCI FPGA revision number register shall be as defined in Table 22.
Table 22 – FPGA Revision Register Memory Map
Register Name
CPU Address
Decoded Address
Bits*
Access
Type
Data
Width
Reset
Value
31:20
FPGA Rev.Num.
7190:0000H
719H
Read
D(31:0)
Don't Care
* The decoded address bits show how the register addresses are shadowed within the FPGA.
[FRD_NGNICVBPCI_SAFE_0850>HRD_NGNIC_CoreSafe_0130 XE \f "TRACETAG" "FRD_NGNICVBPCI_SAFE_0850>HRD_NGNIC_CoreSafe_0130" ]
[FRD_NGNICVBPCI_ID_0850>HRD_NGNICM_Mod_0090 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0850>HRD_NGNICM_Mod_0090" ]
[FRD_NGNICVBPCI_ID_0850> HRD_NGNIC_CoreFunc_1210 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0850>HRD_NGNICM_Mod_0090" ]
[FRD_NGNICVBPCI_ID_0850> HRD_NGNIC_CoreFunc_1220 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0850>HRD_NGNICM_Mod_0090" ]
The internal representation of the FPGA Rev. Num. register shall be as described in Figure 3 – 3.
Commentary: The module ID includes an 8th bit for use as a parity bit.
31
24
23
16
15
8
7
0
00h
00h
FPGA Rev Num
Module ID
Figure 3 – FPGA Rev. Register format
[FRD_NGNICVBPCI_ID_0860>HRD_NGNICM_Mod_0080 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0860>HRD_NGNICM_Mod_0080" ]
The NG_NICVBPCI FPGA revision number shall be an 8-bit binary number.
[FRD_NGNICVBPCI_ID_0862> HRD_NGNIC_CoreFunc_1200 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0860>HRD_NGNICM_Mod_0080" ]
[FRD_NGNICVBPCI_ID_0862> HRD_NGNIC_CoreFunc_1250 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0860>HRD_NGNICM_Mod_0080" ]
The Module ID shall be ACh when the IM_here_n signal/input pin is de-asserted.
[FRD_NGNICVBPCI_ID_0864> HRD_NGNICM_Mod_0040 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0860>HRD_NGNICM_Mod_0080" ]
[FRD_NGNICVBPCI_ID_0864> HRD_NGNIC_CoreFunc_1200 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0860>HRD_NGNICM_Mod_0080" ]
[FRD_NGNICVBPCI_ID_0864> HRD_NGNIC_CoreFunc_1250 XE \f "TRACETAG" "FRD_NGNICVBPCI_ID_0860>HRD_NGNICM_Mod_0080" ]
The Module ID shall be 2Dh when the IM_here_n signal/input pin is asserted.
3.3.9 Discrete Outputs
The discrete output interface allows S/W to set/clear external pins on the FPGA or internal signals within the FPGA. Each discrete output bit (or group of bits) is given a unique register address for S/W access. To support DEOS each register address is mapped on a 4K boundary. Each register is writeable using the PCI data bus. The reads for each DOUT address contain all discrete output values arranged according to their DOUT number. During a S/W write to any of the Discrete output registers within the NG_NICVBPCI FPGA, the value of PCI data bus bit defined in Table 23 is written into the addressed Discrete Output Register. For S/W reads, the discrete outputs belong to one of two groups. A S/W read from any Discrete output register address associated with a particular group will return the state of all supported discrete outputs within that group. Unused outputs will return '0' in their corresponding group's bit position.
Douts 0 - 31 belong to discrete output group 1 and Douts 32 - 63 belong to discrete output group 2.
[FRD_NGNICVBPCI_DIO_0870>HRD_NGNIC_CoreFunc_0830 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0870>HRD_NGNIC_CoreFunc_0830" ]
The CPU Address for the Discrete Output (DOUT) registers shall be as defined in Table 23.
[FRD_NGNICVBPCI_DIO_0880>HRD_NGNIC_CoreFunc_0830 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0880>HRD_NGNIC_CoreFunc_0830" ]
[FRD_NGNICVBPCI_DIO_0880>HRD_NGNIC_CoreFunc_0820 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0880>HRD_NGNIC_CoreFunc_0820" ]
The NG_NICVBPCI discrete outputs shall be write-addressable as shown in Table 23.
[FRD_NGNICVBPCI_DIO_0890>HRD_NGNIC_Func_0265 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0890>HRD_NIC_Func_0265" ]
[FRD_NGNICVBPCI_DIO_0890>HRD_NGNIC_Func_0270 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0890>HRD_NIC_Func_0265" ]
[FRD_NGNICVBPCI_DIO_0890>HRD_NGNIC_Func_0280 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0890>HRD_NIC_Func_0265" ]
When the CPU writes to the Discrete Output registers, the value on the PCI data bus bit defined in the Write Data Bit column of Table 23 shall be latched in to the corresponding DOUT.
[FRD_NGNICVBPCI_DIO_0900>HRD_NGNIC_CoreFunc_0830 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0900>HRD_NGNIC_CoreFunc_0830" ]
[FRD_NGNICVBPCI_DIO_0900>HRD_NGNIC_CoreFunc_0820 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0900>HRD_NGNIC_CoreFunc_0820" ]
The NG_NICVBPCI discrete outputs, DOUT31-0, shall be read addressable at the addresses indicated in Table 23 for DOUTS Group 1.
[FRD_NGNICVBPCI_DIO_0910>HRD_NGNIC_CoreFunc_0830 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0910>HRD_NGNIC_CoreFunc_0830" ]
[FRD_NGNICVBPCI_DIO_0910>HRD_NGNIC_CoreFunc_0820 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0910>HRD_NGNIC_CoreFunc_0820" ]
[FRD_NGNICVBPCI_DIO_0910>HRD_NGNIC_Safe_0180 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0910>HRD_NGNIC_CoreFunc_0820" ]
The NG_NICVBPCI discrete outputs, DOUT63-32, shall be read addressable at the addresses indicated in Table 23 for DOUTS Group 2.
Table 23 – Discrete Output Registers Memory Map
Register Name (DOUT Number)
Discrete Output
CPU Address
Decoded Address Bits*
Write Data
Bit
Read data Bit
31:16
15:12
DOUTs Group 1
Discrete Output 0
Reserved**
7210:0000H
7210H
0000b
PCI_D(0)
PCI_D(0)
Discrete Output 11
PSBUS 0
7210:B000H
7210H
1011b
PCI_D(0)
PCI_D(11)
Discrete Output 12
PSBUS 1
7210:B000H
7210H
1011b
PCI_D(1)
PCI_D(12)
Discrete Output 13
PSBUS 2
7210:B000H
7210H
1011b
PCI_D(2)
PCI_D(13)
Discrete Output 14
PSBUS 3
7210:B000H
7210H
1011b
PCI_D(3)
PCI_D(14)
Discrete Output 15
PSBUS 4
7210:B000H
7210H
1011b
PCI_D(4)
PCI_D(15)
Discrete Output 19
VB_RST_LOCK
7211:3000H
7211H
0011b
PCI_D(0)
PCI_D(19)
Discrete Output 20
VB_RST_N
7211:4000H
7211H
0100b
PCI_D(0)
PCI_D(20)
DOUTs Group 2
Discrete Output 32
Fail_1_5V_Hi
7212:0000H
7212H
0000b
PCI_D(0)
PCI_D(0)
Discrete Output 33
Fail_1_5V_low
7212:1000H
7212H
0001b
PCI_D(0)
PCI_D(1)
Discrete Output 34
Fail_3_3V_Hi
7212:2000H
7212H
0010b
PCI_D(0)
PCI_D(2)
Discrete Output 35
Fail_3_3V_Low
7212:3000H
7212H
0011b
PCI_D(0)
PCI_D(3)
Discrete Output 39
FAN_ON1
7212:7000H
7212H
0111b
PCI_D(0)
PCI_D(7)
Discrete Output 40
FAN_ON2
7212:8000H
7212H
1000b
PCI_D(0)
PCI_D(8)
Discrete Output 41
FAN_ON3
7212:9000H
7212H
1001b
PCI_D(0)
PCI_D(9)
Discrete Output 42
FAN_ON4
7212:A000H
7212H
1010b
PCI_D(0)
PCI_D(10)
Discrete Output 43
VB_SLOT_RST0
7212:B000H
7212H
1011b
PCI_D(0)
PCI_D(11)
Discrete Output 44
VB_SLOT_RST1
7212:B000H
7212H
1011b
PCI_D(1)
PCI_D(12)
Discrete Output 45
VB_SLOT_RST2
7212:B000H
7212H
1011b
PCI_D(2)
PCI_D(13)
Discrete Output 46
VB_SLOT_RST3
7212:B000H
7212H
1011b
PCI_D(3)
PCI_D(14)
Discrete Output 47
VB_SLOT_RST4
7212:B000H
7212H
1011b
PCI_D(4)
PCI_D(15)
Discrete Output 48
VB_SLOT_RST5
7212:B000H
7212H
1011b
PCI_D(5)
PCI_D(16)
Discrete Output 49
VB_SLOT_RST6
7212:B000H
7212H
1011b
PCI_D(6)
PCI_D(17)
Discrete Output 50
VB_SLOT_RST7
7212:B000H
7212H
1011b
PCI_D(7)
PCI_D(18)
Discrete Output 51
SLOT_SERR_RST
7213:3000H
7213H
0011b
PCI_D(0)
PCI_D(19)
Discrete Output 52
DPRAM_CHIP_SEL
7213:4000H
7213H
0100b
PCI_D(0)
PCI_D(20)
Discrete Output 53
APM_SHDN_N
7213:5000H
7213H
0101b
PCI_D(0)
PCI_D(21)
*
The decoded address bits show how the register addresses are shadowed within the FPGA.
**
This Reserved bit is a read/write register, but it is not connected to an output pin on the FPGA.
[FRD_NGNICVBPCI_DIO_0920>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0920>DERIVED" ]
During CPU reads of the Discrete Outputs registers, the bits of the PCI data bus not listed in Table 23 shall return a logic '0' in their corresponding group bit positions.
[FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_Func_0330 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0930>HRD_NIC_Func_0330" ]
[FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_Func_0350 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0930>HRD_NIC_Func_0330" ]
[FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_Func_0360 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0930>HRD_NIC_Func_0330" ]
[FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_Func_0370 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0930>HRD_NIC_Func_0330" ]
[FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_Func_0380 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0930>HRD_NIC_Func_0330" ]
[FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_Func_0440 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0930>HRD_NIC_Func_0330" ]
[FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_CoreFunc_0038 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_CoreFunc_0038" ]
Discrete Output register bits shall be initialized to the Reset Value shown in Table 24 when CCA_RST_N is asserted.
Table 24 – Discrete Outputs
DOUT
BIT
Discrete Output
Description
Reset
Value
Comment
0
Reserved
0
1-10
Not used
0
11
PSBUS 0*
Power supply #1 output discrete bus, Bit 0
0
External output
12
PSBUS 1*
Power supply #1 output discrete bus, Bit 1
0
External output
13
PSBUS 2*
Power supply #1 output discrete bus, Bit 2
0
External output
14
PSBUS 3*
Power supply #1 output discrete bus, Bit 3
0
External output
15
PSBUS 4*
Power supply #1 output discrete bus, Bit 4
0
External output
16-18
Not used
0
19
VB_RST_LOCK
VbPCI Bus 1 Reset Lockout
0
External output
20
VB_RST_N
VbPCI Bus 1 Reset
0
External output
21-31
Not used
0
32
Fail_1_5V_Hi
Local PS 1.5V Ove rvoltage Test
0
External output
33
Fail_1_5V_low
Local PS 1.5V Under rvoltage Test
0
External output
34
Fail_3_3V_Hi
Local PS 3.3V Over voltage Test
0
External output
35
Fail_3_3V_Low
Local PS 3.3V Under voltage Test
0
External output
36-38
Not used
0
39
FAN_ON1
Fan 1 on/off. ‘1’ turns on MAU fan #1
0
External output
40
FAN_ON2
Fan 1 on/off. ‘1’ turns on MAU fan #2
0
External output
41
FAN_ON3
Fan 1 on/off. ‘1’ turns on MAU fan #3
0
External output
42
FAN_ON4
Fan 1 on/off. ‘1’ turns on MAU fan #4
0
External output
43
VB_SLOT_RST0
Independent reset for module at slot 0
1
External output
44
VB_SLOT_RST1
Independent reset for module at slot 1
1
External output
45
VB_SLOT_RST2
Independent reset for module at slot 2
1
External output
46
VB_SLOT_RST3
Independent reset for module at slot 3
1
External output
47
VB_SLOT_RST4
Independent reset for module at slot 4
1
External output
48
VB_SLOT_RST5
Independent reset for module at slot 5
1
External output
49
VB_SLOT_RST6
Independent reset for module at slot 6
1
External output
50
VB_SLOT_RST7
Independent reset for module at slot 7
1
External output
51
SLOT_SERR_RST
Reset for all SERR# latches
0
Internal signal
52
DPRAM_Chip_Sel
Select between NIC DPRAM bank 0 and LAN DPRAM bank 1
0
Internal signal
53
APM_SHDN_N
Indicated that APM power is shot down
1
External output
54-63
Not used
0
* These discretes were provided to satisfy top level HRD requirement HRD_NGNIC_Func_0270.
3.3.10 Discrete Inputs
The discrete input interface allows the S/W read-only access to external pins on the FPGA or internal signals generated in the FPGA. The discrete inputs are packed into two 32-bit words, bit-mapped per DIN number. The NG_NICVBPCI terminates the bus cycle with the assertion of PCI_TRDY_N. To satisfy DEOS’s address partitioning, copies of these double-words are available on 4-kbyte boundaries.
This block also contains a special discrete inputs register that can be accessed at address 7312:0004H. When S/W reads from this address, the values of the fan monitor fault flags are returned, and at the end of the read cycle the flags are set to ‘1’, which indicates the fans are running. Refer to section 3.3.14 for more detailed information on the Fan Monitor function.
[FRD_NGNICVBPCI_DIO_0940>HRD_NGNIC_CoreFunc_0800 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0940>HRD_NGNIC_CoreFunc_0800" ]
All discrete inputs in the NG_NICVBPCI shall be readable from the PCI bus at addresses indicated in Table 25 with bit mapping as shown in Table 26 and Table 27.
[FRD_NGNICVBPCI_DIO_0950>HRD_NGNIC_Func_0330 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0950>HRD_NIC_Func_0330" ]
The Discrete Inputs registers shall be initialized to the Reset Value shown in Table 26 and Table 27 when CCA_RST_N is asserted.
[FRD_NGNICVBPCI_DIO_0960>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0960>DERIVED" ]
PCI host writes to the Discrete Inputs registers shall be terminated by the NG_NICVBPCI FPGA by target abort, but have no affect on the state of the NG_NICVBPCI discrete inputs.
Table 25 – Discrete Input Registers Memory Map
Register Name
CPU Address
Decoded Address bits*
Access
Type
31:20
19:12
3:2
Lower Discrete Inputs
7310:0000H
731H
xxH
x0b
Read
Upper Discrete Inputs
7310:0004H
731H
xxH
x1b
Read
Fan Read/Set Status Register
7312:0004H
731H
20H
01b
Read
*
The decoded address bits show how the register addresses are shadowed within the FPGA.
[FRD_NGNICVBPCI_DIO_0970>HRD_NGNIC_CoreFunc_0810 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0970>HRD_NGNIC_CoreFunc_0810" ]
CPU reads of the Discrete Inputs registers shall return the state of the discrete inputs on the appropriate PCI data bit as described in Table 26 and Table 27.
[FRD_NGNICVBPCI_DIO_0980>HRD_NGNIC_Func_0470 XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0980>HRD_NIC_Func_0470" ]
When the Fan Read/Set Status register is read, DINs 60-63 shall be set to ‘1’ at the end of the read access.
Commentary: The fan status register will reset at power-up to an all fault condition (0’s). During SW initialization, SW will read the register, which will clear the faults, thus initializing it to a non-fault condition.
[FRD_NGNICVBPCI_DIO_0990>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DIO_0990>DERIVED" ]
The NG_NICVBPCI shall return logic ‘0’ for each unused discrete inputs when read by the PCI host.
Table 26 – Lower Discrete Inputs Register Bit Definition
DIN Number
Internal Signal Name
I/O Signal Name
Reset
Value**
Description
0-5
N/A
Not used
6
hst_id0
HOSTIDBUS0
N/A
Host ID Bit 0, Host ID discrete inputs indicates the type of chassis in which the NIC is installed. MAU, DU, radio cabinet, etc.
7
hst_id1
HOSTIDBUS1
N/A
Host ID Bit 1, Host ID discrete inputs indicates the type of chassis in which the NIC is installed. MAU, DU, radio cabinet, etc.
8
hst_id2
HOSTIDBUS2
N/A
Host ID Bit 2, Host ID discrete inputs indicates the type of chassis in which the NIC is installed. MAU, DU, radio cabinet, etc.
9
hst_id3
HOSTIDBUS3
N/A
Host ID Bit 3, Host ID discrete inputs indicates the type of chassis in which the NIC is installed. MAU, DU, radio cabinet, etc.
10
hst_id4
HOSTIDBUS4
N/A
Host ID Bit 4, Host ID discrete inputs indicates the type of chassis in which the NIC is installed. MAU, DU, radio cabinet, etc.
11
Chn_a_b_N
HOSTIDBUS5
N/A
Channel A/B#, A ‘1’ indicates that the NIC is connected to channel A, a ‘0’ indicates that the NIC is connected to channel B.
12
hst_ch_par
HOSTIDBUS6
N/A
Host Channel Parity, This signal is used to maintain even parity across the Host ID and Channel A/B# discrete Inputs.
13-26
N/A
Not used
27
IPD_STROBE_N
IPD_STROBE_N
‘1’
Set to ‘0’ If falling edge of IPD_STROBE_N is detected. Set to ‘1’ on rising edge of IPD_STROBE_N.
28
Ipd_valid
IPD_VALID
0
IPD Monitor valid
29
I2C_BUSY
N/A
0
DIN 29 (busy) will be set to ‘1’ when an I2C read or write transfer is in progress.
30
auto_dma_busy
AUTO_DMA_DONE_N
0
Auto DMA Busy, A ‘1’ indicates that the Auto DMA state machine is currently transferring (or preparing to transfer) a block of data. (i.e. VbPCI or PMNIC DMA is in progress)
31
I2C_DONE
N/A
1
DIN31, done, will be set to ‘1’ when current read/ write transaction completed.
Table 27 – Upper Discrete Inputs and Fan Read/Set Status Register Bit Definition
DIN Number
Internal signal Name
I/O Signal Name
Reset
Value**
Description
32
ps1din0
PSBUS 5
N/A
Power supply #1 discrete input (Fan Override). Indicates that P/S internal temperature is hot enough to require airflow.
33-35
N/A
0
Not used
36
error_while_dma
0
‘1’ indicates that Local PCI bus 0 transaction was rejected because VbPCI bus 1 or VbPCI bus 2 DMA is in progress.
37
ps1onaux
PSBUS 8
N/A
Power Supply on Auxiliary, A ‘1’ indicates that power supply #1 is on auxiliary power.
38
ps1noaux
PSBUS 7
N/A
PS1 no Aux, A ‘1’ indicates that power supply #1 has no auxiliary power.
39
ps1otemp
PSBUS 6
N/A
PS1 Over Temperature, A ‘0’ indicates that power supply #1 is in an over temperature condition.
40-45
N/A
0
Not used
46
Apm_pwr_fail_N
APM_PWR_FAIL_N
N/A
A ’0’ indicates that power supply for APM module fail
47-49
N/A
0
Not used
50
Slot0_serr_n
SLOT_SERR_N0
1
A ’0’ indicates that module at slot 0 generate system error signal
51
Slot1_serr_n
SLOT_SERR_N1
1
A ’0’ indicates that module at slot 1 generate system error signal
52
Slot2_serr_n
SLOT_SERR_N2
1
A ’0’ indicates that module at slot 2 generate system error signal
53
Slot3_serr_n
SLOT_SERR_N3
1
A ’0’ indicates that module at slot 3 generate system error signal
54-55
N/A
0
Not used
56
Slot4_serr_n
SLOT_SERR_N4
1
A ’0’ indicates that module at slot 4 generate system error signal
57
Slot5_serr_n
SLOT_SERR_N5
1
A ’0’ indicates that module at slot 5 generate system error signal
58
Slot6_serr_n
SLOT_SERR_N6
1
A ’0’ indicates that module at slot 6 generate system error signal
59
Slot7_serr_n
SLOT_SERR_N7
1
A ’0’ indicates that module at slot 7 generate system error signal
60
Fan1_sensed
N/A
0
A ‘1’ indicates that fan #1 tachometer detects fan is operating
61
Fan2_sensed
N/A
0
A ‘1’ indicates that fan #2 tachometer detects fan is operating
62
Fan3_sensed
N/A
0
A ‘1’ indicates that fan #3 tachometer detects fan is operating
63
Fan4_sensed
N/A
0
A ‘1’ indicates that fan #4 tachometer detects fan is operating
3.3.11 Automatic DMA
During each ASCB-D frame, data received over the ASCB-D network and stored in the NIC DPRAM must be sent over the VbPCI bus to users. Also, data to be transmitted must be moved from the users to the NIC. In order to move this large amount of data in the shortest time possible, the CPU is removed from the data-moving task. The automatic DMA state machine will, under software control, transfer a block of up to 128K bytes of data out of the DPRAM onto the VbPCI. It can also retrieve a block of up to 128K bytes of data from a user on the VbPCI and place it into the DPRAM. The data block must be double word aligned.
To start a DMA transfer, software must write to the three DMA address registers shown in Table 28. The DMA start address register holds the start address of the device that data will be read from. The DMA destination address register holds the start address of the device that data will be written to. The DMA end address register holds the last address to be accessed in the DPRAM minus 2 double words. This means that the Auto DMA function can only be used to perform transfers of more than two double words. After these three registers have been written, the DMA state machine will request access to the NIC DPRAM and to VbPCI Bus 1. Once access is granted, the transfer will begin.
For example, to move 20 double words from DPRAM starting at address 60000C00h to a user module starting at address 200B0000h software would write 60000C00h (the starting address) to address 7B000000h, 200B0000h (the destination address) to address 7B000004 and 60000C4Ch – 8 = 60000C44 (ending address – 2 double words) to address 7B000008h. To move data between these two addresses but in the other direction, the data written to the first two registers would be reversed, but the data written to the third register would remain the same.
Software can poll Discrete Input 30 (which is provided by the NG_NICVBPCI FPGA) to determine when the DMA transfer is complete. Alternatively, a DMA done interrupt can be configured to notify SW when the DMA transfer is done.
When the PM_NIC_BIC FPGA (on PM module) is ready to start a transfer it will assert AUTO_DPREQ3_N to request access to the NIC DPRAM. It will then wait until AUTO_DPGNT3_N is asserted (access to the NIC DPRAM is granted) before starting the transfer.
An auto fill DMA mode is provided to allow the S/W to initialize shared memory areas within client modules or to initialize the NIC DPRAM. This mode is initiated by writing the 32 bit fill value (e.g. 00000000) into the DMA autofill value register before loading the DMA address registers (7B000000H - 7B000008H). The autofill transfer will take place, by writing the fill value to the block of memory beginning at the destination address. The number of locations filled is defined exactly as a normal DMA transfer. Fill mode to the broadcast addresses is also supported. The DMA logic remains in autofill mode until the specified transfer is completed. To perform another autofill operation, register 7B00000CH must again be loaded with the fill value prior to loading the rest of the DMA registers.
Table 28 – Auto DMA Registers
Register
Address
Decoded Address Bits*
Access
Data
bits
31:24
3:2
DMA Source Address
7B00:0000H
7BH
00b
Read/Write
D(31:0)/D(31:2)
DMA Destination Address
7B00:0004H
7BH
01b
Read/Write
D(31:0)/D(31:2)
DMA End Address
7B00:0008H
7BH
10b
Read/Write
D(31:0)/D(16:2)
DMA Autofill Value
7B00:000CH
7BH
11b
Read/Write
D(31:0)/D(31:0)
* The decoded address bits show how the register addresses are shadowed within the FPGA.
The NG_NICVBPCI FPGA will support double word, aligned CPU writes to the DMA address region defined in Table 28.
[FRD_NGNICVBPCI_DMA_1010>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1010>DERIVED" ]
A CPU write to the Auto DMA register addresses shall cause the appropriate DMA register to be written with the value on the CPU data bits, as shown in Table 28 if a DMA transfer is not in progress.
[FRD_NGNICVBPCI_DMA_1011>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1011>DERIVED" ]
When CPU writes to the DMA registers while a DMA transfer is in-progress NG_NICVBPCI FPGA shall prevent the assertion of PCI_DEVSEL_N by the PCI client for DMA register accesses.
Commentary: if the CPU writes to the DMA registers during a DMA transfer the FPGA will not acknowledge the transaction with assertion DEVSEL#. The resulting PCI transaction will end in a master abort and be signaled to the software through the existing SERR# and/or Master Abort registers and interrupts.
[FRD_NGNICVBPCI_DMA_1020>HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1020>HRD_NGNIC_Func_0120" ]
The DMA Source Address register value shall be used as the start address of the memory resource (NIC DPRAM or VbPCI Bus 1 or Internal DRAM) that will be read from during a DMA transfer.
[FRD_NGNICVBPCI_DMA_1030>HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1030>HRD_NGNIC_Func_0120" ]
The DMA Destination Address register value shall be used as the start address of the memory resource (NIC DPRAM, Internal DPRAM, VbPCI Broadcast, or VbPCI Bus 1) that will be written to during a DMA transfer.
[FRD_NGNICVBPCI_DMA_1040>HRD_ HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1040>HRD_ HRD_NGNIC_Func_0120" ]
The DMA End Address register value shall be used as the last address to be accessed in the NIC DPRAM or Internal DPAM minus two double words for a DMA transfer.
Commentary: When Dout52 indicates that DMA shall use internal DPRAM software is responsible for assuring that end address register is programmed with value that is not outside of 4K address space of internal memory otherwise DMA transaction will wrap around to the beginning of internal DPRAM.
[FRD_NGNICVBPCI_DMA_1045>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1050>HRD_NGNIC_Func_0130" ]
The number of DWORDS for DMA transfer shall be given by a difference of end address register value and start address register value or destination address register value plus two depending on which respective register contains value in NIC DPRAM or Internal DPRAM address range.
[FRD_NGNICVBPCI_DMA_1050>HRD_NGNIC_Func_0130 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1050>HRD_NGNIC_Func_0130" ]
The max number of bytes per DMA transfer shall be no more than 128 Kbyte.
[FRD_NGNICVBPCI_DMA_1060>HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1060>HRD_NGNIC_Func_0120" ]
The DMA Autofill Value register data shall be used as a fill value for a DMA transfer with autofill.
[FRD_NGNICVBPCI_DMA_1070>HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1070>HRD_NGNIC_Func_0120" ]
The Auto DMA function shall perform an autofill operation if the CPU writes to the Autofill Value register prior writing to the last of the other three Auto DMA registers.
[FRD_NGNICVBPCI_DMA_1075>Derived XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1075>Derived" ]
The Auto DMA function shall allow CPU writes to the DMA Source Address, DMA Destination Address, and DMA End Address registers in any order.
[FRD_NGNICVBPCI_DMA_1080>HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1080>HRD_NGNIC_Func_0120" ]
The FPGA shall perform a DMA transfer from the NIC DPRAM to VbPCI Bus 1 (without autofill) when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has not been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the NIC DPRAM address range (6000:0000H to 6001:FFFCH).
· The value in the DMA Destination Address register is within the VbPCI Bus 1 address range (2000:0000H to 2FFF:FFFCH).
· DOUT52 (DPRAM_CHIP_SEL) is not asserted.
[FRD_NGNICVBPCI_DMA_1085>HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1085>HRD_NGNIC_Func_0120" ]
The FPGA shall perform a DMA transfer from the internal DPRAM to VbPCI Bus 1 (without autofill) when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has not been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the NIC DPRAM address range (6000:0000H to 6000:0FFCH) or Internal DPRAM address range(6002:0000H to 6002:0FFCH)
· The value in the DMA Destination Address register is within the VbPCI Bus 1 address range (2000:0000H to 2FFF:FFFCH).
· DOUT52 (DPRAM_CHIP_SEL) is asserted.
[FRD_NGNICVBPCI_DMA_1090>HRD_NGNIC_Func_0140 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1090>HRD_NGNIC_Func_0140" ]
The FPGA shall perform a DMA transfer from the NIC DPRAM to VbPCI Broadcast (without autofill) when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has not been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the NIC DPRAM address range (6000:0000H to 6001:FFFCH).
· The value in the DMA Destination Address register is within the VbPCI Broadcast address range (4000:0000H to 4FFF:FFFCH).
· AUTO_DPREQ3_N and IM_HERE_N are asserted or IM_HERE is not asserted.
· DOUT52 (DPRAM_CHIP_SEL) is not asserted.
[FRD_NGNICVBPCI_DMA_1095>HRD_NGNIC_Func_0140 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1095>HRD_NGNIC_Func_0140" ]
The FPGA shall perform a DMA transfer from the internal DPRAM to VbPCI Broadcast (without autofill) when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has not been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the NIC DPRAM address range (6000:0000H to 6000:0FFCH) or Internal DPRAM address range(6002:0000H to 6002:0FFCH)
· The value in the DMA Destination Address register is within the VbPCI Broadcast address range (4000:0000H to 4FFF:FFFCH).
· AUTO_DPREQ3_N and IM_HERE_N are asserted or IM_HERE is not asserted.
· DOUT52 (DPRAM_CHIP_SEL) is asserted.
[FRD_NGNICVBPCI_DMA_1100>HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1100>HRD_NGNIC_Func_0120" ]
The FPGA shall perform a DMA transfer from VbPCI Bus 1 to the NIC DPRAM (without autofill) when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has not been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the VbPCI Bus 1 address range (2000:0000H to 2FFF:FFFCH).
· The value in the DMA Destination Address register is within the NIC DPRAM address range (6000:0000H to 6001:FFFCH).
· DOUT52 (DPRAM_CHIP_SEL) is not asserted.
[FRD_NGNICVBPCI_DMA_1105>HRD_NGNIC_Func_0120 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1105>HRD_NGNIC_Func_0120" ]
The FPGA shall perform a DMA transfer from VbPCI Bus 1 to the Internal DPRAM (without autofill) when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has not been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the VbPCI Bus 1 address range (2000:0000H to 2FFF:FFFCH).
· The value in the DMA Destination Address register is within the NIC DPRAM address range (6000:0000H to 6000:0FFCH) or Internal DPRAM address range(6002:0000H to 6002:0FFCH)
· DOUT52 (DPRAM_CHIP_SEL) is asserted.
[FRD_NGNICVBPCI_DMA_1110>HRD_NGNIC_Func_0160 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1110>HRD_NGNIC_Func_0160" ]
[FRD_NGNICVBPCI_DMA_1110>HRD_NGNIC_Func_0174 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1110>HRD_NGNIC_Func_0160" ]
The FPGA shall perform an autofill DMA transfer to the NIC DPRAM when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the VbPCI Bus 1 address range (2000:0000H to 2FFF:FFFCH).
· The value in the DMA Destination Address register is within the NIC DPRAM address range (6000:0000H to 601F:FFFCH).
· DOUT52 (DPRAM_CHIP_SEL) is not asserted.
[FRD_NGNICVBPCI_DMA_1115>HRD_NGNIC_Func_0160 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1115>HRD_NGNIC_Func_0160" ]
[FRD_NGNICVBPCI_DMA_1115> HRD_NGNIC_Func_0609 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1115>HRD_NGNIC_Func_0160" ]
The FPGA shall perform an autofill DMA transfer to the Internal DPRAM when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the VbPCI Bus 1 address range (2000:0000H to 2FFF:FFFCH).
· The value in the DMA Destination Address register is within the NIC DPRAM address range (6000:0000H to 6000:0FFCH) or Internal DPRAM address range(6002:0000H to 6002:0FFCH)
· DOUT52 (DPRAM_CHIP_SEL) is asserted.
[FRD_NGNICVBPCI_DMA_1120>HRD_NGNIC_Func_0160 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1120>HRD_NGNIC_Func_0160" ]
[FRD_NGNICVBPCI_DMA_1120>HRD_NGNIC_Func_0150 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1120>HRD_NGNIC_Func_0160" ]
The FPGA shall perform an autofill DMA transfer to VbPCI Bus 1 when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the NIC DPRAM address range (6000:0000H to 601F:FFFCH).
· The value in the DMA Destination Address register is within the VbPCI Bus 1 address range (2000:0000H to 2FFF:FFFCH).
[FRD_NGNICVBPCI_DMA_1130>HRD_NGNIC_Func_0160 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1130>HRD_NGNIC_Func_0160" ]
The FPGA shall perform an autofill DMA transfer to VbPCI Broadcast when the following conditions are met:
· The DMA Autofill Value register shown in Table 28 has been written since the last DMA transfer.
· The DMA Source Address, DMA Destination Address, and DMA End Address registers shown in Table 28 have been written since the last DMA transfer.
· The value in the DMA Source Address register is within the NIC DPRAM address range (6000:0000H to 601F:FFFCH).
· The value in the DMA Destination Address register is within the VbPCI Broadcast address range (4000:0000H to 4FFF:FFFCH).
· AUTO_DPREQ3_N and IM_HERE_N are asserted or IM_HERE is not asserted.
[FRD_NGNICVBPCI_DMA_1140>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1140>DERIVED" ]
The AUTO_DMA_DONE_N output shall be de-asserted while the NG_NICVBPCI FPGA performs a DMA transfer (normal or autofill) or while the AUTO_BUSY3_N input asserted low.
[FRD_NGNICVBPCI_DMA_1180>HRD_NGNIC_Func_0090 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1180>HRD_NGNIC_Func_0090" ]
During a DMA transfer in which VbPCI Bus 1 is the source, VB_PERR_N shall be asserted if VB_PAR does not provide even parity across VB_AD(31:0) and VB_C_BE_N(3:0) during the data phase of a read on VbPCI Bus 1.
Commentary: Correct even parity occurs when the number of 1’s on VB_AD(31:0), VB_C_BE_N(3:0), and VB_PAR is an even number.
Table 29 below shows what the other PCI data bus bits are driven to on reads to the DMA address registers. The count value for the DMA start address and the DMA destination address registers increments after each read/write during the DMA transfer.
[FRD_NGNICVBPCI_DMA_1190>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1190>DERIVED" ]
A CPU read of an Auto DMA register shall cause the appropriate Auto DMA register data to be driven on the CPU data bits as shown in Table 29.
[FRD_NGNICVBPCI_DMA_1191>HRD_NGNIC_Func_0330 XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1191>HRD_NGNIC_Func_0330" ]
The Auto DMA registers shall be initialized to the reset values shown in Table 29 when CCA_RST_N is asserted.
[FRD_NGNICVBPCI_DMA_1192>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1192>DERIVED" ]
If the CPU accesses the VbPCI buses while AUTO_DMA_DONE_N is not asserted, NG_NICVBPCI FPGA shall reject the transaction by performing a target abort and set DIN 36 (error_while_dma) to ‘1’.
Commentary: if the CPU tries to access VbPCI bus 1 or bus 2 while a DMA transfer is active on these buses, the FPGA will claim the transaction by asserting DEVSEL#. After detecting that the AUTO_DMA_DONE_N signal is not asserted, the FPGA will issue a target abort.
[FRD_NGNICVBPCI_DMA_1193>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1193>DERIVED" ]
DIN 36 (error_while_dma) shall be set to ‘0’ at the start of each DMA transfer on VbPCI bus 1 or VbPCI bus 2.
[FRD_NGNICVBPCI_DMA_1200>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1200>DERIVED" ]
The Read Count Value in the DMA Source Address register shall increment by one each time the source (DPRAM or VbPCI bus) is read during the DMA transfer until last location is accessed.
[FRD_NGNICVBPCI_DMA_1210>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1210>DERIVED" ]
The Write Count Value in the DMA Destination Address register shall increment by one each time the destination (DPRAM or VbPCI bus) is written during the DMA transfer until last location is accessed.
Table 29 – Auto DMA Register Bit Definition
Register
Data Bits
Reset Value
D31-D17
D16-D2
D1-D0
DMA Source Address
Source Address
Read Count Value
“00”
0000_0000H
DMA Destination Address
Destination
Address
Write Count Value
“00”
0000_0000H
DMA End Address
6000H
End Address
“00”
6000_0000H
DMA Autofill Value
Autofill (31:0)
0000_0000H
[FRD_NGNICVBPCI_DMA_1220>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1220>DERIVED" ]
The AUTO_DMA_DONE_N signal shall be asserted when all the bytes specified in the DMA End Address register have been transferred which indicated that DMA transfer is done.
[FRD_NGNICVBPCI_DMA_1221>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1221>DERIVED" ]
NG_NICVBPCI FPGA shall stop DMA transaction and return DMA to Idle state if VB_SERR_N, VB_PERR_N or VB_STOP_N signal is asserted during transfer.
Commentary: The assertion of VB_SERR#, VB_PERR# or VB_STOP# will cause a latch of the last address of the transaction and generate the Interrupt to CPU.
[FRD_NGNICVBPCI_DMA_1222>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DMA_1222>DERIVED" ]
NG_NICVBPCI FPGA shall stop a DMA transfer from the NIC DPRAM to VbPCI bus 1 and return DMA to Idle state when either one of the following conditions are met:
· If VB_DEVSEL_N has not been asserted five CLK_25 clock cycles after the NICVBPCI FPGA asserts VB_FRAME_N during a DMA transfer to VbPCI bus 1,
· If VB_TRDY_N has not been asserted sixteen CLK_25 clocks cycles after the NICVBPCI FPGA asserts VB_FRAME_N during a DMA transfer to VbPCI bus 1.
3.3.12 NIC Dual-Port RAM Interface
A dual-port RAM configuration is used as a bridge between the on-card resources and the VbPCI backplane. The NG_NICVBPCI FPGA controls access to the DPRAM. The DPRAM holds data that is to be transferred to and from the VbPCI busses.
The dual-port RAM, IDT70V3579S, is arranged as 32Kbytes x 36-bits wide to allow for double-word FPGA accesses. The IDT70V3579S has an internal address counter, which facilitates PCI Bus burst access. The NG_NICVBPCI FPGA performs PCI Bus address decoding and generates a Dual Port RAM Address Strobe, NIC_ADS_N, and every Local PCI Bus Address Phase.
The NG_NICVBPCI FPGA supports bursting to the IDT70V3579S, by asserting Dual Port RAM Count Enable, NIC_CNTEN_N. During Read Phase of PCI Bus access to the Dual Port RAM, the NG_NICVBPCI generates Dual Port RAM Output Enable, NIC_OE_N and drives High the signal Dual Port RAM Read Write Low, NIC_RD_WR_N.
Port 1 (Left port) is accessed through NG_NICVBPCI FPGA and is shared between the Auto DMA function, the Auto DMA function in the PM-NIC VbPCI Master FPGA (applies to dual NIC modules only), and the NIC CPU. The NIC CPU accesses Port 1 (Left port) at 6000:0000H – 6001:FFFFH.
Port 2 (Right port) of the DPRAM is handled by the NIC Core FPGA and is dedicated to data exchange between the DPRAM and the ASCB Bus, TX Control, TX FIFO, and TX Time Stamp. Port 2 is accessed by the NIC CPU via 6200:0000H – 62FF:FFFFH.
[FRD_NGNICVBPCI_DPR_1230>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1230>DERIVED" ]
The NG_NICVBPCI FPGA shall generate all NIC DPRAM control signals necessary for the Left port (Port 1) of the dual-port RAM, IDT part number IDT70V3579S or equivalent.
Commentary: NG_NICVBPCI FPGA will generate control signals to NIC DPRAM (future provision DPRAM Bank 0) : NIC_RW _N, NIC_OE_N, NIC_ADS_N, NOC_CE0_N, NIC_CE1_B0_N, NIC_CNTEN_N, NIC_BE_N(3:0), NIC_A(16:2), NIC_D(31:0) signals. The chip select control signals will be synchronized to the CLK_25 clock signal.
[FRD_NGNICVBPCI_DPR_1240>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1240>DERIVED" ]
The NG_NICVBPCI FPGA shall read the left port of the NIC DPRAM only if the requested PCI read access is to the valid DPRAM address range 6000:0000-6001:FFFFH.
[FRD_NGNICVBPCI_DPR_1250>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1250>DERIVED" ]
The NG_NICVBPCI FPGA shall write the left port of the NIC DPRAM only if the requested PCI write access is to the valid DPRAM address range 6000:0000-6001:FFFFH.
[FRD_NGNICVBPCI_DPR_1260>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1260>DERIVED" ]
The NG_NICVBPCI FPGA shall support PCI burst reads and writes to the DPRAM address range 6000:0000-6001:FFFFH.
[FRD_NGNICVBPCI_DPR_1270>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1270>DERIVED" ]
Write accesses to DPRAM memory shall be byte lane selectable
[FRD_NGNICVBPCI_DPR_1280>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1280>DERIVED" ]
The NIC DPRAM interface signals shall be driven by NG_NICVBPCI FPGA and not driven by the DPRAM memory devices when the bus is idle and IM_HERE_N signal is de-asserted.
[FRD_NGNICVBPCI_DPR_1281>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1281>DERIVED" ]
The NIC DPRAM interface signals with exception of NIC_CE0_N and NIC_CE1_B0 shall be tri-stated by NG_NICVBPCI FPGA when AUTO_DPGNT3_N and IM_HERE_N signals are asserted and AUTO_BUSY3_N is asserted.
[FRD_NGNICVBPCI_DPR_1282>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1282>DERIVED" ]
The NIC_CE0_N signal shall be driven inactive by NG_NICVBPCI FPGA when the bus is idle and IM_HERE_N signal is asserted.
[FRD_NGNICVBPCI_DPR_1283>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1283>DERIVED" ]
The NIC_CE0_N signal shall be driven active by NG_NICVBPCI FPGA when any of the following is true:
1. AUTO_DPGNT3_N, IM_HERE_N and DOUT52 (DPRAM_CHIP_SEL) signals are asserted and AUTO_DMA_DONE_N is de-asserted
2. DMA operation on Vbpci Bus 1 is programmed and DOUT52 (DPRAM_CHIP_SEL) is asserted
[FRD_NGNICVBPCI_DPR_1284>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1284>DERIVED" ]
The NIC_CE0_N signal shall be driven active by NG_NICVBPCI FPGA when a requested PCI Bus 0 read/write access is to the valid DPRAM address range 6000:0000-6001:FFFFH.
Commentary: When the DPRAM data bus is idle and PM NIC card is not installed, the NG_NICVBPCI FPGA should drive all data bus bits to ‘0’ and all control signals to inactive state. When PM NIC card is installed it will drive DPRAM data bus and all but NIC_CE0_N control signals inactive. In case that PM NIC is installed and there is a DMA operation on VbPCI bus2 programmed (not a broadcast) then NG_NICVBPCI FPGA must assert NIC_CE0_N signal to allow for PM NIC access to NIC DPRAM.
Commentary: For all related BROADCAST requirements see DMA transfer, section 3.3.11.
3.3.12.1 DPRAM Arbitration
The NICVBPCI FPGA serves as the arbiter for the various resources that can access port 1 of the NIC DPRAM. These resources include the CPU, the Auto DMA functions onto VbPCI Bus 1, and Auto DMA functions onto VbPCI Bus 2 in the PM-NIC VbPCI Master FPGA (for dual NIC modules).
[FRD_NGNICVBPCI_DPR_1290>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1290>DERIVED" ]
The NIC DPRAM arbitration priority shall be as shown in Table 30.
Table 30 – NIC DPRAM Arbitration Priority
Priority
Function
Comment
1
Auto DMA
NIC- VbPCI Bus 1
1
Auto DMA
PM- VbPCI Bus 2
2
CPU
Local PCI Bus 0
Note that there is no arbitration between the two Auto DMA functions because they are never intended to be activated SW at the same time. Therefore, S/W must not attempt to perform Auto DMA transfers on VbPCI Bus 1 and VbPCI Bus 2 at the same time, unless it’s done using the VbPCI Broadcast address range.
[FRD_NGNICVBPCI_DPR_1300>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1300>DERIVED" ]
When any two functions are requesting DPRAM simultaneously bus shall be granted to the requestor with higher priority per table 30.
[FRD_NGNICVBPCI_DPR_1310>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1310>DERIVED" ]
The NG_NICVBPCI FPGA shall de-assert AUTO_DPGNT3_N when AUTO_BUSY3_N is asserted.
[FRD_NGNICVBPCI_DPR_1320>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1320>DERIVED" ]
When any of the following occurs:
1. CPU DPRAM access is in progress
2. Auto DMA transfer to VbPCI Bus 1 is active
the NG_NICVBPCI FPGA shall assert AUTO_EXCUSE_ME_N.
Commentary: Assertion of AUTO_EXCUSE_ME_N causes PM NIC to release (tristate) its NIC DPRAM control signals and allows the NG_NICVBPCI FPGA to access the DPRAM. If the PM NIC card is not installed (IM_HERE_N de-asserted), then AUTO_EXCUSE_ME_N has no meaning.
[FRD_NGNICVBPCI_DPR_1330>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1320>DERIVED" ]
The NG_NICVBPCI FPGA shall de-assert AUTO_EXCUSE_ME_N when DPRAM bus is granted during broadcast transactions, VbPCI bus2 only DMA operations or when DMA transaction is completed.
Commentary: DMA transaction is completed when no DMA transaction is active (either on bus 1 or 2 or both) as indicated by AUTO_DMA_BUSY DIN.
3.3.12.2 External DPRAM memory Interface timing
[FRD_NGNICVBPCI_DPR_1340>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1340>DERIVED" ]
The NIC DPRAM Memory interface outputs generated by the NG_NICVBPCI FPGA shall have a maximum clock to output pin delay (To) of 32 ns relative to the rising edge of the CLK_25 input pin.
Commentary: Refer to Figure 4 for a timing waveform.
[FRD_NGNICVBPCI_DPR_1350>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1350>DERIVED" ]
The NIC DPRAM interface outputs generated by the NG_NICVBPCI FPGA shall have a minimum clock to output pin delay (To) of 0 ns relative to the rising edge of the CLK_25 input pin.
Commentary: Refer to Figure 4 for a timing waveform.
[FRD_NGNICVBPCI_DPR_1360>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1360>DERIVED" ]
The NG_NICVBPCI FPGA’s NIC DPRAM interface input pins shall have a minimum setup time (Tsu) of 0.8 ns relative to the rising edge of the CLK_25 input pin.
Commentary: Refer to Figure 4 for a timing waveform. Tsu is defined in a manner used in component data sheets.
[FRD_NGNICVBPCI_DPR_1370>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1370>DERIVED" ]
The NG_NICVBPCI FPGA’s NIC DPRAM interface input pins shall have a minimum hold time (Th) of 0 ns relative to the rising edge of the CLK_25 input pin.
Commentary: Refer to Figure 4 for a timing waveform. Th is defined in a manner used in component data sheets.
Figure 4 – DPRAM Signal timing
[FRD_NGNICVBPCI_DPR_1380>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1380>DERIVED" ]
The NIC DPRAM interface timing to perform a read operation shall have the signal relationship shown in Figure 5.
Figure 5 – DPRAM Memory Read Cycle
[FRD_NGNICVBPCI_DPR_1390>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1390>DERIVED" ]
The NIC DPRAM interface timing to perform a write operation shall have the signal relationship shown in Figure 6.
Figure 6 – DPRAM Memory Write Cycle
3.3.12.3 Internal DPRAM Interface
The NG_NICVBPCI FPGA contains an internal DPRAM that is organized as 1024 by 32 bits wide. The CCA has provisions to add an external LAN DPRAM chip (DPRAM Bank 1), IDT70V3579S that will expand the LAN DPRAM address range to 128 kbytes. When the requested address on either port matches the address range of the internal memory (memory range 6002:0000H to 6002:0FFFH or 6202:0000H to 6202:0FFFH) the access will be directed to the internal DPRAM. This solution is intended to simplify clock zone (50MHz to 25MHz) crossing and improve LAN performance by providing a fast DPRAM memory for LAN data. DOUT 52 is provided for DPRAM bank switching mechanism.
[FRD_NGNICVBPCI_DPR_1400>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1400>DERIVED" ]
The NG_NICVBPCI FPGA shall provide minimum 4 Kbyte Internal DPRAM organized as 1024x32 wide.
[FRD_NGNICVBPCI_DPR_1410>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1410>DERIVED" ]
The NG_NICVBPCI FPGA shall read/ write the Internal DPRAM Left Port only if the requested PCI bus 0 read/write access is to the valid DPRAM address range 6002:0000 -6002:0FFFH.
[FRD_NGNICVBPCI_DPR_1420>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1420>DERIVED" ]
The NG_NICVBPCI FPGA shall read/ write the Internal DPRAM Right Port only if the requested PCI Bus 0 read/write access is to the valid DPRAM address range 6202:0000 -6202:0FFFH.
[FRD_NGNICVBPCI_DPR_1430>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1430>DERIVED" ]
The NG_NICVBPCI FPGA shall support PCI Bus 0 burst reads and writes to the Internal DPRAM address range 6002:0000 - 6002:0FFFH.
[FRD_NGNICVBPCI_DPR_1435>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1435>DERIVED" ]
The NG_NICVBPCI FPGA shall support PCI Bus 0 burst reads and writes to the Internal DPRAM address range 6202:0000 - 6202:0FFFH.
[FRD_NGNICVBPCI_DPR_1440>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1440>DERIVED" ]
Write accesses to Internal DPRAM memory shall be byte lane selectable.
Commentary: Only DWORD bursts are supported.
[FRD_NGNICVBPCI_DPR_1450>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1450>DERIVED" ]
When CPU access Internal DPRAM address range, control signals OE_N and CE_N for External the Dual Port Memory shall be de-asserted.
Commentary: All other control signals will operate normally.
[FRD_NGNICVBPCI_DPR_1451>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1451>DERIVED" ]
When AUTO_DPGNT3_N and IM_HERE_N signals are asserted and DOUT52 is set to 1, NG_NICVBPCI FPGA shall translate PM NIC DPRAM access into internal DPRAM access by driving NIC_CE0_N signal inactive and generating necessary control signals sequence for internal DPRAM.
[FRD_NGNICVBPCI_DPR_1460>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_DPR_1460>DERIVED" ]
The Internal DPRAM interface shall obey the same arbitration rules as the External DPRAM.
3.3.13 Real-Time Clock / Temperature Monitor Interface
A real time clock (RTC) provides a central resource for user modules requiring a sense of real time. The RTC maintains seconds, minutes, hours, day, date, month, and year information (up to 2099). The date at the end of the month is automatically adjusted for months with fewer than 31 days, including corrections for leap year. The clock operates in either the 24-hour or 12-hour format with an AM-bar/PM indicator. Two programmable time-of-day alarms and a programmable square-wave output are provided. Address and data are transferred serially through an I2C bidirectional bus. The clock also contains 236 bytes of battery-backed SRAM for use by software A small lithium battery will power the clock in the absence of power for approximately 10 years.
The MAU temperature is monitored by the NIC through the use of a temperature-to-digital converter chip. The Digital Temperature sensor measures temperature with accuracy ±3 deg C. The monitor continuously measures the temperature and stores it in an internal register once every 64 second. Software can read this register at any time to retrieve the last measured temperature. New values are loaded only when a change in the temperature value occurs. The min temperature conversion time is 125 msec, and max time is 200 msec.
The NG_NICVBPCI FPGA interfaces to the real-Time Clock and Temperature Monitor using I2C serial bus. For more information on the real-Time Clock and Temperature Monitor, refer to Dallas Semiconductor Maxim’s MAX DS3232 datasheet.
The I2C serial interface is comprised of two wires: a serial clock, RTC_SCL, and a bi‑directional serial data line, RTC_SDA. RTC_SCL is sourced by the NG_NICVBPCI FPGA. The I2C controller, which resides inside the NG_NICVBPCI FPGA, generates RTC_SCL by dividing the CLK_25 (24.9975 MHz) down to 333.3 kHz (400kHz derated by ~1.2x). The I2C controller has a number of memory mapped registers.
PCI Bus accesses are posted to the I2C controller and converted into I2C access. A read/write of an I2C register requires 2 PCI Bus accesses. A PCI Bus access of an I2C address does not return the data of the addressed register, but initiates an access to that addressed register. Once the PCI bus has initiated an I2C operation, the PCI bus must poll the DIN29/I2C_BUSY bit to determine if the operation has completed and the I2C Read Return Data Register is ready. If no I2C acknowledge occurs during the I2C transaction, the busy discrete will be removed. If a PCI access is attempted while the I2C bus interface is busy (DIN29/I2C_BUSY is asserted), it will terminate with no action taken.
The RTC interface consists of four I2C registers as defined in Figure 9. Up to four I2C transactions (one per register) may be requested at a time. If an I2C transaction is not active (DIN29 / I2C_BUSY not asserted), a PCI Bus write access to an I2C register will initiate an I2C transaction on the I2C bus. If the I2C bus is busy, a PCI Bus write access will queue up a new I2C transaction in the I2C register if the register does not already contain a pending transaction (I2C Register bit 29, I2C_BUSY asserted). If the I2C register contains a pending or active transaction, the PCI Bus write will result in a target abort on PCI Bus 0. An I2C register may be read at any time. If the register contains an active transaction (bit 29, I2C_BUSY asserted), the status of the current transaction will be returned. If the register contains a completed transaction, the results of the last transaction will be returned
Table 31 – RTC memory map
Register Name
PCI Address
Decoded Address
Bits*
Access
Type
PCI Data
Width
(R/W)
31:20
15:12
Temperature Monitor
7900:0000H
790H
0H
Read/Write
D(31:0)/D(24,15:0)
RTC address
7900:1000H
790H
1H
Read/Write
D(31:0)/D(24,15:0)
RTC control/status reg.
7900:2000H
790H
2H
Read/Write
D(31:0)/D(24,15:0)
RTC SRAM start address
7900:3000H
790H
3H
Read/Write
D(31:0)/D(24,15:0)
* The decoded address bits show how the register addresses are shadowed within the FPGA.
[FRD_NGNICVBPCI_I2C_1470>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1470>DERIVED" ]
The NG_NICVBPCI FPGA shall support an I2C Serial Bus Interface as defined in DS3232 I2C RTC with SRAM Datasheet protocol, inclusive of the signals RTC_SDA and RTC_SCL.
[FRD_NGNICVBPCI_I2C_1480>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1480>DERIVED" ]
The NG_NICVBPCI FPGA shall operate as a master only on I2C Bus.
Commentary: I2C bus interface does not support multiple masters.
[FRD_NGNICVBPCI_I2C_1490>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1490>DERIVED" ]
The NG_NICVBPCI FPGA shall support non-burst Memory Read and Memory Write accesses to the Real-Time Clock address region defined in Table 31.
[FRD_NGNICVBPCI_I2C_1500>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1500>DERIVED" ]
The NG_NICVBPCI FPGA shall only support one byte read/write accesses over the I2C interface as defined in Figure 7 and Figure 8.
[FRD_NGNICVBPCI_I2C_1510>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1510>DERIVED" ]
When a 32-bit write to a RTC/Temp Monitor register is performed and I2C_BUSY (DIN29) is de‑asserted, the NICVBPCI FPGA shall initiate the requested transaction over the I2C interface (RTC_SDA and RTC_SCL) per the format described in the DS3232 I2C RTC with SRAM Datasheet.
Commentary: The I2C transaction is a write as defined in Figure 7, or a read as defined in Figure 8.
[FRD_NGNICVBPCI_I2C_1511>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1511>DERIVED" ]
If I2C_BUSY (DIN29) is asserted and a 32-bit write to a RTC/Temp Monitor register is performed, the NICVBPCI FPGA shall update the register per the format shown in Figure 9 and set bit 28 (Busy) to ‘1’.
Commentary: Busy indicates that a transaction is active or pending in the I2C queue.
[FRD_NGNICVBPCI_I2C_1512>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1512>DERIVED" ]
If the Busy bit (bit 28) of an RTC/Temp Monitor register is set and a 32-bit write to the register is performed, the NICVBPCI FPGA shall discard the data and return target abort on PCI Bus 0.
Commentary: The current transaction and the contents of the register will not be affected by the requested write access.
Slave address
R/
W
Address/ Register
Data transferred
S
1
1
0
1
0
0
0
0
A
X
X
X
X
X
X
X
X
A
X
X
X
X
X
X
X
X
A
P
S – start;
A – acknowledge;
P –stop;
R/W_N - read/write or direction bit;
Slave address + W_N bit = D0H.
Figure 7 – I2C Write Data Format
Commentary: This is the Slave receiver mode (DS3232 write mode): Serial data and clock are received by the DS3232. After each byte is received, an acknowledge bit is transmitted. START and STOP conditions are recognized as the beginning and end of a serial transfer. Address recognition is performed by hardware after reception of the slave address and direction bit. The slave address byte is the first byte received after the master generates the START condition. The slave address byte contains the 7-bit DS3232 address, which is 1101000X, where X = 0/1 for R/W_N direction bit. After receiving and decoding the slave address byte, the DS3232 outputs an acknowledge on SDA. After the DS3232 acknowledges the slave address + write bit, the master transmits a word address to the DS3232. This sets the register pointer on the DS3232, with the DS3232 acknowledging the transfer. The master may then transmit zero or more bytes of data, with the DS3232 acknowledging each byte received. The register pointer increments after each data byte is transferred. The master generates a STOP condition to terminate the data write
[FRD_NGNICVBPCI_I2C_1520>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1520>DERIVED" ]
When a CPU read from a RTC/ Temp. Monitor registers is performed, the NICVBPCI FPGA shall return the contents of the register as defined in Figure 9.
Slave address
R/
W
Address/ Register
Slave address
R/
W
Data transferred
S
1101000
0
A
XXXXXXXX
A
S
1101000
1
A
XXXXXXXX
N
P
S – start;
A – acknowledge;
N – not acknowledge
P –stop;
R/W_N - read/write or direction bit;
Slave address + R bit = D1H.
Figure 8 – I2C Read Data Format
Commentary: This is the Slave transmitter mode (DS3232 read mode). Serial data is transmitted on SDA by the DS3232. The slave address byte contains the 7-bit DS3232 address, which is 1101000X, where X = 0/1 for R/W# direction bit. After receiving and decoding the slave address byte, the DS3232 outputs an acknowledge on SDA. The DS3232 then begins to transmit data starting with the register address pointed to by the register pointer. If the register pointer is not written to before the initiation of a read mode, the first address that is read is the last one stored in the register pointer. The DS3232 must receive a not acknowledge to end a read.
[FRD_NGNICVBPCI_I2C_1530>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1530>DERIVED" ]
The I2C Data shall transfer with the most significant bit (MSB) first.
[FRD_NGNICVBPCI_I2C_1540>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1540>DERIVED" ]
The NG_NICVBPCI FPGA shall generate the RTC_SCL clock signal at a frequency of 333.3 ± 1.67 kHz.
Commentary: DS3232 fast mode frequency 400 kHz derated by ~1.2x.
[FRD_NGNICVBPCI_I2C_1550>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1550>DERIVED" ]
The RTC_SDA serial data signal shall be open drain input/output.
[FRD_NGNICVBPCI_I2C_1551>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1551>DERIVED" ]
The RTC_SCL serial clock signal shall be an open drain output.
[FRD_NGNICVBPCI_I2C_1560>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1560>DERIVED" ]
The NG_NICVBPCI FPGA shall initiate data transfer only when I2C bus is not busy.
Commentary: Bus is not busy when there are no read/write transactions in progress.
[FRD_NGNICVBPCI_I2C_1570>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1570>DERIVED" ]
When CCA_RST_N is asserted, the NG_NICVBPCI FPGA shall drive I2C interface in a known state as defined in MAX DS3232 datasheet, pulling signals RTC_SDA and RTC_SCL low.
Commentary: If the FPGA holds RTC_SCL low for more than 35 ms, DS3232 resets the internal I2C interface.
[FRD_NGNICVBPCI_I2C_1571>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1571>DERIVED" ]
When CCA_RST_N is de-asserted, the RTC_SDA and RTC_SCL signals shall remain low until the first write to any of the four I2C Bus registers in Table 32.
Commentary: This will reset the I2C interface if SW does not access the RTC registers for at least 35ms following a CCA reset.
[FRD_NGNICVBPCI_I2C_1572>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1572>DERIVED" ]
The first valid write to any of the four I2C bus registers in Table 32 following CCA_RST_N de-assertion shall cause the RTC_SDA signal to be tri-stated (high*) for one 333Khz clock period, followed by the I2C_SCL signal being tri-stated (high*) for one 333Khz clock period, followed by the I2C data stream for the requested transaction.
Commentary: Ensures graceful exit of the reset state without implying a STOP to the RTC.
[FRD_NGNICVBPCI_I2C_1573>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1573>DERIVED" ]
The RTC_SDA and RTC_SCL signals shall be tri-stated (high*) after the I2C transaction completes.
Commentary: Normal parked state of an I2C bus.
*Since these lines are open-drain, the master can only drive LOW or OPEN.
[FRD_NGNICVBPCI_I2C_1580>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1580>DERIVED" ]
The NG_NICVBPCI FPGA shall service SW access to the addresses listed in Table 32 in the order they occur.
Commentary: HW provides arbitration in circular queue manner.
[FRD_NGNICVBPCI_I2C_1590>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1590>DERIVED" ]
If the Data fault bit set to ‘1’, the NG_NICVBPCI FPGA shall place the I2C interface into a known state by toggling the RTC_SCL clock signal up to 20 clock cycles or until RTC_SDA is asserted high.
Commentary: The fault recovery requires synchronization between FPGA and DS3232. Refer to DS3232 specification.
[FRD_NGNICVBPCI_I2C_1600>HRD_NGNIC_Func_0730 XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1600>HRD_NGNIC_Func_0730" ]
The NG_NICVBPCI FPGA I2C Bus Interface registers shall be addressable as shown in Table 32.
Table 32 – I2C Bus Register Description and Address Map
Register Name / Description
PCI Bus Address
I2C Bus Address Range*
Data Register Size
Temperature Monitor
7900:0000H
11H – 12H
1 Byte
RTC address
7900:1000H
00H – 0DH
1 Byte
RTC control/status reg.
7900:2000H
0EH, 0FH
1 Byte
RTC SRAM address
7900:3000H
14H – 0FFH
1 Byte
* The I2C address is what is forwarded as the I2C Bus command byte (which is the device register being read from or written to.)
[FRD_NGNICVBPCI_I2C_1610>HRD_NGNIC_Func_0730 XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1610>HRD_NGNIC_Func_0730" ]
The NG_NICVBPCI FPGA shall decode each of four individual PCI Bus address read/write access to address from Table 32 into four registers with the format shown in Figure 9.
31
30
29
28
27
26
25
24
23
16
15
8
7
0
Field
Status bits
N/A
Address/Register
Data
Reset
1
0
0
0
0
0
0
0
00000000
00000000
000000000
Read/Write
R
R
R
R
R
R
R
W
N/A
Read/Write
Read/Write
Figure 9 – I2C Register Format
Commentary: Status bits definition:
24 bit – Read/ write bit;
25 bit – Illegal command, when address/register range not compliant with CPU address range;
26 bit – No slave present, when RTC device not in place;
27 bit – Data fault;
28 bit – Busy bit, when transaction in progress;
29, 30 - reserved
31 bit - Done
[FRD_NGNICVBPCI_I2C_1620>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1620>DERIVED" ]
The status bit 24 shall be written by SW and when set to a 1, indicates that SW wants to perform a read transaction and when set to ‘0’ indicates that SW wants to perform a write transaction on the I2C bus.
[FRD_NGNICVBPCI_I2C_1630>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1630>DERIVED" ]
The NG_NICVBPCI FPGA shall set bit 25 (illegal command) to ‘1’ when the CPU attempts to access an illegal I2C Bus address range in the I2C internal memory map, and set the bit to ‘0’ when a valid address is decoded.
Commentary: See Table 32 for CPU address map to Internal RTC/ Temp. Monitor memory mapping. An attempt to access an illegal I2C Bus address will result in a target abort on PCI Bus 0.
[FRD_NGNICVBPCI_I2C_1640>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1640>DERIVED" ]
The NG_NICVBPCI FPGA shall set bit 26 (no slave present) to ‘1’ if the Acknowledge bit for a slave address is not asserted by the RTC, and set the bit to ‘0’ if the Acknowledge bits are asserted for all slave addresses during an I2C transaction.
Commentary: The no slave present bit is not “sticky”. The fault bit is cleared if a subsequent I2C transaction from the same request register (79000:0000 – 7900:3000) to the RTC completes successfully.
[FRD_NGNICVBPCI_I2C_1650>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1650>DERIVED" ]
The NG_NICVBPCI FPGA shall set bit 27 (data fault) to ‘1’ if the Acknowledge bit for any data byte is not asserted by the RTC, and set the bit to ‘0’ if the RTC Acknowledges all data bytes written by the NG_NICVBPCI FPGA during an I2C transaction.
Commentary: The data fault bit is not “sticky”. The fault bit is cleared if a subsequent I2C transaction from the same request register (79000:0000 – 7900:3000) to the RTC completes successfully.
[FRD_NGNICVBPCI_I2C_1660>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1660>DERIVED" ]
The NG_NICVBPCI FPGA shall set bit 28 (busy) to ‘1’ when an I2C read or write transfer is in progress or pending in the transaction queue, and clear it to ‘0’ when no transaction is requested.
[FRD_NGNICVBPCI_I2C_1665>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1665>DERIVED" ]
The NG_NICVBPCI FPGA shall set I2C_BUSY (DIN29) to ‘1’ if bit 28 is set in any of the I2C registers, and set it to ‘0’ if bit 28 in all of the I2C registers is not set.
[FRD_NGNICVBPCI_I2C_1670>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1670>DERIVED" ]
The NG_NICVBPCI FPGA shall set bit 31 (done) to ‘1’ when the current read/ write transaction has been completed and set it to ‘0’ while the current transaction is in progress.
[FRD_NGNICVBPCI_I2C_1675>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1675>DERIVED" ]
The NG_NICVBPCI FPGA shall set I2C_DONE (DIN31) to ‘1’ if bit 31 is set in all of the I2C registers, and set it to ‘0’ if bit 31 in any of the I2C registers is not set.
[FRD_NGNICVBPCI_I2C_1671>DERIVED XE \f "TRACETAG" "FRD_NGNICVBPCI_I2C_1671>DERIVED" ]
The I2C Registers shall be initialized to the reset value shown in Figure 9 when CCA_RST_N is asserted.
3.3.14 Fan Monitor
The NIC contains logic to monitor up to four cooling fans. The fans are brushless DC motors. Each fan’s operation is independently monitored by digital logic that compares a pulse width proportional to the rotational speed of the fan with a fixed value. If the pulse width is greater than 40ms, the monitor circuit will latch and hold a fault flag indicating that fan speed is less than 80% of its nominal operating speed. The cooling fan monitor operates continuously and requires a S/W algorithm to determine when the fault flags indicate valid faults.
The fault flags are special discrete inputs that can be accessed at address 7310:0000H (bits 63 down to 60). When S/W reads from this address, the values of the fault flags are returned, and at the end of the read cycle, the flags are set to ‘1’. When the flags are read, a ‘0’ indicates that the monitor has tripped and that fan speed was less than 80% of nominal. A ‘1’ indicates that the fan is operating within 80% of nominal speed or the monitor logic is measuring pulse period.
To allow the monitor logic to log a fault, the minimum delay that S/W should use between reads should be 2 x (40ms + 25%margin) = 100ms. Since a failed fan should be turned off to prevent overheating of control logic, the maximum delay between fault flag monitoring and fan disable should be less than 10 seconds.
The Fan Read/Set Status Register located at address 7312:0004H can be read by S/W. Data contents of this register are identical with the FAN_SENSED(1:4) discretes values that can be read at address 7310:0004H. However, a read from 7310:0004H does not set the flags to ‘1’ after the read operation and does not reset the pulse period counters
Upon power up or NIC system reset, the fan monitor logic will set all fault flags to ‘0’ (the “fan speed less than 80%” state).
3.3.14.1 Fan Monitor Requirements
Fan monitor logic incorporates four timers (one for each fan tachometer input). Each timer has a duration of 40.995ms. When the fan monitors are enabled, each timer waits for the corresponding fan tach input to go high, and then begins counting up. If the fan tach goes low before the timer reaches 40.995ms, the timer is reset to 0 and waits for fan tach to transition high again. If fan tach doesn’t go low within the 40.995ms, the fan status flag is set to ‘0’ (fan stalled), and the timer is frozen at the maximum count. To reset the status flag to ‘1’ (fan running) and restart the timer, the CPU reads the Fan Read/Set Status register.
[FRD_NGNICVBPCI_FAN_1680>HRD_NGNIC_Func_0440 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1680>HRD_NGNIC_Func_0440" ]
[FRD_NGNICVBPCI_FAN_1680>HRD_NGNIC_Func_0380 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1680>HRD_NGNIC_Func_0380" ]
After reset, the four fan monitors shall be disabled (DINs 60-63 set to ‘0’) until the CPU reads the Fan Read/Set Status register at address 7312:0004H.
Refer to section 3.3.10 Discrete Inputs for a description of the read behavior of the Fan Read/Set Status register.
[FRD_NGNICVBPCI_FAN_1690>HRD_NGNIC_Func_0460 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1690>HRD_NIC_Func_0460" ]
[FRD_NGNICVBPCI_FAN_1690>HRD_NGNIC_ Safe_0200 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1690>HRD_NIC_Func_0460" ]
If fan monitor 1 is enabled (DIN60 = ‘1’) and FANTACH(1) goes high for greater than 41ms, DIN60 shall be set to ‘0’ (fan not running, fan monitor 1 disabled).
[FRD_NGNICVBPCI_FAN_1700>HRD_NGNIC_Func_0460 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1700>HRD_NGNIC_Func_0460" ]
[FRD_NGNICVBPCI_FAN_1700>HRD_NGNIC_Safe_0200 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1700>HRD_NGNIC_Func_0460" ]
If fan monitor 2 is enabled (DIN61 = ‘1’) and FANTACH(2) goes high for greater than 41ms, DIN61 shall be set to ‘0’ (fan not running, fan monitor 2 disabled).
[FRD_NGNICVBPCI_FAN_1710>HRD_NGNIC_Func_0460 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1710>HRD_NGNIC_Func_0460" ]
[FRD_NGNICVBPCI_FAN_1710>HRD_NGNIC_Safe_0200 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1710>HRD_NGNIC_Func_0460" ]
If fan monitor 3 is enabled (DIN62 = ‘1’) and FANTACH(3) goes high for greater than 41ms, DIN62 shall be set to ‘0’ (fan not running, fan monitor 3 disabled).
[FRD_NGNICVBPCI_FAN_1720>HRD_NGNIC_Func_0460 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1720>HRD_NGNIC_Func_0460" ]
[FRD_NGNICVBPCI_FAN_1720>HRD_NGNIC_Safe_0200 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1720>HRD_NGNIC_Func_0460" ]
If fan monitor 4 is enabled (DIN63 = ‘1’) and FANTACH(4) goes high for greater than 41ms, DIN63 shall be set to ‘0’ (fan not running, fan monitor 4 disabled).
[FRD_NGNICVBPCI_FAN_1730>HRD_NGNIC_Func_0460 XE \f "TRACETAG" "FRD_NGNICVBPCI_FAN_1730>HRD_NGNIC_Func_0460" ]
Fan monitoring discrete inputs shall be synchronized to CLK_25.
Commentary: All inputs have to be registered through two flip-flops to avoid glitches.
3.3.15 Fault Containment Function (FCI)
Poor Fault containment is one of the major factors affecting incorrect identification of failed modules. A key weakness with the PCI bus specification is that any failing module (asserting SERR_N), even if it doesn't electrically load down the bus, can prevent communication to all other modules on that bus.
In order to support master PCI bridges on the VbPCI busses, each slot is supplied a REQ_N line to the NIC (system slot) for use in arbitration between the masters. A GNT_N line is supplied to each slot to indicate if the master has been granted bus use. These signals currently not used by the VbPCI Master Interface. Future provision for fault isolation monitor functions will use the REQ_N and GNT_N installed traces for routing of individual module resets and SERR_N signals.
By using two spare pins from each client module, the groundwork has been set to allow the NIC to monitor which client module failed.
To implement actual monitoring functionality on the NG_NICVBPCI FPGA, future BIC redesign activities will be required.
[FRD_NGNICVBPCI_FCI_1740>HRD_NGNIC_BP_0800 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1740>HRD_NGNIC_BP_0800" ]
The NG_NICVBPCI FPGA shall provide eight independent SLOT_SERR_N input signals.
[FRD_NGNICVBPCI_FCI_1750>HRD_NGNIC_BP_0800 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1750>HRD_NGNIC_BP_0800" ]
[FRD_NGNICVBPCI_FCI_1750>HRD_NGNIC_Func_0850 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1750>HRD_NGNIC_Func_0850" ]
The NG_NICVBPCI FPGA shall provide eight independently controllable VB_SLOT_RST_N output signals for multiple VbPCI Bus 1 clients.
Commentary: to monitor SERR_N signals from multiple clients on the PCI Bus1, the unused signal VB_REQ_N(0:7) will be used. This is the a deviation from the PCI 2.1 specification which required SERR_N signal to be implemented as an open-drain shared line which accepts multiple SERR_N signals simultaneously. In this design SERR_N will be a sustained tri-state signal using REQ_N line from each client.
To monitor RST_N signals from multiple clients of the PCI Bus 1 unused signals VB_GNT_L (0:7) will be used.
[FRD_NGNICVBPCI_FCI_1760>HRD_NGNIC_Func_0860 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1760>HRD_NGNIC_Func_0860" ]
The NG_NICVBPCI FPGA shall control the FCI Slot Reset signals by using the DOUTs VB_SLOT_RST_N(7:0)/ DOUT(50:43) as shown in Table 24.
Commentary: Refer to DOUTs paragraph 3.3.9.
[FRD_NGNICVBPCI_FCI_1770>HRD_NGNIC_Func_0860 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1770>HRD_NGNIC_Func_0860" ]
The NG_NICVBPCI FPGA shall support PCI Bus 0 writes/ reads of the DOUT register and specifically the VB_SLOT_RST_N(7:0) discrete outputs DOUT (43:50) as defined by Table 24.
[FRD_NGNICVBPCI_FCI_1780> HRD_NGNIC_Func_0448 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1780>Derived" ]
The NG_NICVBPCI FPGA shall set up VB_SLOT_RST_N signals to de-asserted state (high) during CCA initialization and until commanded otherwise.
[FRD_NGNICVBPCI_FCI_1790>HRD_NGNIC_Func _0865 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1790>HRD_NGNIC_Func _0865" ]
The NG_NICVBPCI FPGA shall detect a High to Low transition on any VB_SLOT_SERR_N signal and latch the corresponding VB_SLOT_SERR_N(7:0) bit to the asserted (low) state.
[FRD_NGNICVBPCI_FCI_1800>HRD_NGNIC_Func _0870 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1800>HRD_NGNIC_Func _0870" ]
The NG_NICVBPCI FPGA shall latch and hold the state of the detected VB_SLOT_SERR_N signals.
[FRD_NGNICVBPCI_FCI_1810>HRD_NGNIC_Func _0870 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1810>HRD_NGNIC_Func _0870" ]
The VB_SLOT_SERR_N latches shall be initialized to the de-asserted (high) state when CCA_RST_N is asserted low or SLOT_SERR_RST/ DOUT(51) is asserted high.
Commentary: the VB_SLOT_SERR latches can be cleared by using DOUT(51) as a common reset for all VB_SLOT_SERR_N signals or hardware reset CCA_RST_N.
[FRD_NGNICVBPCI_FCI_1820>HRD_NGNIC_Func _0870 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1820>HRD_NGNIC_Func _0870" ]
The state of the detected VB_SLOT_SERR_N signals shall be readable by Software as discrete inputs DINs as defined in Table 27.
Commentary: Refer to DINs paragraph 3.3.10.
[FRD_NGNICVBPCI_FCI_1830>HRD_NGNIC_Func_0870 XE \f "TRACETAG" "FRD_NGNICVBPCI_FCI_1830>HRD_NGNIC_Func_0870" ]
The NG_NICVBPCI FPGA shall initialize VB_SLOT_SERR/ DIN(53:50, 59:56) discrete Inputs to reset value as defined in Table 27.
3.3.16 JTAG and Programming
The NG_NICVBPCI will be implemented in a flash based, which has a built in JTAG Test/Programming Port. Please refer to the applicable device data sheet for the definition and characteristics of the JTAG Port.
[FRD_NGNICVBPCI_JTAG_1840>HRD_NGNICM_Mod_0047 XE \f "TRACETAG" "FRD_NGNICVBPCI_JTAG_1840>HRD_NGNICM_Mod_0047" ]
[FRD_NGNICVBPCI_JTAG_1840>HRD_NGNIC_CoreFunc_1540 XE \f "TRACETAG" "FRD_NGNICVBPCI_JTAG_1840>HRD_NGNIC_CoreFunc_1540" ]
The NG_NICVBPCI shall be implemented in an FPGA that has a built in JTAG test port.
[FRD_NGNICVBPCI_JTAG_1850>HRD_NGNICM_Mod_0047 XE \f "TRACETAG" "FRD_NGNICVBPCI_JTAG_1850>HRD_NGNICM_Mod_0047" ]
[FRD_NGNICVBPCI_JTAG_1850>HRD_NGNIC_CoreFunc_1550 XE \f "TRACETAG" "FRD_NGNICVBPCI_JTAG_1850>HRD_NGNIC_CoreFunc_1550" ] XE \f "TRACETAG" " "
The following signals shall be used for the boundary scan chain:
FPGA1_TCK
Boundary Scan Testability Clock (input only)
FPGA1_TDI
Boundary Scan Test Data Input (input only)
FPGA1_TDO
Boundary Scan Test Data Output (output only)
B_TMS
Boundary Scan Test Mode Select (input only)
B_TRSTB_N
Boundary Scan Test Reset; Active Low (input only)
APPENDIX A
TRACEABILITY INDEX
APPENDIX A TRACEABILITY INDEX
This section shall contain the generated list which maps the requirements contained in this document to their corresponding requirements in the Hardware Requirements Document and other documents.
HWEP-73, Hardware Requirements Tracing, defines the methods to be used to trace requirements, including features in the HRD. The need to use tracing techniques for in-progress projects is to be determined at the project level. This template has a trace tag style and includes a trace index macro as described in HWEP-73.
FRD_NGNICVBPCI_APM_0780>HRD_NGNIC_Func_0662
46
FRD_NGNICVBPCI_APM_0780>HRD_NGNIC_Func_0666
46
FRD_NGNICVBPCI_APM_0790>DERIVED
46
FRD_NGNICVBPCI_APM_0800>HRD_NGNIC_Func_0664
47
FRD_NGNICVBPCI_APM_0810>HRD_NGNIC_Func_0668
47
FRD_NGNICVBPCI_APM_0820>HRD_NGNIC_Func_0662
48
FRD_NGNICVBPCI_APM_0820>HRD_NGNIC_Func_0668
48
FRD_NGNICVBPCI_APM_0830>HRD_NGNIC_Func_0662
48
FRD_NGNICVBPCI_CLK_0120>DERIVED
23
FRD_NGNICVBPCI_DIO_0870>HRD_NGNIC_CoreFunc_0830
50
FRD_NGNICVBPCI_DIO_0880>HRD_NGNIC_CoreFunc_0820
50
FRD_NGNICVBPCI_DIO_0880>HRD_NGNIC_CoreFunc_0830
50
FRD_NGNICVBPCI_DIO_0890>HRD_NIC_Func_0265
51
FRD_NGNICVBPCI_DIO_0900>HRD_NGNIC_CoreFunc_0820
51
FRD_NGNICVBPCI_DIO_0900>HRD_NGNIC_CoreFunc_0830
51
FRD_NGNICVBPCI_DIO_0910>HRD_NGNIC_CoreFunc_0820
51
FRD_NGNICVBPCI_DIO_0910>HRD_NGNIC_CoreFunc_0830
51
FRD_NGNICVBPCI_DIO_0920>DERIVED
52
FRD_NGNICVBPCI_DIO_0930>HRD_NGNIC_CoreFunc_0038
53
FRD_NGNICVBPCI_DIO_0930>HRD_NIC_Func_0330
53
FRD_NGNICVBPCI_DIO_0940>HRD_NGNIC_CoreFunc_0800
55
FRD_NGNICVBPCI_DIO_0950>HRD_NIC_Func_0330
55
FRD_NGNICVBPCI_DIO_0960>DERIVED
55
FRD_NGNICVBPCI_DIO_0970>HRD_NGNIC_CoreFunc_0810
56
FRD_NGNICVBPCI_DIO_0980>HRD_NIC_Func_0470
56
FRD_NGNICVBPCI_DIO_0990>DERIVED
56
FRD_NGNICVBPCI_DMA_1010>DERIVED
60
FRD_NGNICVBPCI_DMA_1011>DERIVED
60
FRD_NGNICVBPCI_DMA_1020>HRD_NGNIC_Func_0120
60
FRD_NGNICVBPCI_DMA_1030>HRD_NGNIC_Func_0120
60
FRD_NGNICVBPCI_DMA_1040>HRD_ HRD_NGNIC_Func_0120
61
FRD_NGNICVBPCI_DMA_1050>HRD_NGNIC_Func_0130
61
FRD_NGNICVBPCI_DMA_1060>HRD_NGNIC_Func_0120
61
FRD_NGNICVBPCI_DMA_1070>HRD_NGNIC_Func_0120
61
FRD_NGNICVBPCI_DMA_1075>Derived
61
FRD_NGNICVBPCI_DMA_1080>HRD_NGNIC_Func_0120
61
FRD_NGNICVBPCI_DMA_1085>HRD_NGNIC_Func_0120
62
FRD_NGNICVBPCI_DMA_1090>HRD_NGNIC_Func_0140
62
FRD_NGNICVBPCI_DMA_1095>HRD_NGNIC_Func_0140
62
FRD_NGNICVBPCI_DMA_1100>HRD_NGNIC_Func_0120
63
FRD_NGNICVBPCI_DMA_1105>HRD_NGNIC_Func_0120
63
FRD_NGNICVBPCI_DMA_1110>HRD_NGNIC_Func_0160
63
FRD_NGNICVBPCI_DMA_1115>HRD_NGNIC_Func_0160
64
FRD_NGNICVBPCI_DMA_1120>HRD_NGNIC_Func_0160
64
FRD_NGNICVBPCI_DMA_1130>HRD_NGNIC_Func_0160
65
FRD_NGNICVBPCI_DMA_1140>DERIVED
65
FRD_NGNICVBPCI_DMA_1180>HRD_NGNIC_Func_0090
65
FRD_NGNICVBPCI_DMA_1190>DERIVED
65
FRD_NGNICVBPCI_DMA_1191>HRD_NGNIC_Func_0330
65
FRD_NGNICVBPCI_DMA_1192>DERIVED
65
FRD_NGNICVBPCI_DMA_1193>DERIVED
66
FRD_NGNICVBPCI_DMA_1200>DERIVED
66
FRD_NGNICVBPCI_DMA_1210>DERIVED
66
FRD_NGNICVBPCI_DMA_1220>DERIVED
66
FRD_NGNICVBPCI_DMA_1221>DERIVED
66
FRD_NGNICVBPCI_DMA_1222>DERIVED
66
FRD_NGNICVBPCI_DPR_1230>DERIVED
67
FRD_NGNICVBPCI_DPR_1240>DERIVED
67
FRD_NGNICVBPCI_DPR_1250>DERIVED
67
FRD_NGNICVBPCI_DPR_1260>DERIVED
68
FRD_NGNICVBPCI_DPR_1270>DERIVED
68
FRD_NGNICVBPCI_DPR_1280>DERIVED
68
FRD_NGNICVBPCI_DPR_1281>DERIVED
68
FRD_NGNICVBPCI_DPR_1282>DERIVED
68
FRD_NGNICVBPCI_DPR_1283>DERIVED
68
FRD_NGNICVBPCI_DPR_1284>DERIVED
68
FRD_NGNICVBPCI_DPR_1290>DERIVED
69
FRD_NGNICVBPCI_DPR_1300>DERIVED
69
FRD_NGNICVBPCI_DPR_1310>DERIVED
69
FRD_NGNICVBPCI_DPR_1320>DERIVED
69, 70
FRD_NGNICVBPCI_DPR_1340>DERIVED
70
FRD_NGNICVBPCI_DPR_1350>DERIVED
70
FRD_NGNICVBPCI_DPR_1360>DERIVED
70
FRD_NGNICVBPCI_DPR_1370>DERIVED
71
FRD_NGNICVBPCI_DPR_1380>DERIVED
72
FRD_NGNICVBPCI_DPR_1390>DERIVED
73
FRD_NGNICVBPCI_DPR_1400>DERIVED
74
FRD_NGNICVBPCI_DPR_1410>DERIVED
74
FRD_NGNICVBPCI_DPR_1420>DERIVED
74
FRD_NGNICVBPCI_DPR_1430>DERIVED
74
FRD_NGNICVBPCI_DPR_1435>DERIVED
74
FRD_NGNICVBPCI_DPR_1440>DERIVED
74
FRD_NGNICVBPCI_DPR_1450>DERIVED
74
FRD_NGNICVBPCI_DPR_1451>DERIVED
74
FRD_NGNICVBPCI_DPR_1460>DERIVED
75
FRD_NGNICVBPCI_FAN_1680>HRD_NGNIC_Func_0380
82
FRD_NGNICVBPCI_FAN_1680>HRD_NGNIC_Func_0440
82
FRD_NGNICVBPCI_FAN_1690>HRD_NIC_Func_0460
82
FRD_NGNICVBPCI_FAN_1700>HRD_NGNIC_Func_0460
82
FRD_NGNICVBPCI_FAN_1710>HRD_NGNIC_Func_0460
82
FRD_NGNICVBPCI_FAN_1720>HRD_NGNIC_Func_0460
82
FRD_NGNICVBPCI_FAN_1730>HRD_NGNIC_Func_0460
83
FRD_NGNICVBPCI_FCI_1740>HRD_NGNIC_BP_0800
83
FRD_NGNICVBPCI_FCI_1750>HRD_NGNIC_BP_0800
83
FRD_NGNICVBPCI_FCI_1750>HRD_NGNIC_Func_0850
83
FRD_NGNICVBPCI_FCI_1760>HRD_NGNIC_Func_0860
84
FRD_NGNICVBPCI_FCI_1770>HRD_NGNIC_Func_0860
84
FRD_NGNICVBPCI_FCI_1780>Derived
84
FRD_NGNICVBPCI_FCI_1790>HRD_NGNIC_Func _0865
84
FRD_NGNICVBPCI_FCI_1800>HRD_NGNIC_Func _0870
84
FRD_NGNICVBPCI_FCI_1810>HRD_NGNIC_Func _0870
84
FRD_NGNICVBPCI_FCI_1820>HRD_NGNIC_Func _0870
84
FRD_NGNICVBPCI_FCI_1830>HRD_NGNIC_Func_0870
84
FRD_NGNICVBPCI_I2C_1470>DERIVED
76
FRD_NGNICVBPCI_I2C_1480>DERIVED
76
FRD_NGNICVBPCI_I2C_1490>DERIVED
76
FRD_NGNICVBPCI_I2C_1500>DERIVED
76
FRD_NGNICVBPCI_I2C_1510>DERIVED
76
FRD_NGNICVBPCI_I2C_1511>DERIVED
76
FRD_NGNICVBPCI_I2C_1512>DERIVED
77
FRD_NGNICVBPCI_I2C_1520>DERIVED
77
FRD_NGNICVBPCI_I2C_1530>DERIVED
78
FRD_NGNICVBPCI_I2C_1540>DERIVED
78
FRD_NGNICVBPCI_I2C_1550>DERIVED
78
FRD_NGNICVBPCI_I2C_1551>DERIVED
78
FRD_NGNICVBPCI_I2C_1560>DERIVED
78
FRD_NGNICVBPCI_I2C_1570>DERIVED
79
FRD_NGNICVBPCI_I2C_1571>DERIVED
79
FRD_NGNICVBPCI_I2C_1572>DERIVED
79
FRD_NGNICVBPCI_I2C_1573>DERIVED
79
FRD_NGNICVBPCI_I2C_1580>DERIVED
79
FRD_NGNICVBPCI_I2C_1590>DERIVED
79
FRD_NGNICVBPCI_I2C_1600>HRD_NGNIC_Func_0730
79
FRD_NGNICVBPCI_I2C_1610>HRD_NGNIC_Func_0730
80
FRD_NGNICVBPCI_I2C_1620>DERIVED
80
FRD_NGNICVBPCI_I2C_1630>DERIVED
80
FRD_NGNICVBPCI_I2C_1640>DERIVED
81
FRD_NGNICVBPCI_I2C_1650>DERIVED
81
FRD_NGNICVBPCI_I2C_1660>DERIVED
81
FRD_NGNICVBPCI_I2C_1665>DERIVED
81
FRD_NGNICVBPCI_I2C_1670>DERIVED
81
FRD_NGNICVBPCI_I2C_1671>DERIVED
81
FRD_NGNICVBPCI_I2C_1675>DERIVED
81
FRD_NGNICVBPCI_ID_0840>HRD_NGNICM_Mod_0070
49
FRD_NGNICVBPCI_ID_0840>HRD_NIC_CoreFunc_1240
49
FRD_NGNICVBPCI_ID_0850>HRD_NGNICM_Mod_0090
49
FRD_NGNICVBPCI_ID_0860>HRD_NGNICM_Mod_0080
50
FRD_NGNICVBPCI_IO_0010>DERIVED
8
FRD_NGNICVBPCI_IO_0020>DERIVED
8
FRD_NGNICVBPCI_IO_0030>DERIVED
8
FRD_NGNICVBPCI_IO_0040>DERIVED
8
FRD_NGNICVBPCI_IO_0050>DERIVED
8
FRD_NGNICVBPCI_IO_0060>DERIVED
9
FRD_NGNICVBPCI_IO_0070>DERIVED
9
FRD_NGNICVBPCI_IO_0080>DERIVED
9
FRD_NGNICVBPCI_IO_0090>DERIVED
9
FRD_NGNICVBPCI_IO_0100>DERIVED
9
FRD_NGNICVBPCI_IO_0110>DERIVED
9
FRD_NGNICVBPCI_IPD_0190>HRD_NGNIC_CoreFunc_0720
25
FRD_NGNICVBPCI_IPD_0210>HRD_NGNIC_CoreFunc_0753
26
FRD_NGNICVBPCI_IPD_0210>HRD_NGNIC_CoreFunc_0754
26
FRD_NGNICVBPCI_IPD_0220>HRD_NGNIC_CoreFunc_0752
26
FRD_NGNICVBPCI_IPD_0221>DERIVED
26
FRD_NGNICVBPCI_IPD_0230>DERIVED
26
FRD_NGNICVBPCI_IPD_0240>DERIVED
26
FRD_NGNICVBPCI_JTAG_1840>HRD_NGNIC_CoreFunc_1540
84
FRD_NGNICVBPCI_JTAG_1840>HRD_NGNICM_Mod_0047
84
FRD_NGNICVBPCI_JTAG_1850>HRD_NGNIC_CoreFunc_1550
85
FRD_NGNICVBPCI_JTAG_1850>HRD_NGNICM_Mod_0047
85
FRD_NGNICVBPCI_MON_0260>DERIVED
27
FRD_NGNICVBPCI_MON_0280>HRD_NGNIC_CoreFunc_1100
27
FRD_NGNICVBPCI_MON_0385>Derived
33
FRD_NGNICVBPCI_MON_0386>Derived
33
FRD_NGNICVBPCI_PCI_0290>DERIVED
29
FRD_NGNICVBPCI_PCI_0300>DERIVED
29
FRD_NGNICVBPCI_PCI_0310>DERIVED
29
FRD_NGNICVBPCI_PCI_0330>HRD_NGNIC_CoreIO_0310
30
FRD_NGNICVBPCI_PCI_0340>HRD_NGNIC_CoreIO_0320
31
FRD_NGNICVBPCI_PCI_0350>DERIVED
31
FRD_NGNICVBPCI_PCI_0355>DERIVED
31
FRD_NGNICVBPCI_PCI_0360>DERIVED
32
FRD_NGNICVBPCI_PCI_0365>DERIVED
32
FRD_NGNICVBPCI_PCI_0370>DERIVED
32
FRD_NGNICVBPCI_PCI_0380>DERIVED
32
FRD_NGNICVBPCI_PCI_0390>DERIVED
33
FRD_NGNICVBPCI_PCI_0400>DERIVED
33
FRD_NGNICVBPCI_PCI_0410>DERIVED
34
FRD_NGNICVBPCI_PCI_0420>DERIVED
34
FRD_NGNICVBPCI_PCI_0425>DERIVED
34
FRD_NGNICVBPCI_PCI_0430>HRD_NGNIC_CoreIO_0330
34
FRD_NGNICVBPCI_PCI_0430>HRD_NGNIC_CoreIO_0340
34
FRD_NGNICVBPCI_PCI_0440>HRD_NGNIC_CoreIO_0330
35
FRD_NGNICVBPCI_PCI_0450>DERIVED
35
FRD_NGNICVBPCI_PCI_0460>DERIVED
35
FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0020
36
FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0030
36
FRD_NGNICVBPCI_PCI_0480>HRD_NGNIC_Func_0040
36
FRD_NGNICVBPCI_PCI_0490>HRD_NGNIC_BP_0100
36
FRD_NGNICVBPCI_PCI_0500>DERIVED
37
FRD_NGNICVBPCI_PCI_0510>HRD_NGNIC_BP_0102
37
FRD_NGNICVBPCI_PCI_0520>DERIVED
37
FRD_NGNICVBPCI_PCI_0550>HRD_NGNIC_Func_0030
38
FRD_NGNICVBPCI_PCI_0551>DERIVED
38
FRD_NGNICVBPCI_PCI_0552>DERIVED
38
FRD_NGNICVBPCI_PCI_0560>HRD_NGNIC_Func_0020
38
FRD_NGNICVBPCI_PCI_0570>HRD_NGNIC_Func_0060
38
FRD_NGNICVBPCI_PCI_0580>DERIVED
39
FRD_NGNICVBPCI_PCI_0590>HRD_NGNIC_Func_0070
39
FRD_NGNICVBPCI_PCI_0600>HRD_NGNIC_Func_0070
39
FRD_NGNICVBPCI_PCI_0610>HRD_NGNIC_Func_0075
39
FRD_NGNICVBPCI_PCI_0620>HRD_NGNIC_Func_0100
40
FRD_NGNICVBPCI_PCI_0630>HRD_NGNIC_Func_0110
41
FRD_NGNICVBPCI_PCI_0640>HRD_NGNIC_Func_0090
41
FRD_NGNICVBPCI_PCI_0650>HRD_NGNIC_Func_0235
42
FRD_NGNICVBPCI_PCI_0650>HRD_NGNIC_Func_0237
42
FRD_NGNICVBPCI_PCI_0660>HRD_NGNIC_Func_0200
42
FRD_NGNICVBPCI_PCI_0660>HRD_NGNIC_Func_0210
42
FRD_NGNICVBPCI_PCI_0670>HRD_NGNIC_Func_0220
42
FRD_NGNICVBPCI_PCI_0670>HRD_NGNIC_Func_0230
42
FRD_NGNICVBPCI_PCI_0680>HRD_NGNIC_Func_0250
42
FRD_NGNICVBPCI_PCI_0680>HRD_NGNIC_Func_0260
42
FRD_NGNICVBPCI_PCI_0690>DERIVED
43
FRD_NGNICVBPCI_PCI_0700>DERIVED
43
FRD_NGNICVBPCI_PCI_0710>DERIVED
44
FRD_NGNICVBPCI_PCI_0720>DERIVED
44
FRD_NGNICVBPCI_PCI_0730>DERIVED
44
FRD_NGNICVBPCI_PCI_0740>DERIVED
44
FRD_NGNICVBPCI_PCI_0750>DERIVED
44
FRD_NGNICVBPCI_PCI_0760>DERIVED
45
FRD_NGNICVBPCI_PCI_0770>DERIVED
45, 46
FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0330
23
FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0360
23
FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0370
23
FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0380
23
FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0400
23
FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0430
23
FRD_NGNICVBPCI_RST _0130>HRD_NGNIC_Func_0448
23
FRD_NGNICVBPCI_RST _0140>HRD_NIC_Func_0330
23
FRD_NGNICVBPCI_RST _0150>HRD_NGNIC_Func_0330
24
FRD_NGNICVBPCI_RST _0160>DERIVED
24
FRD_NGNICVBPCI_RST _0170>HRD_NGNIC_Func_0240
25
FRD_NGNICVBPCI_RST _0170>HRD_NGNIC_Func_0360
25
FRD_NGNICVBPCI_RST _0170>HRD_NGNICM_Mod_0060
25
FRD_NGNICVBPCI_RST _0180>HRD_NGNIC_Func_0190
25
FRD_NGNICVBPCI_RST _0180>HRD_NGNIC_Func_0370
25
FRD_NGNICVBPCI_SAFE_0250>HRD_NGNIC_CoreSafe_0120
27
FRD_NGNICVBPCI_SAFE_0850>HRD_NGNIC_CoreSafe_0130
49
AW/CRITICAL NOTATION
TITLE PAGE
CR-1
SECURITY NOTATION
PAGE
15101-000 (REV 970213 BCAS ASF5900/ENG_SPEC.DOT) (REV 07/18/2000 OFC97-DATA SERVICES) HONEYWELL INTERNATIONAL INC.
_1243158145.vsd
_1261392792.vsd
MPC8280
I/F
Mezz
Conn.
DPRAM
Arbitrator
Auto
DMA
PCI 0
VbPCI
Master
I/F
25 MHz
Internal DPRAM buffer
Mezz
Conn.
Discrete
Inputs
Host ID
Interface
PCI
Client
I/F
PCI_CLK
I2C
Serial
I/F
IPD
Monitor
Discrete
Outputs
POL
Monitors
Clocks,
Reset
NG_NIC Core
FPGA
RTC/Temp. Monitor
To
VbPCI
Bus 2
IPD_strobe_N
IPD_valid
clk20, clk25, pci_clk
CCA_RST#
JTAG Bus
Add/Data
Control
VbPCI
I/F
Auto_dma_done
Fault
Isolation
Slot_serr#
Slot_RST#
VbPCI
Bus 1
EEPROM
Front
Connector
DPRAM
I/F
Left Port
Fan
Control
APM
Interface
FAN
Tachs
NIC DPRAM
Left Port
P/S Test
Bus
VbPCI
Bus 1
JTAG
_1273562769.vsd
Ax
A1
A2
A3
clk25
NIC_AD[16:2]-address
NIC_ADS#
NIC_CE#
NIC_RW#
NIC_AD[31:0]-data
NIC_OE#
1
2
3
4
tSA
Tclk2add
tHA
Tclk2add
Tclk2add
Tclk2add
tCLK_OUT
tCLK_OUT
tSC
tCLK_OUT
tHC
tCLK_OUT
tSC
tCLK_OUT
tHC
D1
Tclk2data
tSD
Tclk2data
tHD
tSC
tCLK_OUT2
tCLK_OUT2
_1238234922.txt
Header (
company("Forte Design Systems")
product("TimingDesigner")
rev("6.504")
file("d:\\my_documents\\mau_platforms\\ca3_project\\design\\timing analysis\\vbpci_dpram_rd_single.tdk")
date("04/16/2007") time("13:22")
format("5.0")
baseScale(1000.000000)
zoomFactor("0.000568568")
simHDL(VHDL)
simDelayMechanism(Transport)
nextID(97)
TimingAnalysisMethod(51)
user(date,"") user(description,"") user(designer,"") user(revision,"1.0")
generalPrintParams( "printer,,,landscape,clipboard,letter,default,7,4,in,color,scaleable,")
diagramPrintParams( "0,6,40000,241000,true,false,1,1,true,false,false,false,all,specified")
spreadsheetPrintParams( "0,17,true,false,1,true,all")
)
HDLHeader(
hdlFile("")
checkConstraints(true)
checkTimeout(never)
command( name("") cmdType(null) ))
DefaultLabel(
delay(showNameString,"")
constraint(showNameString,"")
guarantee(showNameString,"")
measure(showMeasure,"")
store(showNameString,"")
wait(showNameString,"")
end(showNameString,"")
boundary(showIncrement,"")
loop(showNameString,"")
waveform(showSkip,"","")
specifiedclock(showSkip,"","")
derivedclock(showSkip,"","")
simwaveform(showSkip,"","")
bus(showValue,"","")
)
DiagramStyle (
waveformFont(winFont("Arial",90) )
rulerFont(winFont("Arial",90) )
relationshipFont(winFont("Arial",90) )
labelFont(winFont("Arial",90) )
annotationFont(winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") )
slotHeight("11")
edgeHeight("11")
edgeGrade("1.96261")
inputPenStyle(0)
outputPenStyle(0)
inoutPenStyle(0)
internalPenStyle(0)
vRelationshipPenStyle(0)
hRelationshipPenStyle(0)
inputPenColor(3)
outputPenColor(3)
inoutPenColor(3)
internalPenColor(3)
wavePenWidth("0")
relationshipPenWidth("0")
wavesOnTop
relationshipsOnTop
annotationsOnTop
showSlopedEdges
showUncertainties
)
Clock ( objectID(2) name("clk25") minheight("0") periodScale(1000) period(40.000480) dutyCycle(50.000000)
hdl( direction(input) ) label(showDefault,"","") )
Waveform ( objectID(6) name("NIC_A[16:2]-addr") minheight("0") edges(
(invalid,0,0,L),
(valid,55480.5,55480.5,label(showText,"Ap","") ),
(valid,95481,95481,label(showText,"A1","") ),
(valid,135481,135481,label(showText,"A2","") ),
(valid,175482,175482,label(showText,"A3","") ),
(valid,215482,215482,label(showText,"An","") ),
(invalid,255483,255483),
(valid,329000,329000),
(blank,332723,332723))
hdl( direction(inOut) ) label(showDefault,"","") )
Waveform ( objectID(7) name("NIC_CS#(CE0)") minheight("0") edges(
(high,0,0,L),
(low,85181,85561),
(high,325184,325564),
(blank,331723,331723))
hdl( direction(input) ) label(showDefault,"","") )
Waveform ( objectID(44) name("NIC_RW#") minheight("0") edges(
(low,0,0,L),
(high,85181,85561),
(low,325184,325564),
(blank,330723,330723))
hdl( direction(input) ) label(showDefault,"","") )
Waveform ( objectID(49) name("NIC_ADS#") minheight("0") edges(
(high,0,0,L),
(low,85181,85561),
(high,325184,325564),
(blank,335000,335000))
hdl( direction(input) ) label(showDefault,"","") )
Waveform ( objectID(19) name("NIC_A[31:0]-data") minheight("0") edges(
(z,0,0,L),
(valid,161502,171062,label(showText,"D1","") ),
(valid,203562,211062,label(showText,"D2","") ),
(valid,243563,251063,label(showText,"D3","") ),
(valid,283563,291063,label(showText,"Dn","") ),
(valid,328744,335124),
(blank,366723,366723))
hdl( direction(output) ) label(showDefault,"","") )
Waveform ( objectID(9) name("NIC_OE#") minheight("0") edges(
(high,0,0,L),
(low,85181,85561),
(high,325184,325564),
(blank,351723,351723))
hdl( direction(input) ) label(showDefault,"","") )
Grid ( "clk25" topWave("clk25")
color(8) 1stWidth(0) 2ndWidth(0) 1stStyle(1) 2ndStyle(0)
show1st )
Annotation( value("0") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",1) origin(-3029.51,20) edgeCentered )
Annotation( value("1") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",3) origin(-2294.27,20) edgeCentered )
Annotation( value("2") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",5) origin(-1335.63,20) edgeCentered )
Annotation( value("3") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",7) origin(-2154.24,20) edgeCentered )
Annotation( value("4") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",9) origin(-1195.6,20) edgeCentered )
Annotation( value("5") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",11) origin(-1303.31,20) edgeCentered )
Annotation( value("6") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",13) origin(-1411.02,20) edgeCentered )
Annotation( value("7") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",15) origin(-2229.63,20) edgeCentered )
Annotation( value("8") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",17) origin(-1270.99,20) edgeCentered )
Annotation( value("Dual Port RAM Singe Read Access from Left Port, with 1.5 safety factor, pipelined.\r\n") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") origin(0,0) topCenter )
Annotation( value("This timing waveform was created using the IDT70V3579S6\r\n datasheet.") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") origin(0,0) bottomCenter )
EndCycleEvent ( objectID(1) name("end") time(241.000000) showVert hideOnPrinter label(showDefault,"") fromLatestEnd toEarliestBegin )
Delay ( name("Tclk2add") value("[15.48,0]") comment("Actel(tPT+tDP+tDIN+tEOUT+tZL+tPD=11.18)*1.2+Net delay(2.06)")
instance(objectID(16) source("clk25",2) target("NIC_A[16:2]-addr",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(47) source("clk25",4) target("NIC_A[16:2]-addr",2) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(54) source("clk25",6) target("NIC_A[16:2]-addr",3) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(55) source("clk25",8) target("NIC_A[16:2]-addr",4) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(56) source("clk25",10) target("NIC_A[16:2]-addr",5) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(57) source("clk25",12) target("NIC_A[16:2]-addr",6) label(showDefault,"") fromLatestBegin toLatestEnd ))
Delay ( name("tCLK_OUT") value("[5.18,5.56]") comment("Actel CLK input to output delay(tPY+tICLKQ+tOCLKQ=2.16min, 2.92max)*1.2 +Net delay(2.06)")
instance(objectID(28) source("clk25",4) target("NIC_CS#(CE0)",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(48) source("clk25",4) target("NIC_RW#",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(50) source("clk25",4) target("NIC_ADS#",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(77) source("clk25",16) target("NIC_ADS#",2) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(78) source("clk25",16) target("NIC_CS#(CE0)",2) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(79) source("clk25",16) target("NIC_RW#",2) label(showDefault,"") fromLatestBegin toLatestEnd ))
Constraint ( name("tSA") value("[([2,2]*[1.5,1.5]),]") comment("DP address setup time")
instance(objectID(51) source("NIC_A[16:2]-addr",2) target("clk25",6) MarginValue("[21.52048,]") label(showDefault,"") fromLatestEnd toEarliestBegin slot(4) bottom ))
Constraint ( name("tHA") value("[([1,1]*[1.5,1.5]),]") comment("DP address hold time")
instance(objectID(52) source("clk25",6) target("NIC_A[16:2]-addr",3) MarginValue("[13.98,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Delay ( name("tCD2") value("[([1,1]*[1.5,1.5]),(([6,6]*[1.5,1.5])+[2.06,2.06])]") comment("DP Clk to data valid +Net delay(2.06)")
instance(objectID(53) source("clk25",8) target("NIC_A[31:0]-data",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(74) source("clk25",10) target("NIC_A[31:0]-data",2) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(86) source("clk25",14) target("NIC_A[31:0]-data",4) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(87) source("clk25",12) target("NIC_A[31:0]-data",3) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(92) source("clk25",16) target("NIC_A[31:0]-data",5) label(showDefault,"") fromLatestBegin toLatestEnd ))
Constraint ( name("tSC") value("[([2,2]*[1.5,1.5]),]") comment(" DP chip enable set up time")
instance(objectID(58) source("NIC_OE#",1) target("clk25",6) MarginValue("[31.44048,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom )
instance(objectID(68) source("NIC_CS#(CE0)",1) target("clk25",6) MarginValue("[31.44048,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tSW") value("[([2,2]*[1.5,1.5]),]") comment("DP write set up time")
instance(objectID(59) source("NIC_RW#",1) target("clk25",6) MarginValue("[31.44048,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tSAD") value("[([2,2]*[1.5,1.5]),]") comment(" DP ADS# set up time")
instance(objectID(60) source("NIC_ADS#",1) target("clk25",6) MarginValue("[31.44048,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tCLKZ") value("[1.5,]") comment("DP Clock high to output High Z")
instance(objectID(61) source("clk25",8) target("NIC_A[31:0]-data",1) MarginValue("[0,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Delay ( name("tDC") value("[(([1,1]*[1.5,1.5])+[2.06,2.06]),0]") comment("DP Data out after clk High(1*1.5)+net delay(2.06)")
instance(objectID(88) source("clk25",10) target("NIC_A[31:0]-data",2) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(89) source("clk25",14) target("NIC_A[31:0]-data",4) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(91) source("clk25",12) target("NIC_A[31:0]-data",3) label(showDefault,"") fromLatestBegin toLatestEnd ))
Constraint ( name("tIHD") value("[0,]") comment("Actel input register data hold time* 1.2")
instance(objectID(80) source("clk25",10) target("NIC_A[31:0]-data",2) MarginValue("[3.56,]") label(showDefault,"") fromLatestEnd toEarliestBegin slot(4) bottom )
instance(objectID(81) source("clk25",12) target("NIC_A[31:0]-data",3) MarginValue("[3.56,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tISUD") value("[([0.69,0.69]*[1.2,1.2]),]") comment("Actel input register data setup time(0.43-0.69min)*1.2")
instance(objectID(71) source("NIC_A[31:0]-data",1) target("clk25",10) MarginValue("[28.11248,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tHC") value("[([1,1]*[1.5,1.5]),]") comment("DP chip enable hold time")
instance(objectID(82) source("clk25",16) target("NIC_CS#(CE0)",2) MarginValue("[3.68,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tHW") value("[([1,1]*[1.5,1.5]),]") comment("write hold time")
instance(objectID(83) source("clk25",16) target("NIC_RW#",2) MarginValue("[3.68,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("latency") value("[,]") comment("DP read Latency between first address and first data out (one clk sycle)")
instance(objectID(85) source("clk25",6) target("clk25",8) MarginValue("[,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Delay ( name("tOHZ") value("[(([1,1]*[1.5,1.5])+[2.06,2.06]),(([5,5]*[1.5,1.5])+[2.06,2.06])]") comment("Output enable to output high Z+net delay(2.06)")
instance(objectID(90) source("NIC_OE#",2) target("NIC_A[31:0]-data",5) label(showDefault,"") fromLatestBegin toLatestEnd ))
Delay ( name("tCLK_OUT2") value("[5.18,5.56]") comment("Actel CLK input to output delay(tPY+tICLKQ+tOCLKQ=2.16min, 2.92max)*1.2 +Net delay(2.06)")
instance(objectID(93) source("clk25",4) target("NIC_OE#",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(94) source("clk25",16) target("NIC_OE#",2) label(showDefault,"") fromLatestBegin toLatestEnd ))
�����
_1238235558.txt
Header (
company("Forte Design Systems")
product("TimingDesigner")
rev("6.504")
file("d:\\my_documents\\mau_platforms\\ca3_project\\design\\timing analysis\\vbpci_dpram_wr_single.tdk")
date("04/16/2007") time("13:32")
format("5.0")
baseScale(1000.000000)
zoomFactor("0.000568568")
simHDL(VHDL)
simDelayMechanism(Transport)
nextID(109)
TimingAnalysisMethod(51)
user(date,"") user(description,"") user(designer,"") user(revision,"1.0")
generalPrintParams( "printer,,,landscape,clipboard,letter,default,7,5,in,color,scaleable,")
diagramPrintParams( "0,6,40000,200000,true,false,1,1,true,false,false,false,all,specified")
spreadsheetPrintParams( "0,14,true,false,1,true,all")
)
HDLHeader(
hdlFile("")
checkConstraints(true)
checkTimeout(never)
command( name("") cmdType(null) ))
DefaultLabel(
delay(showNameString,"")
constraint(showNameString,"")
guarantee(showNameString,"")
measure(showMeasure,"")
store(showNameString,"")
wait(showNameString,"")
end(showNameString,"")
boundary(showIncrement,"")
loop(showNameString,"")
waveform(showSkip,"","")
specifiedclock(showSkip,"","")
derivedclock(showSkip,"","")
simwaveform(showSkip,"","")
bus(showValue,"","")
)
DiagramStyle (
waveformFont(winFont("Arial",90) )
rulerFont(winFont("Arial",90) )
relationshipFont(winFont("Arial",90) )
labelFont(winFont("Arial",90) )
annotationFont(winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") )
slotHeight("11")
edgeHeight("11")
edgeGrade("1.96261")
inputPenStyle(0)
outputPenStyle(0)
inoutPenStyle(0)
internalPenStyle(0)
vRelationshipPenStyle(0)
hRelationshipPenStyle(0)
inputPenColor(3)
outputPenColor(3)
inoutPenColor(3)
internalPenColor(3)
wavePenWidth("0")
relationshipPenWidth("0")
wavesOnTop
relationshipsOnTop
annotationsOnTop
showSlopedEdges
showUncertainties
)
Clock ( objectID(2) name("clk25") minheight("0") periodScale(1000) period(40.000480) dutyCycle(50.000000)
hdl( direction(internal) ) label(showDefault,"","") )
Waveform ( objectID(6) name("NIC_AD[16:2]-address") minheight("0") edges(
(z,0,0,L),
(valid,55480.5,55480.5,label(showText,"A1","") ),
(valid,95481,95481,label(showText,"A2","") ),
(valid,135481,135481,label(showText,"A3","") ),
(valid,175482,175482,label(showText,"A4","") ),
(invalid,215482,215482,label(showText,"","") ),
(invalid,255483,255483),
(blank,291000,291000))
hdl( direction(inOut) ) label(showDefault,"","") )
Waveform ( objectID(107) name("NIC_ADS#") minheight("0") edges(
(high,0,0,L),
(low,45180.5,45560.5),
(high,216000,216000),
(blank,269723,269723))
hdl( direction(input) ) label(showDefault,"","") )
Waveform ( objectID(7) name("NIC_CE#") minheight("0") edges(
(high,0,0,L),
(low,85181,85561),
(high,125181,125561),
(blank,291000,291000))
hdl( direction(input) ) label(showDefault,"","") )
Waveform ( objectID(44) name("NIC_RW#") minheight("0") edges(
(high,0,0,L),
(low,85181,85561),
(high,125181,125561),
(low,349000,349000),
(blank,352723,352723))
hdl( direction(input) ) label(showDefault,"","") )
Waveform ( objectID(19) name("NIC_AD[31:0]-data") minheight("0") edges(
(z,0,0,L),
(valid,95481,95481,label(showText,"D1","") ),
(z,135481,135481,label(showText,"D2","") ),
(valid,303000,303000),
(blank,306723,306723))
hdl( direction(inOut) ) label(showDefault,"","") )
Waveform ( objectID(9) name("NIC_OE#") minheight("0") edges(
(low,0,0,L),
(high,85181,85561),
(low,125181,125561),
(low,290000,290000),
(blank,322723,322723))
hdl( direction(input) ) label(showDefault,"","") )
Grid ( "clk25" topWave("clk25")
color(8) 1stWidth(0) 2ndWidth(0) 1stStyle(1) 2ndStyle(0)
show1st )
Annotation( value("0") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",1) origin(-2186.56,20) edgeCentered )
Annotation( value("1") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",3) origin(-2294.27,20) edgeCentered )
Annotation( value("2") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",5) origin(-1335.63,20) edgeCentered )
Annotation( value("3") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",7) origin(-2154.24,20) edgeCentered )
Annotation( value("4") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",9) origin(-1195.6,20) edgeCentered )
Annotation( value("5") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",11) origin(-1303.31,20) edgeCentered )
Annotation( value("6") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",13) origin(-1411.02,20) edgeCentered )
Annotation( value("7") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",15) origin(-2229.63,20) edgeCentered )
Annotation( value("8") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") Edge("clk25",17) origin(-1270.99,20) edgeCentered )
Annotation( value("Dual Port RAM Single Write Access from Lefr Port, with 1.5 safety factor, pipelined.\r\n") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") origin(0,0) topCenter )
Annotation( value("This timing waveform was created using the IDT70V3579S6\r\n datasheet.") winFont("Arial",80) xFont("-misc-fixed-*-*-*-*-*-120-*-*-*-*-*-1") origin(0,0) bottomCenter )
EndCycleEvent ( objectID(1) name("end") time(200.000000) showVert hideOnPrinter label(showDefault,"") fromLatestEnd toEarliestBegin )
Delay ( name("Tclk2add") value("[15.48,0]") comment("Actel(tPY+tDP+tDIN+tEOUT+tZL+tPD=11.18)*1.2+Net delay(2.06)")
instance(objectID(16) source("clk25",2) target("NIC_AD[16:2]-address",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(47) source("clk25",4) target("NIC_AD[16:2]-address",2) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(54) source("clk25",6) target("NIC_AD[16:2]-address",3) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(55) source("clk25",8) target("NIC_AD[16:2]-address",4) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(56) source("clk25",10) target("NIC_AD[16:2]-address",5) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(57) source("clk25",12) target("NIC_AD[16:2]-address",6) label(showDefault,"") fromLatestBegin toLatestEnd ))
Delay ( name("tCLK_OUT") value("[5.18,5.56]") comment("Actel CLK input to output delay (tPY+tICLKQ+tOCLKQ=2.16min, 2.92max)*1.2+Net delay(2.06)")
instance(objectID(28) source("clk25",4) target("NIC_CE#",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(48) source("clk25",4) target("NIC_RW#",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(78) source("clk25",6) target("NIC_CE#",2) label(showDefault,"") fromLatestBegin toLatestEnd slot(2) )
instance(objectID(79) source("clk25",6) target("NIC_RW#",2) label(showDefault,"") fromLatestBegin toLatestEnd ))
Constraint ( name("tSA") value("[([2,2]*[1.5,1.5]),]") comment("DP address setup time")
instance(objectID(51) source("NIC_AD[16:2]-address",1) target("clk25",4) MarginValue("[21.52048,]") label(showDefault,"") fromLatestEnd toEarliestBegin slot(3) bottom ))
Constraint ( name("tHA") value("[([1,1]*[1.5,1.5]),]") comment("DP address hold time")
instance(objectID(52) source("clk25",4) target("NIC_AD[16:2]-address",2) MarginValue("[13.98,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tSC") value("[([2,2]*[1.5,1.5]),]") comment(" DP chip enable set up time")
instance(objectID(58) source("NIC_OE#",1) target("clk25",6) MarginValue("[31.44048,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom )
instance(objectID(68) source("NIC_CE#",1) target("clk25",6) MarginValue("[31.44048,]") label(showDefault,"") fromLatestEnd toEarliestBegin slot(2) bottom ))
Constraint ( name("tSW") value("[([2,2]*[1.5,1.5]),]") comment("DP write set up time")
instance(objectID(59) source("NIC_RW#",1) target("clk25",6) MarginValue("[31.44048,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tHC") value("[([1,1]*[1.5,1.5]),]") comment("DP chip enable hold time")
instance(objectID(82) source("clk25",6) target("NIC_CE#",2) MarginValue("[3.68,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Constraint ( name("tHW") value("[([1,1]*[1.5,1.5]),]") comment("DP write hold time")
instance(objectID(83) source("clk25",6) target("NIC_RW#",2) MarginValue("[3.68,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Delay ( name("tCLK_OUT2") value("[5.18,5.56]") comment("Actel CLK input to output delay (tPY+tICLKQ+tOCLKQ=2.16min, 2.92max)*1.2+Net delay(2.06)")
instance(objectID(93) source("clk25",4) target("NIC_OE#",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(94) source("clk25",6) target("NIC_OE#",2) label(showDefault,"") fromLatestBegin toLatestEnd ))
Delay ( name("Tclk2data") value("[15.48,]") comment("Actel(tPY+tDP+tDIN+tEOUT+tZL+tPD=11.18)*1.2+Net delay(2.06)")
instance(objectID(96) source("clk25",4) target("NIC_AD[31:0]-data",1) label(showDefault,"") fromLatestBegin toLatestEnd )
instance(objectID(97) source("clk25",6) target("NIC_AD[31:0]-data",2) label(showDefault,"") fromLatestBegin toLatestEnd slot(2) ))
Constraint ( name("tSD") value("[([2,2]*[1.5,1.5]),]") comment("DP Input data setup time")
instance(objectID(103) source("NIC_AD[31:0]-data",1) target("clk25",6) MarginValue("[21.52048,]") label(showDefault,"") fromLatestEnd toEarliestBegin slot(4) bottom ))
Constraint ( name("tHD") value("[([1,1]*[1.5,1.5]),]") comment("DP Input data hold time")
instance(objectID(104) source("clk25",6) target("NIC_AD[31:0]-data",2) MarginValue("[13.98,]") label(showDefault,"") fromLatestEnd toEarliestBegin bottom ))
Delay ( name("tCLK_OUT") value("[5.18,5.56]") comment("Actel CLK input to output delay (tPY+tICLKQ+tOCLKQ=2.16min, 2.92max)*1.2+Net delay(2.06)")
instance(objectID(108) source("clk25",2) target("NIC_ADS#",1) label(showDefault,"") fromLatestBegin toLatestEnd ))
�
本文档为【NG_NIC_VbPCI_FRD_EB7038228】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。