1 |
11 |
ashwin_men |
TABLE OF CONTENTS
|
2 |
|
|
1) Peripheral Summary
|
3 |
|
|
2) Description of Generated Files
|
4 |
|
|
3) Description of Used IPIC Signals
|
5 |
|
|
4) Description of Top Level Generics
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
================================================================================
|
9 |
|
|
* 1) Peripheral Summary *
|
10 |
|
|
================================================================================
|
11 |
|
|
Peripheral Summary:
|
12 |
|
|
|
13 |
|
|
XPS project / EDK repository : /home/ashwin/work/SATA/ml605/12.2/SATA_PCIE/base_SATA_PCIE_NPI_2
|
14 |
|
|
logical library name : npi_core_v1_00_a
|
15 |
|
|
top name : npi_core
|
16 |
|
|
version : 1.00.a
|
17 |
|
|
type : PLB (v4.6) slave
|
18 |
|
|
features : slave attachment
|
19 |
|
|
user s/w registers
|
20 |
|
|
|
21 |
|
|
Address Block for User Logic and IPIF Predefined Services
|
22 |
|
|
|
23 |
|
|
user logic slave space : C_BASEADDR + 0x00000000
|
24 |
|
|
: C_BASEADDR + 0x000000FF
|
25 |
|
|
|
26 |
|
|
|
27 |
|
|
================================================================================
|
28 |
|
|
* 2) Description of Generated Files *
|
29 |
|
|
================================================================================
|
30 |
|
|
- HDL source file(s)
|
31 |
|
|
|
32 |
|
|
hdl/vhdl/npi_core.vhd
|
33 |
|
|
|
34 |
|
|
This is the template file for your peripheral's top design entity. It
|
35 |
|
|
configures and instantiates the corresponding design units in the way you
|
36 |
|
|
indicated in the wizard GUI and hooks it up to the stub user logic where
|
37 |
|
|
the actual functionalites should get implemented. You are not expected to
|
38 |
|
|
modify this template file except certain marked places for adding user
|
39 |
|
|
specific generics and ports.
|
40 |
|
|
|
41 |
|
|
vhdl/user_logic.vhd
|
42 |
|
|
|
43 |
|
|
This is the template file for the stub user logic design entity, either in
|
44 |
|
|
VHDL or Verilog, where the actual functionalities should get implemented.
|
45 |
|
|
Some sample code snippet may be provided for demonstration purpose.
|
46 |
|
|
|
47 |
|
|
- XPS interface file(s)
|
48 |
|
|
|
49 |
|
|
data/npi_core_v2_1_0.mpd
|
50 |
|
|
|
51 |
|
|
This Microprocessor Peripheral Description file contains information of the
|
52 |
|
|
interface of your peripheral, so that other EDK tools can recognize your
|
53 |
|
|
peripheral.
|
54 |
|
|
|
55 |
|
|
data/npi_core_v2_1_0.pao
|
56 |
|
|
|
57 |
|
|
This Peripheral Analysis Order file defines the analysis order of all the HDL
|
58 |
|
|
source files that are used to compile your peripheral.
|
59 |
|
|
|
60 |
|
|
- Other misc file(s)
|
61 |
|
|
|
62 |
|
|
devl/ipwiz.opt
|
63 |
|
|
|
64 |
|
|
This is the option setting file for the wizard batch mode, which should
|
65 |
|
|
generate the same result as the wizard GUI mode.
|
66 |
|
|
|
67 |
|
|
devl/README.txt
|
68 |
|
|
|
69 |
|
|
This README file for your peripheral.
|
70 |
|
|
|
71 |
|
|
devl/ipwiz.log
|
72 |
|
|
|
73 |
|
|
This is the log file by operating on this wizard.
|
74 |
|
|
|
75 |
|
|
|
76 |
|
|
================================================================================
|
77 |
|
|
* 3) Description of Used IPIC Signals *
|
78 |
|
|
================================================================================
|
79 |
|
|
For more information (usage, timing diagrams, etc.) regarding the IPIC signals
|
80 |
|
|
used in the templates, please refer to the following specifications (under
|
81 |
|
|
%XILINX_EDK%\doc for windows or $XILINX_EDK/doc for solaris and linux):
|
82 |
|
|
proc_ip_ref_guide.pdf - Processor IP Reference Guide (chapter 4 IPIF)
|
83 |
|
|
user_core_templates_ref_guide.pdf - User Core Templates Reference Guide
|
84 |
|
|
|
85 |
|
|
Bus2IP_Clk
|
86 |
|
|
Synchronization clock provided to the user logic. All IPIC signals are
|
87 |
|
|
synchronous to this clock. It is identical to the input _Clk signal of
|
88 |
|
|
the peripheral. No additional buffering is provided on the clock; it is
|
89 |
|
|
passed through as is.
|
90 |
|
|
|
91 |
|
|
Bus2IP_Reset
|
92 |
|
|
Active high reset for used by the user logic; it is asserted whenever the
|
93 |
|
|
_Rst signal asserts or whenever there is a software-programmed reset
|
94 |
|
|
(if the soft reset block is included).
|
95 |
|
|
|
96 |
|
|
Bus2IP_Data
|
97 |
|
|
Write data bus to the user logic. Write data is accepted by the user logic
|
98 |
|
|
during a write operation by assertion of the write acknowledgement signal
|
99 |
|
|
and the rising edge of the Bus2IP_Clk.
|
100 |
|
|
|
101 |
|
|
Bus2IP_BE
|
102 |
|
|
Byte Enable qualifiers for the requested read or write operation to the user
|
103 |
|
|
logic. A bit in the Bus2IP_BE set to '1' indicates that the associated byte
|
104 |
|
|
lane contains valid data. For example, if Bus2IP_BE = 0011, this indicates
|
105 |
|
|
that byte lanes 2 and 3 contains valid data.
|
106 |
|
|
|
107 |
|
|
Bus2IP_RdCE
|
108 |
|
|
Active high chip enable bus to the user logic. These chip enables are
|
109 |
|
|
asserted only during active read transaction requests with the target
|
110 |
|
|
address space and in conjunction with the corresponding sub-address within
|
111 |
|
|
the space. Typically used for user logic readable registers selection.
|
112 |
|
|
|
113 |
|
|
Bus2IP_WrCE
|
114 |
|
|
Active high chip enable bus to the user logic. These chip enables are
|
115 |
|
|
asserted only during active write transaction requests with the target
|
116 |
|
|
address space and in conjunction with the corresponding sub-address within
|
117 |
|
|
the space. Typically used for user logic writable registers selection.
|
118 |
|
|
|
119 |
|
|
IP2Bus_Data
|
120 |
|
|
Output read data bus from the user logic; data is qualified with the
|
121 |
|
|
assertion of IP2Bus_RdAck signal and the rising edge of the Bus2IP_Clk.
|
122 |
|
|
|
123 |
|
|
IP2Bus_RdAck
|
124 |
|
|
Active high read data qualifier providing the read acknowledgement from the
|
125 |
|
|
user logic. Read data on the IP2Bus_Data bus is deemed valid at the rising
|
126 |
|
|
edge of the Bus2IP_Clk and IP2Bus_RdAck asserted high by the user logic. For
|
127 |
|
|
immediate acknowledgement (such as for a register read), this signal can be
|
128 |
|
|
tied to '1'. Wait states can be inserted in the transaction by delaying the
|
129 |
|
|
assertion of the acknowledgement.
|
130 |
|
|
|
131 |
|
|
IP2Bus_WrAck
|
132 |
|
|
Active high write data qualifier providing the write acknowledgement from
|
133 |
|
|
the user logic. Write data on the Bus2IP_Data bus is deemed accepted by the
|
134 |
|
|
user logic at the rising edge of the Bus2IP_Clk and IP2Bus_WrAck asserted
|
135 |
|
|
high by the user logic. For immediate acknowledgement (such as for a
|
136 |
|
|
register write), this signal can be tied to '1'. Wait states can be inserted
|
137 |
|
|
in the transaction by delaying the assertion of the acknowledgement.
|
138 |
|
|
|
139 |
|
|
IP2Bus_Error
|
140 |
|
|
Active high signal indicating the user logic has encountered an error with
|
141 |
|
|
the requested operation. It is asserted in conjunction with the read/write
|
142 |
|
|
acknowledgement signal(s).
|
143 |
|
|
|
144 |
|
|
================================================================================
|
145 |
|
|
* 4) Description of Top Level Generics *
|
146 |
|
|
================================================================================
|
147 |
|
|
C_BASEADDR/C_HIGHADDR
|
148 |
|
|
These two generics are used to define the memory mapped address space for
|
149 |
|
|
the peripheral registers, including Soft Reset register, Interrupt Source
|
150 |
|
|
Controller registers, Read/Write FIFO control/data registers, user logic
|
151 |
|
|
software accessible registers and etc., but excluding those user logic
|
152 |
|
|
memory spaces if ever existed. When instantiation, the address space
|
153 |
|
|
size determined by these two generics must be a power of 2 (e.g. 2^k =
|
154 |
|
|
C_HIGHADDR - C_BASEADDR + 1), a factor of C_BASEADDR and larger than the
|
155 |
|
|
minimum size as indicated in the template.
|
156 |
|
|
|
157 |
|
|
C_SPLB_AWIDTH
|
158 |
|
|
This is the slave interface address bus width for Processor Local Bus
|
159 |
|
|
version 4.6 (PLBv46). Value can be assigned automatically by EDK
|
160 |
|
|
tooling during system creation.
|
161 |
|
|
|
162 |
|
|
C_SPLB_DWIDTH
|
163 |
|
|
This is the slave interface data bus width for Processor Local Bus
|
164 |
|
|
version 4.6 (PLBv46). Value can be assigned automatically by EDK
|
165 |
|
|
tooling during system creation.
|
166 |
|
|
|
167 |
|
|
C_SPLB_NUM_MASTERS
|
168 |
|
|
This indicates to the slave interface the number of PLBv46 masters
|
169 |
|
|
present. Value can be assigned automatically by EDK tooling during
|
170 |
|
|
system creation.
|
171 |
|
|
|
172 |
|
|
C_SPLB_MID_WIDTH
|
173 |
|
|
This indicates to the slave interface the number of bits required
|
174 |
|
|
for the PLB_masterID input bus. It is an integer value equal to
|
175 |
|
|
log2(C_SPLB_NUM_MASTERS). Value will be assigned automatically by
|
176 |
|
|
EDK tooling during system creation.
|
177 |
|
|
|
178 |
|
|
C_SPLB_NATIVE_DWIDTH
|
179 |
|
|
This indicates to the slave interface the native bit width of the
|
180 |
|
|
internal data bus of the peripheral. Some peripheral will require
|
181 |
|
|
the value of this parameter to be fixed, while others might have
|
182 |
|
|
selectable native data widths.
|
183 |
|
|
|
184 |
|
|
C_SPLB_P2P
|
185 |
|
|
This indicates to the slave interface when it is exclusively attached
|
186 |
|
|
to a PLBv46 bus via a Point to Point interconnect scheme. In this
|
187 |
|
|
scenario, the slave interface may be able to reduce resource utilization
|
188 |
|
|
by eliminating address decode function and modifying interface behavior
|
189 |
|
|
to allow for a reduction in latency.
|
190 |
|
|
|
191 |
|
|
C_SPLB_SUPPORT_BURSTS
|
192 |
|
|
This indicates to the associated PLBv46 bus that this slave interface
|
193 |
|
|
support burst transfers to improve performance.
|
194 |
|
|
|
195 |
|
|
C_SPLB_SMALLEST_MASTER
|
196 |
|
|
This indicates the smallest native data width of any master on the
|
197 |
|
|
corresponding PLBv46 bus that may access the slave interface. It allows
|
198 |
|
|
optimizations within the slave interface logic if narrower masters don't
|
199 |
|
|
have to be supported for that application.
|
200 |
|
|
|
201 |
|
|
C_SPLB_CLK_PERIOD_PS
|
202 |
|
|
This is the period of the PLBv46 bus clock (in picoseconds) for the
|
203 |
|
|
corresponding PLBv46 slave interface attachment. It has been defined
|
204 |
|
|
for use by peripheral that needs to know the bus clock rate to improve
|
205 |
|
|
certain functions such as internal timers.
|
206 |
|
|
|
207 |
|
|
C_INCLUDE_DPHASE_TIMER
|
208 |
|
|
This indicates if the data phase timer is used or not. The value of
|
209 |
|
|
|
210 |
|
|
If C_INCLUDE_DPHASE_TIMER = 1 and after 128 SPLB_Clk cycles, as
|
211 |
|
|
measured from the assertion of Sl_AddrAck, the User IP does not
|
212 |
|
|
respond with either an IP2Bus_RdAck or IP2Bus_WrAck the
|
213 |
|
|
plbv46_slave_single will de-assert the User IP cycle request
|
214 |
|
|
signals, Bus2IP_CS and Bus2IP_RdCE or Bus2IP_WrCE, and will assert
|
215 |
|
|
Sl_rdDAck with Sl_rdDBus=zero for a read cycle or Sl_wrDAck for
|
216 |
|
|
a write cycle. This will gracefully terminate the cycle. Note
|
217 |
|
|
that the requesting master will have no knowledge that the data
|
218 |
|
|
phase of the PLB request was terminated in this manner.
|
219 |
|
|
|
220 |
|
|
C_FAMILY
|
221 |
|
|
This is to set the target FPGA architecture, s.t. virtex5, etc.
|
222 |
|
|
|
223 |
|
|
|
224 |
|
|
================================================================================
|
225 |
|
|
* 5) Location to documentation of dependent libraries *
|
226 |
|
|
* *
|
227 |
|
|
* In general, the documentation is located under: *
|
228 |
|
|
* $XILINX_EDK/hw/XilinxProcessorIPLib/pcores/$libName/doc *
|
229 |
|
|
* *
|
230 |
|
|
================================================================================
|
231 |
|
|
proc_common_v3_00_a
|
232 |
|
|
No documentation for this library
|
233 |
|
|
|
234 |
|
|
plbv46_slave_single_v1_01_a
|
235 |
|
|
/opt/Xilinx/12.2/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/plbv46_slave_single_v1_01_a/doc/plbv46_slave_single.pdf
|
236 |
|
|
|