URL
https://opencores.org/ocsvn/vspi/vspi/trunk
Subversion Repositories vspi
[/] [vspi/] [trunk/] [projnav/] [xps/] [pcores/] [spiifc_v1_00_a/] [devl/] [README.txt] - Rev 14
Compare with Previous | Blame | View Log
TABLE OF CONTENTS1) Peripheral Summary2) Description of Generated Files3) Description of Used IPIC Signals4) Description of Top Level Generics================================================================================* 1) Peripheral Summary *================================================================================Peripheral Summary:XPS project / EDK repository : C:\Users\mjlyons\workspace\vSPI\projnav\xpslogical library name : spiifc_v1_00_atop name : spiifcversion : 1.00.atype : PLB (v4.6) slavefeatures : slave attachmentinterrupt controluser s/w registersuser memory spacesAddress Block for User Logic and IPIF Predefined Servicesuser logic slave space : C_BASEADDR + 0x00000000: C_BASEADDR + 0x000000FFinterrupt control space : C_BASEADDR + 0x00000100: C_BASEADDR + 0x000001FFUser logic memory space 0 : C_MEM0_BASEADDR: C_MEM0_HIGHADDRUser logic memory space 1 : C_MEM1_BASEADDR: C_MEM1_HIGHADDR================================================================================* 2) Description of Generated Files *================================================================================- HDL source file(s)hdl/vhdl/spiifc.vhdThis is the template file for your peripheral's top design entity. Itconfigures and instantiates the corresponding design units in the way youindicated in the wizard GUI and hooks it up to the stub user logic wherethe actual functionalites should get implemented. You are not expected tomodify this template file except certain marked places for adding userspecific generics and ports.verilog/user_logic.vThis is the template file for the stub user logic design entity, either inVHDL or Verilog, where the actual functionalities should get implemented.Some sample code snippet may be provided for demonstration purpose.- XPS interface file(s)data/spiifc_v2_1_0.mpdThis Microprocessor Peripheral Description file contains information of theinterface of your peripheral, so that other EDK tools can recognize yourperipheral.data/spiifc_v2_1_0.paoThis Peripheral Analysis Order file defines the analysis order of all the HDLsource files that are used to compile your peripheral.- ISE project file(s)devl/projnav/spiifc.iseThis is the ProjNavigator project file. It sets up the needed logicallibraries and dependent library files for you to help you develop yourperipheral using ProjNavigator.devl/projnav/spiifc.cliThis is the TCL command line file used to generate the .ise file.- XST synthesis file(s)devl/synthesis/spiifc_xst.scrThis is the XST synthesis script file to compile your peripheral.Note: you may want to modify the device part option for your target.devl/synthesis/spiifc_xst.prjThis is the XST synthesis project file used by the above script file tocompile your peripheral.- Driver source file(s)src/spiifc.hThis is the software driver header template file, which contains address offset ofsoftware addressable registers in your peripheral, as well as some common masks andsimple register access macros or function declaration.src/spiifc.cThis is the software driver source template file, to define all applicable driverfunctions.src/spiifc_selftest.cThis is the software driver self test example file, which contain self test examplecode to test various hardware features of your peripheral.src/MakefileThis is the software driver makefile to compile drivers.- Driver interface file(s)-user needs to add these to repositories path in SDK (Xilinx Tools-->Repositories)data/spiifc_v2_1_0.mddThis is the Microprocessor Driver Definition file.data/spiifc_v2_1_0.tclThis is the Microprocessor Driver Command file.- Other misc file(s)devl/ipwiz.optThis is the option setting file for the wizard batch mode, which shouldgenerate the same result as the wizard GUI mode.devl/README.txtThis README file for your peripheral.devl/ipwiz.logThis is the log file by operating on this wizard.================================================================================* 3) Description of Used IPIC Signals *================================================================================For more information (usage, timing diagrams, etc.) regarding the IPIC signalsused in the templates, please refer to the following specifications:proc_common_v3_00_aNo documentation for this libraryplbv46_slave_burst_v1_01_aC:\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.pdfinterrupt_control_v2_01_aC:\Users\mjlyons\workspace\vSPI\projnav\xps\C:\Xilinx\13.2\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\interrupt_control_v2_01_a\doc\interrupt_control.pdfBus2IP_ClkSynchronization clock provided to the user logic. All IPIC signals aresynchronous to this clock. It is identical to the input <bus>_Clk signal ofthe peripheral. No additional buffering is provided on the clock; it ispassed through as is.Bus2IP_ResetActive high reset used by the user logic. It is asserted whenever the<bus>_Rst signal asserts or whenever there is a software-programmed reset(if the soft reset block is included).Bus2IP_AddrAddress bus to the user logic. It indicates the address of the requestedread or write operation. It can be used for additional address decoding oras input to addressable memory devices.Bus2IP_CSActive high chip select bus. Assertion of a chip select indicates an activetransaction request to the chip select's target address space. This istypically used for user logic memory space selection.Bus2IP_RNWInput signal to the user logic. It indicates the sense of a requestedoperation with the user logic. High is a read and low is a write. It isvalid whenever at least one of the Bus2IP_CS bits is active.Bus2IP_DataWrite data bus to the user logic. Write data is accepted by the user logicduring a write operation by assertion of the write acknowledgement signaland the rising edge of the Bus2IP_Clk.Bus2IP_BEByte Enable qualifiers for the requested read or write operation to the userlogic. A bit in the Bus2IP_BE set to '1' indicates that the associated bytelane contains valid data. For example, if Bus2IP_BE = 0011, this indicatesthat byte lanes 2 and 3 contain valid data.Bus2IP_RdCEActive high chip enable bus to the user logic. These chip enables are onlyasserted during active read transaction requests with the target addressspace and in conjunction with the corresponding sub-address within thespace. These are typically used for user logic readable registers selection.Bus2IP_WrCEActive high chip enable bus to the user logic. These chip enables areasserted only during active write transaction requests with the targetaddress space and in conjunction with the corresponding sub-address withinthe space. Typically used for user logic writable registers selection.Bus2IP_BurstActive high signal indicating that the active read or write operation withthe user logic is utilizing bursting protocol. This signal is asserted atthe initiation of a burst transaction with the user logic and de-asserted atthe completion of the second to last data beat of the burst data transfer.Bus2IP_BurstLengthThis value is an indication of the number of bytes being requested fortransfer and is valid when the cycle is of burst type Bus2IP_CS is active.Bus2IP_RdReqActive high signal indicating the initiation of a read operation with theuser logic. It is asserted for one Bus2IP_Clk during single data beattransactions and remains high to completion on burst read operations.Bus2IP_WrReqActive high signal indicating the initiation of a write operation with theuser logic. It is asserted for one Bus2IP_Clk during single data beattransactions and remains high to completion on burst write operations.IP2Bus_AddrAckActive high signal that advances the address counter and request stateduring multiple data beat transfers, i.e. bursting.IP2Bus_DataOutput read data bus from the user logic; data is qualified with theassertion of IP2Bus_RdAck signal and the rising edge of the Bus2IP_Clk.IP2Bus_RdAckActive high read data qualifier providing the read acknowledgement from theuser logic. Read data on the IP2Bus_Data bus is deemed valid at the risingedge of the Bus2IP_Clk and IP2Bus_RdAck asserted high by the user logic. Forimmediate acknowledgement (such as for a register read), this signal can betied to '1'. Wait states can be inserted in the transaction by delaying theassertion of the acknowledgement.IP2Bus_WrAckActive high write data qualifier providing the write acknowledgement fromthe user logic. Write data on the Bus2IP_Data bus is deemed accepted by theuser logic at the rising edge of the Bus2IP_Clk and IP2Bus_WrAck assertedhigh by the user logic. For immediate acknowledgement (such as for aregister write), this signal can be tied to '1'. Wait states can be insertedin the transaction by delaying the assertion of the acknowledgement.IP2Bus_ErrorActive high signal indicating the user logic has encountered an error withthe requested operation. It is asserted in conjunction with the read/writeacknowledgement signal(s).IP2Bus_IntrEventAn output from the user logic to the IPIF that consists of interrupt eventsignals to be detected and latched inside the IPIF.================================================================================* 4) Description of Top Level Generics *================================================================================C_BASEADDR/C_HIGHADDRThese two generics are used to define the memory mapped address space forthe peripheral registers, including Soft Reset register, Interrupt SourceController registers, Read/Write FIFO control/data registers, user logicsoftware accessible registers and etc., but excluding those user logicmemory spaces if ever existed. When instantiation, the address spacesize determined by these two generics must be a power of 2 (e.g. 2^k =C_HIGHADDR - C_BASEADDR + 1), a factor of C_BASEADDR and larger than theminimum size as indicated in the template.C_SPLB_AWIDTHThis is the slave interface address bus width for Processor Local Busversion 4.6 (PLBv46). Value can be assigned automatically by EDKtooling during system creation.C_SPLB_DWIDTHThis is the slave interface data bus width for Processor Local Busversion 4.6 (PLBv46). Value can be assigned automatically by EDKtooling during system creation.C_SPLB_NUM_MASTERSThis indicates to the slave interface the number of PLBv46 masterspresent. Value can be assigned automatically by EDK tooling duringsystem creation.C_SPLB_MID_WIDTHThis indicates to the slave interface the number of bits requiredfor the PLB_masterID input bus. It is an integer value equal tolog2(C_SPLB_NUM_MASTERS). Value will be assigned automatically byEDK tooling during system creation.C_SPLB_NATIVE_DWIDTHThis indicates to the slave interface the native bit width of theinternal data bus of the peripheral. Some peripheral will requirethe value of this parameter to be fixed, while others might haveselectable native data widths.C_SPLB_P2PThis indicates to the slave interface when it is exclusively attachedto a PLBv46 bus via a Point to Point interconnect scheme. In thisscenario, the slave interface may be able to reduce resource utilizationby eliminating address decode function and modifying interface behaviorto allow for a reduction in latency.C_SPLB_SUPPORT_BURSTSThis indicates to the associated PLBv46 bus that this slave interfacesupport burst transfers to improve performance.C_SPLB_SMALLEST_MASTERThis indicates the smallest native data width of any master on thecorresponding PLBv46 bus that may access the slave interface. It allowsoptimizations within the slave interface logic if narrower masters don'thave to be supported for that application.C_SPLB_CLK_PERIOD_PSThis is the period of the PLBv46 bus clock (in picoseconds) for thecorresponding PLBv46 slave interface attachment. It has been definedfor use by peripheral that needs to know the bus clock rate to improvecertain functions such as internal timers.C_INCLUDE_DPHASE_TIMERThis indicates if the data phase timer is used or not. The value of0 will exclude the timer. The value of 1 includes the timer.If C_INCLUDE_DPHASE_TIMER = 1 and after 128 SPLB_Clk cycles, asmeasured from the assertion of Sl_AddrAck, the User IP does notrespond with either an IP2Bus_RdAck or IP2Bus_WrAck theplbv46_slave_single will de-assert the User IP cycle requestsignals, Bus2IP_CS and Bus2IP_RdCE or Bus2IP_WrCE, and will assertSl_rdDAck with Sl_rdDBus=zero for a read cycle or Sl_wrDAck fora write cycle. This will gracefully terminate the cycle. Notethat the requesting master will have no knowledge that the dataphase of the PLB request was terminated in this manner.C_FAMILYThis is to set the target FPGA architecture, s.t. virtex6, etc.C_MEMn_BASEADDR/C_MEMn_HIGHADDR (n = 0, 1, 2, etc.)These two generics are used to define the memory mapped address space foruser logic memory space n, which are typically used in peripherals likememory controllers, bridges, that need to access memory blocks otherthan local register space. When instantiation, the address space sizedetermined by these two generics should be a power of 2 (e.g. 2^k =C_MEMn_HIGHADDR - C_MEMn_BASEADDR + 1) and a factor of C_MEMn_BASEADDR.================================================================================* 5) Location to documentation of dependent libraries ** ** In general, the documentation is located under: ** $XILINX_EDK/hw/XilinxProcessorIPLib/pcores/$libName/doc ** *================================================================================proc_common_v3_00_aNo documentation for this libraryplbv46_slave_burst_v1_01_aC:\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.pdfinterrupt_control_v2_01_aC:\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
