OpenCores
URL https://opencores.org/ocsvn/vspi/vspi/trunk

Subversion Repositories vspi

[/] [vspi/] [trunk/] [projnav/] [xps/] [pcores/] [spiifc_v1_00_a/] [devl/] [README.txt] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 mjlyons
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               : C:\Users\mjlyons\workspace\vSPI\projnav\xps
14
  logical library name                       : spiifc_v1_00_a
15
  top name                                   : spiifc
16
  version                                    : 1.00.a
17
  type                                       : PLB (v4.6) slave
18
  features                                   : slave attachment
19
                                               interrupt control
20
                                               user s/w registers
21
                                               user memory spaces
22
 
23
Address Block for User Logic and IPIF Predefined Services
24
 
25
  user logic slave space                     : C_BASEADDR + 0x00000000
26
                                             : C_BASEADDR + 0x000000FF
27
  interrupt control space                    : C_BASEADDR + 0x00000100
28
                                             : C_BASEADDR + 0x000001FF
29
  User logic memory space 0                  : C_MEM0_BASEADDR
30
                                             : C_MEM0_HIGHADDR
31
  User logic memory space 1                  : C_MEM1_BASEADDR
32
                                             : C_MEM1_HIGHADDR
33
 
34
 
35
================================================================================
36
*                          2) Description of Generated Files                   *
37
================================================================================
38
- HDL source file(s)
39
 
40
  hdl/vhdl/spiifc.vhd
41
 
42
    This is the template file for your peripheral's top design entity. It
43
    configures and instantiates the corresponding design units in the way you
44
    indicated in the wizard GUI and hooks it up to the stub user logic where
45
    the actual functionalites should get implemented. You are not expected to
46
    modify this template file except certain marked places for adding user
47
    specific generics and ports.
48
 
49
  verilog/user_logic.v
50
 
51
    This is the template file for the stub user logic design entity, either in
52
    VHDL or Verilog, where the actual functionalities should get implemented.
53
    Some sample code snippet may be provided for demonstration purpose.
54
 
55
- XPS interface file(s)
56
 
57
  data/spiifc_v2_1_0.mpd
58
 
59
    This Microprocessor Peripheral Description file contains information of the
60
    interface of your peripheral, so that other EDK tools can recognize your
61
    peripheral.
62
 
63
  data/spiifc_v2_1_0.pao
64
 
65
    This Peripheral Analysis Order file defines the analysis order of all the HDL
66
    source files that are used to compile your peripheral.
67
 
68
- ISE project file(s)
69
 
70
  devl/projnav/spiifc.ise
71
 
72
    This is the ProjNavigator project file. It sets up the needed logical
73
    libraries and dependent library files for you to help you develop your
74
    peripheral using ProjNavigator.
75
 
76
  devl/projnav/spiifc.cli
77
 
78
    This is the TCL command line file used to generate the .ise file.
79
 
80
- XST synthesis file(s)
81
 
82
  devl/synthesis/spiifc_xst.scr
83
 
84
    This is the XST synthesis script file to compile your peripheral.
85
    Note: you may want to modify the device part option for your target.
86
 
87
  devl/synthesis/spiifc_xst.prj
88
 
89
    This is the XST synthesis project file used by the above script file to
90
    compile your peripheral.
91
 
92
- Driver source file(s)
93
 
94
  src/spiifc.h
95
 
96
    This is the software driver header template file, which contains address offset of
97
    software addressable registers in your peripheral, as well as some common masks and
98
    simple register access macros or function declaration.
99
 
100
  src/spiifc.c
101
 
102
    This is the software driver source template file, to define all applicable driver
103
    functions.
104
 
105
  src/spiifc_selftest.c
106
 
107
    This is the software driver self test example file, which contain self test example
108
    code to test various hardware features of your peripheral.
109
 
110
  src/Makefile
111
 
112
    This is the software driver makefile to compile drivers.
113
 
114
- Driver interface file(s)
115
-user needs to add these to repositories path in SDK (Xilinx Tools-->Repositories)
116
 
117
  data/spiifc_v2_1_0.mdd
118
 
119
    This is the Microprocessor Driver Definition file.
120
 
121
  data/spiifc_v2_1_0.tcl
122
 
123
    This is the Microprocessor Driver Command file.
124
 
125
- Other misc file(s)
126
 
127
  devl/ipwiz.opt
128
 
129
    This is the option setting file for the wizard batch mode, which should
130
    generate the same result as the wizard GUI mode.
131
 
132
  devl/README.txt
133
 
134
    This README file for your peripheral.
135
 
136
  devl/ipwiz.log
137
 
138
    This is the log file by operating on this wizard.
139
 
140
 
141
================================================================================
142
*                         3) Description of Used IPIC Signals                  *
143
================================================================================
144
For more information (usage, timing diagrams, etc.) regarding the IPIC signals
145
used in the templates, please refer to the following specifications:
146
proc_common_v3_00_a
147
        No documentation for this library
148
 
149
plbv46_slave_burst_v1_01_a
150
        C:\Users\mjlyons\workspace\vSPI\projnav\xps\C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\doc\plbv46_slave_burst.pdf
151
 
152
interrupt_control_v2_01_a
153
        C:\Users\mjlyons\workspace\vSPI\projnav\xps\C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\interrupt_control_v2_01_a\doc\interrupt_control.pdf
154
 
155
Bus2IP_Clk
156
    Synchronization clock provided to the user logic. All IPIC signals are
157
    synchronous to this clock. It is identical to the input _Clk signal of
158
    the peripheral. No additional buffering is provided on the clock; it is
159
    passed through as is.
160
 
161
Bus2IP_Reset
162
    Active high reset used by the user logic. It is asserted whenever the
163
    _Rst signal asserts or whenever there is a software-programmed reset
164
    (if the soft reset block is included).
165
 
166
Bus2IP_Addr
167
    Address bus to the user logic. It indicates the address of the requested
168
    read or write operation. It can be used for additional address decoding or
169
    as input to addressable memory devices.
170
 
171
Bus2IP_CS
172
    Active high chip select bus. Assertion of a chip select indicates an active
173
    transaction request to the chip select's target address space. This is
174
    typically used for user logic memory space selection.
175
 
176
Bus2IP_RNW
177
    Input signal to the user logic. It indicates the sense of a requested
178
    operation with the user logic. High is a read and low is a write. It is
179
    valid whenever at least one of the Bus2IP_CS bits is active.
180
 
181
Bus2IP_Data
182
    Write data bus to the user logic. Write data is accepted by the user logic
183
    during a write operation by assertion of the write acknowledgement signal
184
    and the rising edge of the Bus2IP_Clk.
185
 
186
Bus2IP_BE
187
    Byte Enable qualifiers for the requested read or write operation to the user
188
    logic. A bit in the Bus2IP_BE set to '1' indicates that the associated byte
189
    lane contains valid data. For example, if Bus2IP_BE = 0011, this indicates
190
    that byte lanes 2 and 3 contain valid data.
191
 
192
Bus2IP_RdCE
193
    Active high chip enable bus to the user logic. These chip enables are only
194
    asserted during active read transaction requests with the target address
195
    space and in conjunction with the corresponding sub-address within the
196
    space. These are typically used for user logic readable registers selection.
197
 
198
Bus2IP_WrCE
199
    Active high chip enable bus to the user logic. These chip enables are
200
    asserted only during active write transaction requests with the target
201
    address space and in conjunction with the corresponding sub-address within
202
    the space. Typically used for user logic writable registers selection.
203
 
204
Bus2IP_Burst
205
    Active high signal indicating that the active read or write operation with
206
    the user logic is utilizing bursting protocol. This signal is asserted at
207
    the initiation of a burst transaction with the user logic and de-asserted at
208
    the completion of the second to last data beat of the burst data transfer.
209
 
210
Bus2IP_BurstLength
211
    This value is an indication of the number of bytes being requested for
212
    transfer and is valid when the cycle is of burst type Bus2IP_CS is active.
213
 
214
Bus2IP_RdReq
215
    Active high signal indicating the initiation of a read operation with the
216
    user logic. It is asserted for one Bus2IP_Clk during single data beat
217
    transactions and remains high to completion on burst read operations.
218
 
219
Bus2IP_WrReq
220
    Active high signal indicating the initiation of a write operation with the
221
    user logic. It is asserted for one Bus2IP_Clk during single data beat
222
    transactions and remains high to completion on burst write operations.
223
 
224
IP2Bus_AddrAck
225
    Active high signal that advances the address counter and request state
226
    during multiple data beat transfers, i.e. bursting.
227
 
228
IP2Bus_Data
229
    Output read data bus from the user logic; data is qualified with the
230
    assertion of IP2Bus_RdAck signal and the rising edge of the Bus2IP_Clk.
231
 
232
IP2Bus_RdAck
233
    Active high read data qualifier providing the read acknowledgement from the
234
    user logic. Read data on the IP2Bus_Data bus is deemed valid at the rising
235
    edge of the Bus2IP_Clk and IP2Bus_RdAck asserted high by the user logic. For
236
    immediate acknowledgement (such as for a register read), this signal can be
237
    tied to '1'. Wait states can be inserted in the transaction by delaying the
238
    assertion of the acknowledgement.
239
 
240
IP2Bus_WrAck
241
    Active high write data qualifier providing the write acknowledgement from
242
    the user logic. Write data on the Bus2IP_Data bus is deemed accepted by the
243
    user logic at the rising edge of the Bus2IP_Clk and IP2Bus_WrAck asserted
244
    high by the user logic. For immediate acknowledgement (such as for a
245
    register write), this signal can be tied to '1'. Wait states can be inserted
246
    in the transaction by delaying the assertion of the acknowledgement.
247
 
248
IP2Bus_Error
249
    Active high signal indicating the user logic has encountered an error with
250
    the requested operation. It is asserted in conjunction with the read/write
251
    acknowledgement signal(s).
252
 
253
IP2Bus_IntrEvent
254
    An output from the user logic to the IPIF that consists of interrupt event
255
    signals to be detected and latched inside the IPIF.
256
 
257
================================================================================
258
*                     4) Description of Top Level Generics                     *
259
================================================================================
260
C_BASEADDR/C_HIGHADDR
261
    These two generics are used to define the memory mapped address space for
262
    the peripheral registers, including Soft Reset register, Interrupt Source
263
    Controller registers, Read/Write FIFO control/data registers, user logic
264
    software accessible registers and etc., but excluding those user logic
265
    memory spaces if ever existed. When instantiation, the address space
266
    size determined by these two generics must be a power of 2 (e.g. 2^k =
267
    C_HIGHADDR - C_BASEADDR + 1), a factor of C_BASEADDR and larger than the
268
    minimum size as indicated in the template.
269
 
270
C_SPLB_AWIDTH
271
    This is the slave interface address bus width for Processor Local Bus
272
    version 4.6 (PLBv46). Value can be assigned automatically by EDK
273
    tooling during system creation.
274
 
275
C_SPLB_DWIDTH
276
    This is the slave interface data bus width for Processor Local Bus
277
    version 4.6 (PLBv46). Value can be assigned automatically by EDK
278
    tooling during system creation.
279
 
280
C_SPLB_NUM_MASTERS
281
    This indicates to the slave interface the number of PLBv46 masters
282
    present. Value can be assigned automatically by EDK tooling during
283
    system creation.
284
 
285
C_SPLB_MID_WIDTH
286
    This indicates to the slave interface the number of bits required
287
    for the PLB_masterID input bus. It is an integer value equal to
288
    log2(C_SPLB_NUM_MASTERS). Value will be assigned automatically by
289
    EDK tooling during system creation.
290
 
291
C_SPLB_NATIVE_DWIDTH
292
    This indicates to the slave interface the native bit width of the
293
    internal data bus of the peripheral. Some peripheral will require
294
    the value of this parameter to be fixed, while others might have
295
    selectable native data widths.
296
 
297
C_SPLB_P2P
298
    This indicates to the slave interface when it is exclusively attached
299
    to a PLBv46 bus via a Point to Point interconnect scheme. In this
300
    scenario, the slave interface may be able to reduce resource utilization
301
    by eliminating address decode function and modifying interface behavior
302
    to allow for a reduction in latency.
303
 
304
C_SPLB_SUPPORT_BURSTS
305
    This indicates to the associated PLBv46 bus that this slave interface
306
    support burst transfers to improve performance.
307
 
308
C_SPLB_SMALLEST_MASTER
309
    This indicates the smallest native data width of any master on the
310
    corresponding PLBv46 bus that may access the slave interface. It allows
311
    optimizations within the slave interface logic if narrower masters don't
312
    have to be supported for that application.
313
 
314
C_SPLB_CLK_PERIOD_PS
315
    This is the period of the PLBv46 bus clock (in picoseconds) for the
316
    corresponding PLBv46 slave interface attachment. It has been defined
317
    for use by peripheral that needs to know the bus clock rate to improve
318
    certain functions such as internal timers.
319
 
320
C_INCLUDE_DPHASE_TIMER
321
    This indicates if the data phase timer is used or not. The value of
322
 
323
    If C_INCLUDE_DPHASE_TIMER = 1 and after 128 SPLB_Clk cycles, as
324
    measured from the assertion of Sl_AddrAck, the User IP does not
325
    respond with either an IP2Bus_RdAck or IP2Bus_WrAck the
326
    plbv46_slave_single will de-assert the User IP cycle request
327
    signals, Bus2IP_CS and Bus2IP_RdCE or Bus2IP_WrCE, and will assert
328
    Sl_rdDAck with Sl_rdDBus=zero for a read cycle or Sl_wrDAck for
329
    a write cycle. This will gracefully terminate the cycle. Note
330
    that the requesting master will have no knowledge that the data
331
    phase of the PLB request was terminated in this manner.
332
 
333
C_FAMILY
334
    This is to set the target FPGA architecture, s.t. virtex6, etc.
335
 
336
C_MEMn_BASEADDR/C_MEMn_HIGHADDR (n = 0, 1, 2, etc.)
337
    These two generics are used to define the memory mapped address space for
338
    user logic memory space n, which are typically used in peripherals like
339
    memory controllers, bridges, that need to access memory blocks other
340
    than local register space. When instantiation, the address space size
341
    determined by these two generics should be a power of 2 (e.g. 2^k =
342
    C_MEMn_HIGHADDR - C_MEMn_BASEADDR + 1) and a factor of C_MEMn_BASEADDR.
343
 
344
================================================================================
345
*          5) Location to documentation of dependent libraries                 *
346
*                                                                              *
347
*   In general, the documentation is located under:                            *
348
*   $XILINX_EDK/hw/XilinxProcessorIPLib/pcores/$libName/doc                    *
349
*                                                                              *
350
================================================================================
351
proc_common_v3_00_a
352
        No documentation for this library
353
 
354
plbv46_slave_burst_v1_01_a
355
        C:\Users\mjlyons\workspace\vSPI\projnav\xps\C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_slave_burst_v1_01_a\doc\plbv46_slave_burst.pdf
356
 
357
interrupt_control_v2_01_a
358
        C:\Users\mjlyons\workspace\vSPI\projnav\xps\C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\interrupt_control_v2_01_a\doc\interrupt_control.pdf
359
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.