Reference System: Determining the Optimal DCM Phase Shift for the DDR Feedback Clock for Spartan-3E Author: Ed Hallett

Size: px
Start display at page:

Download "Reference System: Determining the Optimal DCM Phase Shift for the DDR Feedback Clock for Spartan-3E Author: Ed Hallett"

Transcription

1 XAPP977 (v1.1) June 1, 2007 R Application Note: Embedded Processing Reference System: Determining the Optimal DCM Phase Shift for the DDR Feedback Clock for Spartan-3E Author: Ed Hallett Abstract This application note describes how to build a Spartan -3E embedded system that is used to determine the optimal phase shift of a DDR (Double Data Rate) memory feedback clock. In this system, the DDR memory is controlled by a controller that is attached to the OPB (On-chip Peripheral Bus) and is used in an embedded microprocessor application. This reference system also uses a Digital Clock Manager (DCM) that is configured so that the phase of its output clock can be changed while the system is running. A GPIO (General Purpose Input/Output) core together with a custom control logic core and the included software application dynamically control the phase shift. The GPIO output is controlled by a software application that runs on a MicroBlaze microprocessor, while this application runs out of an internal FPGA BRAM. The application starts with an initial phase shift value, then decrements and increments to find the entire passing phase shift range. At each phase shift value, the application performs memory tests, then records if the tests have passed or failed. The passing range and optimal phase shift value for the given system board are reported by printing them to a HyperTerminal through a UART. The optimal phase shift value is calculated by choosing the center of the passing range. Included Systems Introduction Included with this application note is one reference system (s3e1600e_mb_dcm_phase_shift) built for the Xilinx Spartan-3E 1600E Edition Development board. The reference system is available for downloading at: When building a new circuit board that uses an FPGA and a DDR memory, the optimal phase shift for the DDR feedback clock must be determined, because double data rate memory controllers write and read data at both the rising and falling edges of the controller clock. The optimal time to sample the data is at the midpoint of each of the half clock cycles, or at 90 and 270 degrees as shown in Figure 1. To ensure that the sampling of the read data occurs at these desired times, it is necessary to account for the routing delay of the DDR feedback clock and adjust the clocks to the DDR input data registers appropriately. In a Xilinx FPGA system this can be simply accomplished with the help of a DCM. The DCMs that are available in most Xilinx FPGAs have a built in phase shifter component. If the DDR feedback clock is fed into a DCM, the phase of the output clocks can be adjusted so that the 90 and 270 degree shifted clocks rise at the midpoint of the controller clock half periods. The only difficult part with this approach is knowing exactly how much to shift the phase. This amount is dependent not only on how much routing delay there is from the DDR chip to the FPGA, but also on how much delay there is from the FPGA input pin to the DCM. This application note explains how to create a simple system to experimentally find this optimal phase shift without having to know anything about the routing delays Xilinx, Inc. All rights reserved. All Xilinx trademarks, registered trademarks, patents, and further disclaimers are as listed at PowerPC is a trademark of IBM Inc. All other trademarks and registered trademarks are the property of their respective owners. All specifications are subject to change without notice. NOTICE OF DISCLAIMER: Xilinx is providing this design, code, or information "as is." By providing the design, code, or information as one possible implementation of this feature, application, or standard, Xilinx makes no representation that this implementation is free from any claims of infringement. You are responsible for obtaining any rights you may require for your implementation. Xilinx expressly disclaims any warranty whatsoever with respect to the adequacy of the implementation, including but not limited to any warranties or representations that this implementation is free from claims of infringement and any implied warranties of merchantability or fitness for a particular purpose. XAPP977 (v1.1) June 1,

2 R Hardware and Software Requirements DDR_Clk_fb DDR_Data_at_FPGA DDR_DQS_at_FPGA t CLK_90_PS DO D1 DDR_Clk_fb_90 DDR_RdData Figure 1: DDR Data Capture DO D1 X977_01_ Hardware and Software Requirements Reference System Specifics The hardware and software requirements are: Xilinx Spartan-3E 1600E Edition development board Xilinx Platform USB programming cable RS232 null-modem serial cable Serial Communications Utility Program (e.g. HyperTerminal) Xilinx Platform Studio i Xilinx Integrated Software Environment (ISE ) i The included reference system targets the Spartan-3E 1600E Edition development board. The system uses the MicroBlaze embedded processor. As shown in the system block diagram in Figure 2, the system also includes the MCH (Multi-Channel) OPB DDR (Dual Data Rate) memory controller, the OPB GPIO IP core, the OPB UART Lite IP core, and a DCM Phase Shift custom logic core. The address map for this reference system is shown in Table 1. MicroBlaze Processor DCM Phase Shift Logic OPB_Clk GPIO_Data DCM OPB GPIO OPB MCH OPB DDR FB_Clk OPB UART Lite Figure 2: Reference System Block Diagram X977_02_ XAPP977 (v1.1) June 1, 2007

3 Reference System Specifics R Address Map Table 1: Reference System Address Map Peripheral Instance Version Base Address High Address opb_mdm debug_module 2.00.a 0x x4140FFFF lmb_bram_if_cntlr dlmb_cntlr 1.00b 0x x00001FFF lmb_bram_if_cntlr ilmb_cntlr 1.00.b 0x x00001FFF opb_uartlite RS232_DTE 1.00.b 0x x4060FFFF mch_opb_ddr DDR_SDRAM_ 32Mx c 0x x23FFFFFF opb_gpio opb_gpio_ b 0x x4000FFFF The bitstream for this system, download.bit, is available in the ready_for_download/ directory under the project root directory. Although the supplied reference system is specifically targeted to work on the Spartan-3E 1600E Edition development board, it can be modified to work on any other board that contains an FPGA and a DDR memory chip. Due to slightly different functionality of the DCMs from other architectures, it is necessary to review the DCM section of the data sheet for the architecture being targeted and the appropriate modifications made. This application note describes how to go through the process of building a Spartan-3E system through the Base System Builder (BSB), that is available through the Embedded Development Kit (EDK), then modifying that system to find the optimal phase shift for the DDR feedback clock. Building the Initial System Through BSB 1. Start the BSB wizard to create a new EDK project. 2. Either choose one of the boards supported by BSB or create a project for a custom board. Choose the FPGA that is available on the board and define whether the system will use a PowerPC or a MicroBlaze soft processor (the reference system that accompanies this application note provides examples with a MicroBlaze). 3. Choose the frequencies for the reference, processor, and bus clocks (for example, the supplied Spartan-3E reference system has the reference, processor, and OPB clocks set to MHz and the DDR clock set to MHz). If MHz is chosen for the reference frequency, then the DDR clock will be set to MHz. Note: The methodology used here for determining the optimum phase shift value is dependent on the clock period of the DDR, so any variation in DDR clock period will require recalculation of the VARIABLE phase shift steps and MIN and MAX valid phase shift range. This is explained in more detail in a later section. 4. Although no debug module is needed for this system, it can be added if desired. 5. Add a BRAM block on OPB or PLB or LMB. The supplied reference systems uses 16KB of BRAM on the LMB. Note: The reason why it is imperative that this application is run out of local BRAM is that at certain phase shifts the data reads from the DDR memory will fail. If the application resided in DDR memory, the microprocessor would not be able to fetch instructions and the application would hang. 6. The other peripherals that are needed to run this application are a DDR memory controller, a UART, and a GPIO core. a. Set up the DDR controller parameters so that they correspond to the parameters of the DDR chip. XAPP977 (v1.1) June 1,

4 R Reference System Specifics b. This reference system uses a UART Lite attached to the OPB. The sole purpose of the UART is to communicate the optimal phase shift value and passing range to the user through a HyperTerminal. c. The GPIO core is used to control and determine the status of the DCM phase shift logic via the software application. Note: More details for setting up the parameters and ports for each core will be provided in the next section. 7. Additional peripherals can also be added to the system, but are not necessary to run the phase shifting application. 8. Direct STDIN and STDOUT to the UART receive and transmit ports. 9. Select the Memory test option to have Base System Builder create a sample application and a linker script. 10. Make sure that the instructions, data and the stack for the application program are all contained within the processor local memory block or BRAM. 11. Review the summary of the system created and select Generate. 12. The initial base system has been created and can be modified to run the application that determines the optimal phase shift for the DDR memory feedback clock. Note: If the system was created for a custom board, be sure to edit the system constraints file, data/system.ucf, to lock down the UART and DDR pins. Additionally, the correct position number of the FPGA in the JTAG chain in etc/download.cmd (default is 1) may have to be set. Although not necessary, it is a good idea to build this initial system and run the sample Memory application built by BSB to make sure that the system is set up correctly and all the location constraints are what they should be. Modifications Required to the Initial System The initial build does not have to be identical to the one described in the previous section, however it must have a processor, local memory, a DDR controller, a UART, and a GPIO core. This section describes what is needed to modify a BSB generated Spartan-3E system. It describes what must be modified to add in the logic, cores, parameters, and connections needed for the optimum phase shift application and that are not selectable through the BSB. It involves changing the clocking so that the phase shifting of the DCM, which is fed by the DDR feedback clock, is variable and connects the DCM phase shifting control inputs/outputs of the DCM to the ports of the GPIO core and the custom phase shift logic core. The next section will detail how to change the sample application so that it performs the phase shifting by controlling the outputs of the GPIO. Note: Because of the high fanout for OPB_Rst, the BSB-generated system may fail timing for some of the reset paths. It is recommended to use the Processor System Reset Module because this helps with fanout of the resets to the buses and the peripheral cores. The included reference design uses the Processor System Reset Module core to provide a more robust reset strategy. This core is available in the EDK tools in the IP Catalog Library under Reset Control. The inclusion of this core is not described in this document but the user can refer to the included reference design for example port connections and parameter settings for this core. How to Modify the Clocking Structure and Other Related Hardware There is a custom core included in the design project that has logic for controlling the DCM Phase Shifter which must be incorporated into the design. Also, there is miscellaneous utility logic that must be added to connect signals from the GPIO to the DCMs. Adding the Custom Phase Shifter Control Logic Core to the Design 1. To modify the clocking structure, copy the entire DCM Phase Shift Logic core, dcm_phase_shift_logic_v1_00_a, from the <project>/pcores/ area of the included reference system to the <project>/pcores/ area of the user project. 4 XAPP977 (v1.1) June 1, 2007

5 Reference System Specifics R 2. In the IP Catalog tab of the Project Information Area window under the Project Repository Section, add the dcm_phase_shift_logic core by right clicking and selecting the Add IP option as shown in Figure 3. If dcm_phase_shift_logic does not appear in the list of available cores, XPS must be re-synced by selecting Project -> Re-scan User Repository. Figure 3: Adding the DCM Phase Shift Logic Core to the Design X977_3_ Adding the Utility Logic to the Design 1. The utility logic that is needed consists of an AND function, which is added when using the Utility Reduced Logic core, and an INVERTER using a Utility Vector Logic core. 2. Go to the IP Catalog tab of the Project Information Area window under the Utility Section and add the util_reduced_logic core by right clicking and selecting the Add IP option. Add in the util_vector_logic in the same way as shown in Figure 4. Figure 4: Adding the Utility Logic Cores to the Design X977_4_ Connecting the Modules for Dynamic Phase Shifting The diagram in Figure 5 illustrates how the connections are made between the various modules to control the DCM phase shifter. This configuration is representative of the supplied XAPP977 (v1.1) June 1,

6 R Reference System Specifics SP3E1600E reference system. Use this diagram as an aid to make the proper connections between the modules in the following sections. DCM Phase Shift Logic CH1 CH2 GPIO DOUT_0 DOUT_1 DOUT_2 DOUT_3 DIN_0 DIN_1 DIN_2 DIN_3 GPIO CH1 Data Reg = 0x GPIO CH2 Data Reg = 0x sys_clk_s Gnd PSIn PSInDec PSDone_Rst PSDone_Reg PSDONE CLK (dps_sw_rst) dcm_1_lock PS_En PSINCDEC AND PSEN PSINCDEC PSDONE PSCLK RST DCM_2 LOCK X977_05_ Figure 5: DCM Phase Shift Logic Control for the SP3E1600E Design Configuring and Adding Ports to the DCM for Phase Shifting This reference design uses three DCMs to supply clocks and control signals to the following embedded components: DCM 0 - MicroBlaze clock, bus clocks for the OPB and LMB, peripheral clocks for all peripherals, except for the MCH OPB DDR and the custom DCM Phase Shift Logic core DCM 1 - clocks to the MCH OPB DDR controller DCM 2 - DDR clocks for the 90 and 270 degree phase shifted clocks, the DDR feedback clock, and the Phase Shifter is used for this DCM Note: In this reference system a MCH OPB DDR memory controller is used. The DDR Clock Period is set to 7.5ns. For clocking structure and supported clock configurations of the MCH OPB DDR memory controller, refer to the DDR Clocking section of the MCH OPB DDR SDRAM Controller Product Specification. For DCM 2, the parameters needed to set up the dynamic phase shifting capability are as shown in Table 2. Table 2: Clocks Module Parameters Parameter C_CLKOUT_PHASE_SHIFT Description This sets the phase shifter in VARIABLE mode which allows the user to adjust the phase shift of this DCM on-the-fly, in this case using a software application running on the MicroBlaze embedded processor. 6 XAPP977 (v1.1) June 1, 2007

7 Reference System Specifics R Table 2: Clocks Module Parameters (Contd) Parameter C_PHASE_SHIFT Description This parameter pre-loads the DCM Phase Shifter with a starting phase shift value which must align with the starting value of the phase shift counter in the software application so that the code will remain synchronized with the Phase Shifter. To set these parameters using the GUI, right click on the dcm_2 module to open the Configure IP menu option for the DCM module. Use the pull-down menu selections to set the parameters correctly as shown in Figure 6. Figure 6: DCM Phase Shift Parameter Settings X977_06_ The ports and descriptions for the DCM Phase Shifter that must be connected are shown in Table 3 and are also highlighted in Figure 7 for the DCM and in Figure 15 for the DCM Phase Shift Logic core. XAPP977 (v1.1) June 1,

8 R Reference System Specifics Table 3: DCM Phase Shifter Ports and Connections DCM Port Name DCM Phase Shift Logic Port Name Description PSEN PS_En This signal enables the Phase Shifter for either increment or decrement operation and must be asserted coincident with the PSINCDEC signal. PSINCDEC PSINCDEC This signal tells the Phase Shifter whether to increment or decrement on each enabled PSCLK signal. PSCLK sys_clk_s The slowest synchronous clock for incrementing or decrementing the Phase Shifter one phase shift step at a time. PSDONE PSDONE This signal needs to be polled by the software application to determine when the Phase Shifter has completed each increment or decrement operation and is stable at the updated phase shift value. LOCKED GPIO2_in This signal needs to be polled by the software application to determine when the DCM is locked, after the SW Reset. Note: The Spartan-3E and Spartan-3A DCM Phase Shifter does not have a PHASE-SHIFT OVERFLOW status bit. Other Xilinx FPGAs do have this status bit which can be used to determine if the Phase Shifter has gone outside it s valid MIN or MAX phase shift range. For the Spartan-3E implementation the phase shifter count is monitored in the software application. See the Spartan-3E FPGA Family: Complete Data Sheet for more information. Figure 7: DCM Phase Shifter Port Connections X977_7_ XAPP977 (v1.1) June 1, 2007

9 Reference System Specifics R Configuring and Adding Ports to the GPIO for Phase Shifting Control GPIO Channels 1 and 2 are used in this application. Channel 1 is used to output control signals to the custom DCM Phase Shift Control Logic. Four bits from this channel are used for control. Channel 2 is used as input only to sense the control signals from the DCM Phase Shift Control Logic. Only two of the four bits for Channel 2 are used as inputs. The other two unused inputs are tied to ground. See Figure 5 for the connection details. Some GPIO core parameters differ from a basic BSB build. Set the GPIO parameters as shown in Table 4. Table 4: GPIO Core Parameters Parameter Description C_IS_DUAL Set to 1: Sets GPIO to use both channels 1 and 2. C_GPIO_WIDTH C_IS_BIDIR_2 C_ALL_INPUTS_2 Set to 4: The channel width parameter applies to both channels even though Channel 2 is only using 2 of the 4 I/Os. Set to 0: Channel 2 is not Bi-directional in this case. Set to 1: Channel 2 is set to input only mode in this case. To set these parameters through the GUI, right click on the opb_gpio core to open the Configure IP menu option for the GPIO core. Select Common under the User tab and check the box for Enable Channel 2. Use the pull-down menu selection to set the GPIO Data Bus Width parameter to 4 as shown in Figure 8. Figure 8: GPIO Common Parameter Settings XAPP977 (v1.1) June 1,

10 R Reference System Specifics Select Channel 1 under the User tab and use the pull-down menu to select the parameters as shown in Figure 9. Then click OK. Figure 9: GPIO Channel 1 Parameter Settings X977_09_ Select Channel 2 under the User tab and use the pull-down menu to select the parameters as shown in Figure 10. Then click OK. Figure 10: GPIO Channel 2 Parameter Settings X977_10_ XAPP977 (v1.1) June 1, 2007

11 Reference System Specifics R Connect the GPIO_d_out and GPIO2_in Ports as shown in Figure 11, and click OK. Note: Tie last two opb_gpio input signals (gpio_din2 & gpio_din3) to ground by using the signal name format 0b0 for each input as shown by the arrows.. Figure 11: GPIO Port Connections X977_11_ Configuring and Connecting Ports for the Utility Logic Set up the util_reduced_logic core parameters to create a 2-bit AND function are as shown in Table 5. Table 5: Utility Logic (util_reduced_logic) Parameters Parameter Description C_OPERATION C_SIZE Set to and function. Set to 2: for 2 inputs. XAPP977 (v1.1) June 1,

12 R Reference System Specifics To set these parameters through the GUI, right click on the util_reduced_logic core to open the Configure IP menu option. Use the pull-down menu to select the The Vector Operation to Perform parameter to and, and set the Size of The Vector parameter to 2 as shown in Figure 12. Then click OK. Figure 12: Utility Reduced Logic Core Parameters X977_12_ Set up the util_vector_logic core parameters to create an INVERTER function are as shown in Table 6. Table 6: Utility Logic (util_vector_logic) Parameters Parameter Description C_OPERATION C_SIZE Set to not function. Set to 1: for 1 input XAPP977 (v1.1) June 1, 2007

13 Reference System Specifics R To set these parameters through the GUI, right click on the util_vector_logic core to open the Configure IP menu option. Use the pull-down menu selection to set the The Vector Operation to Perform parameter to not, and set the Size of The Vector parameter to 1 as shown in Figure 13. Then click OK. Figure 13: Utility Vector Logic Core Parameters X977_13_ The Ports and descriptions for the util_vector_logic that must be connected are shown in Table 7 and highlighted in Figure 14. Table 7: Utility Logic (util_vector_logic) Ports and Connections Utility Logic Port Name Connects to Port Description Op1 GPIO_d_out gpio_dout3 port: This is also the dps_sw_rst signal (software reset to DCM 2). Res Op1 Input on the util_reduced_logic core: This signal is the inverted signal, dps_sw_rst_n. The Ports and descriptions for the util_reduced_logic that must be connected are shown in Table 8 and are also highlighted in Figure 14. XAPP977 (v1.1) June 1,

14 R Reference System Specifics Table 8: Utility Logic (util_reduced_logic) Ports and Connections Utility Logic Port Name Connects to Port Description Op1 Res 1st input of 2-input vector connecting dps_sw_rst_n from util_vector_logic. Op1 LOCK 2nd input of 2-input vector connecting dcm_1_lock from DCM 1. Res RST RST on DCM 2 (dcm_2_rst) - This logic allows DCM 2 to be reset by either dcm_1_lock or the software reset signal dps_sw_rst Figure 14: Utility Logic Cores Port Connections X977_14_ Port Connections of the DCM Phase Shift Logic Core for Phase Shifting Control A custom logic core, dcm_phase_shift_logic, was created to use in conjunction with the GPIO core for controlling the DCM Phase Shifter with the software application. See Figure 5 for the connection details. Connect the remaining ports listed below in Table 9 for the dcm_phase_shift_logic core as shown in Figure 15. Table 9: DCM Phase Shift Logic Core Ports and Connections Utility Logic Port Name Connects to Port Description PS_In GPIO_d_out Connects to gpio_dout0 on the opb_gpio core PSIncDec GPIO_d_out Connects to gpio_dout1 on the opb_gpio core PSDONE_Rst GPIO_d_out Connects to gpio_dout2 on the opb_gpio core PSDONE_Reg GPIO2_in Connects to gpio_din0 on the opb_gpio core 14 XAPP977 (v1.1) June 1, 2007

15 Reference System Specifics R Table 9: DCM Phase Shift Logic Core Ports and Connections Utility Logic Connects to Port Description Port Name Sys_clk sys_clk_s OPB clock from the DCM Sys_reset sys_rst_s If not using a Processor System Reset Module in the design, use BSB-generated sys_rst_s for the Port connection of Sys_reset Figure 15: DCM Phase Shift Logic Core Port Connections X977_15_ DCM Phase Shifter Specifics This section provides a brief overview of the operation of the DCM Phase Shifter as it applies to this application. The Phase Shifter unit provides fine phase shift control of the nine DCM outputs. The PS unit accomplishes this by introducing a fine phase shift delay (TPS) between the CLKFB and CLKIN signals inside the DLL unit. There are 2 modes of operation, FIXED phase shift mode and VARIABLE phase shift mode. As stated before, this application uses VARIABLE phase shift mode so that the Phase Shifter can be controlled dynamically. Several of the parameters of the Phase Shifter are applicable to this discussion to better understand the interaction between the software application and the hardware which controls the phase of the DDR clocks relative to the feedback clock. 1. The C_PHASE_SHIFT parameter value configured in the design for the DDR feedback DCM must match the StartingValue entered in the software application, otherwise the DCM Phase Shifter value will not be synchronized with the application. 2. Xilinx does not guarantee correct phase shifter operation outside the phase shift range defined by the MIN and MAX calculations. 3. Be aware that the VARIABLE phase shift feature could operate differently from architecture to architecture. Always refer to the Data Sheet for the specific Xilinx FPGA Family being used in the design. A C_PHASE_SHIFT value of 0 indicates that there is no phase delay between the feedback clock going to the DDR and the clocks output from the DDR at the DCM. XAPP977 (v1.1) June 1,

16 R Reference System Specifics For this reference system it has been determined, through experimentation, that the optimum Phase Shift value for the SP3E1600E Development board is approximately 50. This value is pre-loaded into the attached reference design under the C_PHASE_SHIFT parameter for the DDR feedback DCM. It is best to start with a value as close as possible to the midpoint of the passing range for a given system board. If the Starting Phase Shift value is not within the passing range for the system board being tested, the software application may not be able to function correctly. For help in calculating the approximate value for the board being tested, consult Answer Record #19385, How do I Determine EDK DDR Controller Timing?. When the DCM is configured in a variable phase-shift mode, the phase can be dynamically shifted in the positive or negative direction. With each phase increment the phase-shift unit adds one DCM_DELAY_STEP of phase-shift to all nine DCM outputs. With each phase decrement, the phase-shift unit subtracts one DCM_DELAY_STEP of phase-shift from all nine DCM outputs. The maximum number of DCM_DELAY_STEPs allowed in each direction is a function of the frequency and can be derived from the following formula taken from the Spartan-3E and Spartan-3A Data Sheets: MAX_STEPS = +/-[INTEGER(20 * (TCLKIN - 3 ns))] For the included Spartan-3E reference system, operating at a DDR clock period of 7.5 ns, the MAX_STEPS = +/- 90. These values are used in the software application to keep track of end-ofrange limits for the phase shift counters. The maximum and minimum variable phase-shift (in picoseconds) in each direction is a function of the MAX_STEPS and the minimum/ maximum value of one phase-shift unit, or DCM_DELAY_STEP. The min and max phase-shift range is defined as: FINE_SHIFT_RANGE_MIN = +/-[MAX_STEPS * DCM_DELAY_STEP_MIN] FINE_SHIFT_RANGE_MAX = +/-[MAX_STEPS * DCM_DELAY_STEP_MAX] The phase shift step in VARIABLE mode is 20 ps and 40 ps, for the DCM_DELAY_STEP_MIN and DCM_DELAY_STEP_MAX, respectively, as per the Spartan-3E FPGA Family: Complete Data Sheet. Using these numbers in the above equations yields values of: FINE_SHIFT_RANGE_MIN = +/ ps or 1.8 ns FINE_SHIFT_RANGE_MAX = +/ ps or 3.6 ns For this design running at a DDR clock frequency of MHz on the SP3E1600E Development board, the FIXED mode Phase Shift value of 50 represents approximately 1.5 ns of positive delay between the feedback clock and the DDR clock output, as per the following equation: Tdelay50(ns) = (NUMSTEPS / MAXSTEPS) * Tddrclk = (50 / 256) * 7.5 = 1.46 ns The Software Application It is assumed that the initial system has been built and that it has a sample memory test application that accompanies it. Also, the compiler options are assumed to be set so that the BRAMs are initialized at build time. If the initial system was created through BSB and a sample application was created (as instructed in the building of the initial system section), this is not a concern as a linker script is created automatically. The linker script sets up all the compile and link time options. If a linker script does not already exist, it is necessary to either set the compiler options or create a linker script to make sure that the application is compiled correctly and that it is initialized into the correct area of the BRAM XAPP977 (v1.1) June 1, 2007

17 Executing the Reference System R The sample application that was created by BSB must be either modified or replaced by the software application from the reference system that accompanies this application note. To replace the BSB software application source code with the completed one, copy PhaseShift_Memory/src/PhaseShift_App.c from the included reference system to the TestApp_Memory/src/ area of the new project. Remove the TestApp_Memory.c file that was created by BSB by right clicking on the source file under the Sources menu option and selecting Remove. Add the new C file to the project by right clicking on the Sources option, then clicking on the Add Existing File option, and selecting the proper file. The software application described above is executed out of internal BRAM. Phase Shift Software Application Flow The Phase Shift software application source code is simple to follow and it is fully commented so that the user knows what is being done at each step in the program. The following steps outline the basic flow of the MAIN section of the software application: 1. Set the Starting Phase value to match the parameter set in the DCM Phase Shifter at configuration and as close to the midpoint of the passing range as possible Note: In the case of the SP3E1600E Development board the value is set to Reset the DDR feedback clock DCM to load in the post configuration phase shift value a. Wait for the DCM to lock 3. Loop searching for Low End of passing range by decrementing the phase shift value and testing DDR memory at each iteration until reaching either the first failing value or the Minimum Low Range value a. Decrement the Phase Shifter by one and wait for PSDone to be set b. Run the simple DDR memory test suite (the application performs 32-bit, 16-bit and 8- bit memory tests) c. If memory tests all pass decrement until a failure occurs or the Minimum Low Range value is reached 4. Reset the DDR feedback clock DCM to load in the post configuration phase shift value a. Wait for the DCM to lock 5. Loop searching for the High End of the passing range by incrementing the phase shift value and testing DDR memory at each iteration until reaching either the first failing value or the Maximum High Range value a. Increment the Phase Shifter by one, then wait for PSDone to be set b. Run the simple DDR memory test suite (the application performs 32-bit, 16-bit and 8- bit memory tests) c. If memory tests all pass, increment until a failure occurs or the Maximum High Range value is reached 6. Calculate the Optimum phase shift value 7. Decrement to the Optimum phase value for the DDR feedback clock DCM to leave the Phase Shifter in the optimum condition 8. Print out the passing range and the recommended Optimum phase shift value for this system board to the HyperTerminal Executing the Reference System Follow these steps to set up the HyperTerminal to monitor the process of the software application. 1. Using HyperTerminal or a similar serial communications utility, map the utility's operation to the physical COM port to be used. 2. Connect the board's serial DTE port to this COM port. XAPP977 (v1.1) June 1,

18 R Executing the Reference System 3. Set the HyperTerminal to the Bits per second of , Data Bits to 8, Parity to None, and Flow Control to None. Refer to Figure 16 for the proper settings. X977_16_ Figure 16: HyperTerminal Settings Executing the Reference System using the Pre-Built Bitstream and the Compiled Software Applications Use the following steps to execute the system using files inside the ready_for_download/ directory under the project root directory. 1. Change directories to the ready_for_download/ directory. 2. Use impact to download the bitstream by using the following command: impact -batch xapp977.cmd 3. Invoke XMD and connect to the MicroBlaze processor by using the following command: xmd -opt xapp977.opt 4. Download the executable by using the following command: dow executable.elf Executing the Reference System from EDK Use the following steps to execute the system using EDK. 1. Open system.xmp inside EDK. 2. Use Hardware Generate Bitstream to generate a bitstream for the system. 3. Download the bitstream to the board with Device Configuration Download Bitstream. 4. Launch XMD with Debug Launch XMD Download the executable by using the following command: 18 XAPP977 (v1.1) June 1, 2007

19 References R dow executable.elf Running the Software Application Use the run command, inside XMD, to run the software application. The status and results of the software application are displayed in the HyperTerminal data screen shown in Figure 17. Figure 17: Phase Shift Software Application Output X977_17_ As can be seen by the output of the software application in Figure 17, the passing range is -4 to 90 and the optimum Phase Shift value is 43, for this case. It is recommended that the FIXED Phase Shift value be set to the value reported. This should be the optimum phase shift value for the system board on which the above application has been run. References Conclusion UG331, Spartan-3 Generation FPGA User Guide (v1.0) DS312, Spartan-3E FPGA Family: Complete Data Sheet (v3.4) Product Specification DS496, MCH OPB DDR SDRAM Controller (v1.0) Product Specification XAPP806, Determining the Optimal DCM Phase Shift for the DDR Feedback Clock (v1.0) This application note describes how to build or modify an embedded processor system that is used for determining the optimal phase shift for the DDR memory feedback clock. The accompanying reference system is built for the Xilinx Spartan-3E 1600E Edition Development board and includes one stand-alone software application. XAPP977 (v1.1) June 1,

20 R Revision History Revision History The following table shows the revision history for this document. Date Version Revision 4/30/ Initial Xilinx release. 6/1/ Updated EDK GUI images XAPP977 (v1.1) June 1, 2007

Reference System: MCH OPB SDRAM with OPB Central DMA Author: James Lucero

Reference System: MCH OPB SDRAM with OPB Central DMA Author: James Lucero Application Note: Embedded Processing XAPP909 (v1.3) June 5, 2007 eference System: MCH OPB SDAM with OPB Central DMA Author: James Lucero Abstract This application note demonstrates the use of the Multi-CHannel

More information

Reference System: MCH OPB EMC with OPB Central DMA Author: Sundararajan Ananthakrishnan

Reference System: MCH OPB EMC with OPB Central DMA Author: Sundararajan Ananthakrishnan Application Note: Embedded Processing XAPP923 (v1.2) June 5, 2007 eference System: MCH OPB EMC with OPB Central DMA Author: Sundararajan Ananthakrishnan Summary This application note demonstrates the use

More information

Reference System: PLB DDR2 with OPB Central DMA Author: James Lucero

Reference System: PLB DDR2 with OPB Central DMA Author: James Lucero Application Note: Embedded Processing XAPP935 (v1.1) June 7, 2007 R Reference System: PLB DDR2 with OPB Central DMA Author: James Lucero Abstract This reference system demonstrates the functionality of

More information

Virtex-4 PowerPC Example Design. UG434 (v1.2) January 17, 2008

Virtex-4 PowerPC Example Design. UG434 (v1.2) January 17, 2008 Virtex-4 PowerPC Example Design R R 2007-2008 Xilinx, Inc. All Rights Reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks

More information

Spartan-3 MicroBlaze Sample Project

Spartan-3 MicroBlaze Sample Project Spartan-3 MicroBlaze Sample Project R 2006 Xilinx, Inc. All Rights Reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are

More information

Reference Design: LogiCORE OPB USB 2.0 Device Author: Geraldine Andrews, Vidhumouli Hunsigida

Reference Design: LogiCORE OPB USB 2.0 Device Author: Geraldine Andrews, Vidhumouli Hunsigida XAPP997 (v1.1) June 14, 2010 Application Note: Embedded Processing eference Design: LogiCOE OPB USB 2.0 Device Author: Geraldine Andrews, Vidhumouli Hunsigida Summary The application note demonstrates

More information

XA Automotive ECU Development Kit

XA Automotive ECU Development Kit Application Note eference System XPS MOST NIC Controller XAPP1054 (v1.0) April 25, 2008 eference System MOST NIC Using the XA Automotive ECU Development Kit Abstract This application note describes a reference

More information

Using Serial Flash on the Xilinx Spartan-3E Starter Board. Overview. Objectives. Version 8.1 February 23, 2006 Bryan H. Fletcher

Using Serial Flash on the Xilinx Spartan-3E Starter Board. Overview. Objectives. Version 8.1 February 23, 2006 Bryan H. Fletcher Using Serial Flash on the Xilinx Spartan-3E Starter Board Version 8.1 February 23, 2006 Bryan H. Fletcher Overview The Xilinx Spartan-3E FPGA features the ability to configure from standard serial flash

More information

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University Prof. Sunil Khatri TA: Monther Abusultan (Lab exercises created by A. Targhetta / P. Gratz)

More information

OPB General Purpose Input/Output (GPIO) (v3.01b)

OPB General Purpose Input/Output (GPIO) (v3.01b) 0 OPB General Purpose Input/Output (GPIO) (v3.01b) DS466 August 29, 2006 0 0 Introduction This document describes the specifications for the General Purpose Input/Output (GPIO) core for the On Chip Processor

More information

Discontinued IP. OPB General Purpose Input/Output (GPIO) (v3.01b) Introduction. Features. LogiCORE Facts

Discontinued IP. OPB General Purpose Input/Output (GPIO) (v3.01b) Introduction. Features. LogiCORE Facts 0 OPB General Purpose Input/Output (GPIO) (v3.01b) DS466 December 1, 2005 0 0 Introduction This document describes the specifications for the General Purpose Input/Output (GPIO) core for the On Chip Processor

More information

SP605 Standalone Applications

SP605 Standalone Applications SP605 Standalone Applications July 2011 Copyright 2011 Xilinx XTP064 Revision History Date Version Description 07/06/11 13.2 Up-rev 13.1 GPIO_HDR Design to 13.2. 03/01/11 13.1 Up-Rev 12.4 GPIO_HDR Design

More information

Module 2: Adding IP to a Hardware Design

Module 2: Adding IP to a Hardware Design For Academic Use Only Systemy wbudowane laboratorium Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Zakład InŜynierii Komputerowej Module

More information

SP601 Standalone Applications

SP601 Standalone Applications SP601 Standalone Applications December 2009 Copyright 2009 Xilinx XTP053 Note: This presentation applies to the SP601 Overview Xilinx SP601 Board Software Requirements SP601 Setup Multi-pin Wake-up GPIO

More information

Lab 2: Adding IP to a Hardware Design Lab

Lab 2: Adding IP to a Hardware Design Lab For Academic Use Only Lab 2: Adding IP to a Hardware Design Lab Targeting MicroBlaze on the Spartan -3E Kit This material exempt per Department of Commerce license exception TSU Lab 2: Adding IP to a Hardware

More information

Creating the AVS6LX9MBHP211 MicroBlaze Hardware Platform for the Spartan-6 LX9 MicroBoard Version

Creating the AVS6LX9MBHP211 MicroBlaze Hardware Platform for the Spartan-6 LX9 MicroBoard Version Creating the AVS6LX9MBHP211 MicroBlaze Hardware Platform for the Spartan-6 LX9 MicroBoard Version 13.2.01 Revision History Version Description Date 12.4.01 Initial release for EDK 12.4 09 Mar 2011 12.4.02

More information

Xilinx Platform Studio tutorial

Xilinx Platform Studio tutorial Xilinx Platform Studio tutorial Per.Anderson@cs.lth.se April 12, 2005 This tutorial intend to show you how to create an initial system configuration. From Xilinx Platform Studio(XPS) version 6.1 this has

More information

SP605 Built-In Self Test Flash Application

SP605 Built-In Self Test Flash Application SP605 Built-In Self Test Flash Application March 2011 Copyright 2011 Xilinx XTP062 Revision History Date Version Description 03/01/11 13.1 Up-rev 12.4 BIST Design to 13.1. 12/21/10 12.4 Up-rev 12.3 BIST

More information

Data Side OCM Bus v1.0 (v2.00b)

Data Side OCM Bus v1.0 (v2.00b) 0 Data Side OCM Bus v1.0 (v2.00b) DS480 January 23, 2007 0 0 Introduction The DSOCM_V10 core is a data-side On-Chip Memory (OCM) bus interconnect core. The core connects the PowerPC 405 data-side OCM interface

More information

ML605 Built-In Self Test Flash Application

ML605 Built-In Self Test Flash Application ML605 Built-In Self Test Flash Application October 2010 Copyright 2010 Xilinx XTP056 Revision History Date Version Description 10/05/10 12.3 Up-rev 12.2 BIST Design to 12.3. Added AR38127 Added AR38209

More information

Utility Reduced Logic (v1.00a)

Utility Reduced Logic (v1.00a) DS482 December 2, 2009 Introduction The Utility Reduced Logic core applies a logic reduction function over an input vector to generate a single bit result. The core is intended as glue logic between peripherals.

More information

Getting Started with the MicroBlaze Development Kit - Spartan-3E 1600E Edition. UG258 (v1.3) November 30, 2007

Getting Started with the MicroBlaze Development Kit - Spartan-3E 1600E Edition. UG258 (v1.3) November 30, 2007 Getting Started with the MicroBlaze Development Kit - Spartan-3E 1600E Edition R R Xilinx is disclosing this Document and Intellectual Property (hereinafter the Design ) to you for use in the development

More information

Benchmarking the Performance of the Virtex-4 10/100/1000 TEMAC System Author: Kris Chaplin

Benchmarking the Performance of the Virtex-4 10/100/1000 TEMAC System Author: Kris Chaplin Application Note: Embedded Processing XAPP1023 (v1.0) October 3, 2007 Benchmarking the Performance of the Virtex-4 10/100/1000 TEMAC System Author: Kris Chaplin Abstract This application note provides

More information

Spartan-6 LX9 MicroBoard Embedded Tutorial. Tutorial 1 Creating an AXI-based Embedded System

Spartan-6 LX9 MicroBoard Embedded Tutorial. Tutorial 1 Creating an AXI-based Embedded System Spartan-6 LX9 MicroBoard Embedded Tutorial Tutorial 1 Creating an AXI-based Embedded System Version 13.1.01 Revision History Version Description Date 13.1.01 Initial release for EDK 13.1 5/15/2011 Table

More information

Summary. Introduction. Application Note: Virtex, Virtex-E, Spartan-IIE, Spartan-3, Virtex-II, Virtex-II Pro. XAPP152 (v2.1) September 17, 2003

Summary. Introduction. Application Note: Virtex, Virtex-E, Spartan-IIE, Spartan-3, Virtex-II, Virtex-II Pro. XAPP152 (v2.1) September 17, 2003 Application Note: Virtex, Virtex-E, Spartan-IIE, Spartan-3, Virtex-II, Virtex-II Pro Xilinx Tools: The Estimator XAPP152 (v2.1) September 17, 2003 Summary This application note is offered as complementary

More information

ML410 BSB DDR2 Design Creation Using 8.2i SP1 EDK Base System Builder (BSB) April

ML410 BSB DDR2 Design Creation Using 8.2i SP1 EDK Base System Builder (BSB) April ML40 BSB DDR2 Design Creation Using 8.2i SP EDK Base System Builder (BSB) April 2007 Overview Hardware Setup Software Requirements Create a BSB DDR2 System Build (BSB) in EDK Generate a Bitstream Transfer

More information

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University Prof. Sunil P Khatri (Lab exercise created and tested by Ramu Endluri, He Zhou, Andrew Douglass

More information

System Ace Tutorial 03/11/2008

System Ace Tutorial 03/11/2008 System Ace Tutorial This is a basic System Ace tutorial that demonstrates two methods to produce a System ACE file; the use of the System Ace File Generator (GenACE) and through IMPACT. Also, the steps

More information

On the Fly Reconfiguration with CoolRunner-II CPLDs

On the Fly Reconfiguration with CoolRunner-II CPLDs Application Note: CoolRunner-II CPLDs XAPP388 (v1.2) May 15, 2003 R On the Fly Reconfiguration with CoolRunner-II CPLDs Summary This application notes describes the CoolRunner -II CPLD capability called

More information

BFM Simulation in Platform Studio

BFM Simulation in Platform Studio BFM Simulation in Platform Studio Introduction This document describes the basics of Bus Functional Model simulation within Xilinx Platform Studio. The following topics are included: Introduction Bus Functional

More information

Interrupt Creation and Debug on ML403

Interrupt Creation and Debug on ML403 Interrupt Creation and Debug on ML403 This tutorial will demonstrate the different debugging techniques used for debugging Interrupt based applications. To show this we will build a simple Interrupt application

More information

PS2 VGA Peripheral Based Arithmetic Application Using Micro Blaze Processor

PS2 VGA Peripheral Based Arithmetic Application Using Micro Blaze Processor PS2 VGA Peripheral Based Arithmetic Application Using Micro Blaze Processor K.Rani Rudramma 1, B.Murali Krihna 2 1 Assosiate Professor,Dept of E.C.E, Lakireddy Bali Reddy Engineering College, Mylavaram

More information

Dual Processor Reference Design Suite Author: Vasanth Asokan

Dual Processor Reference Design Suite Author: Vasanth Asokan Application Note: Embedded Processing XAPP996 (v1.3) October 6, 2008 Dual Processor eference Design Suite Author: Vasanth Asokan Summary This is the Xilinx Dual Processor eference Designs suite. The designs

More information

Module 3: Adding Custom IP to an Embedded System

Module 3: Adding Custom IP to an Embedded System For Academic Use Only Systemy wbudowane laboratorium Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Zakład InŜynierii Komputerowej Module

More information

Virtex-5 FXT PowerPC PowerPC 440 and MicroBlaze 440

Virtex-5 FXT PowerPC PowerPC 440 and MicroBlaze 440 Virtex-5 FXT PowerPC PowerPC 440 and MicroBlaze 440 and Edition MicroBlaze Kit Reference Systems [Guide Subtitle] [optional] [optional] R R Xilinx is disclosing this user guide, manual, release note, and/or

More information

Lab 1: Simple Hardware Design

Lab 1: Simple Hardware Design For Academic Use Only Lab 1: Simple Hardware Design Targeting MicroBlaze on Spartan -3E Starter Kit This material exempt per Department of Commerce license exception TSU Introduction Objectives Procedure

More information

Building an Embedded Processor System on Xilinx NEXYS3 FPGA and Profiling an Application: A Tutorial

Building an Embedded Processor System on Xilinx NEXYS3 FPGA and Profiling an Application: A Tutorial Building an Embedded Processor System on Xilinx NEXYS3 FPGA and Profiling an Application: A Tutorial Introduction: Modern FPGA s are equipped with a lot of resources that allow them to hold large digital

More information

ML605 Built-In Self Test Flash Application

ML605 Built-In Self Test Flash Application ML605 Built-In Self Test Flash Application July 2011 Copyright 2011 Xilinx XTP056 Revision History Date Version Description 07/06/11 13.2 Up-rev 13.1 BIST Design to 13.2. 03/01/11 13.1 Up-rev 12.4 BIST

More information

Utility Bus Split (v1.00a)

Utility Bus Split (v1.00a) DS484 December 2, 2009 Introduction The Utility Bus Split core splits a bus into smaller buses using the Xilinx Platform Studio (XPS). The core splits one input bus into two output buses which serve as

More information

Lab 3: Adding Custom IP to an Embedded System Lab

Lab 3: Adding Custom IP to an Embedded System Lab For Academic Use Only Lab 3: Adding Custom IP to an Embedded System Lab Targeting MicroBlaze on Spartan -3E Starter Kit This material exempt per Department of Commerce license exception TSU Lab 3: Adding

More information

Introduction to Zynq

Introduction to Zynq Introduction to Zynq Lab 2 PS Config Part 1 Hello World October 2012 Version 02 Copyright 2012 Avnet Inc. All rights reserved Table of Contents Table of Contents... 2 Lab 2 Objectives... 3 Experiment 1:

More information

Instantiation. Verification. Simulation. Synthesis

Instantiation. Verification. Simulation. Synthesis 0 XPS Mailbox (v2.00a) DS632 June 24, 2009 0 0 Introduction In a multiprocessor environment, the processors need to communicate data with each other. The easiest method is to set up inter-processor communication

More information

Microblaze for Linux Howto

Microblaze for Linux Howto Microblaze for Linux Howto This tutorial shows how to create a Microblaze system for Linux using Xilinx XPS on Windows. The design is targeting the Spartan-6 Pipistello LX45 development board using ISE

More information

LogiCORE IP Mailbox (v1.00a)

LogiCORE IP Mailbox (v1.00a) DS776 September 21, 2010 Introduction In a multiprocessor environment, the processors need to communicate data with each other. The easiest method is to set up inter-processor communication through a mailbox.

More information

Creating High-Speed Memory Interfaces with Virtex-II and Virtex-II Pro FPGAs Author: Nagesh Gupta, Maria George

Creating High-Speed Memory Interfaces with Virtex-II and Virtex-II Pro FPGAs Author: Nagesh Gupta, Maria George XAPP688 (v1.2) May 3, 2004 R Application Note: Virtex-II Families Creating High-Speed Memory Interfaces with Virtex-II and Virtex-II Pro FPGAs Author: Nagesh Gupta, Maria George Summary Designing high-speed

More information

Creating an OPB IPIF-based IP and Using it in EDK Author: Mounir Maaref

Creating an OPB IPIF-based IP and Using it in EDK Author: Mounir Maaref Application Note: Embedded Processing XAPP967 (v1.1) February 26, 2007 Creating an OPB IPIF-based IP and Using it in EDK Author: Mounir Maaref Abstract Adding custom logic to an embedded design targeting

More information

Avnet S6LX16 Evaluation Board and Maxim DAC/ADC FMC Module Reference Design

Avnet S6LX16 Evaluation Board and Maxim DAC/ADC FMC Module Reference Design Avnet S6LX16 Evaluation Board and Maxim DAC/ADC FMC Module Reference Design By Nasser Poureh, Avnet Technical Marketing Manager Mohammad Qazi, Maxim Application Engineer, SP&C Version 1.0 August 2010 1

More information

Hello World on the ATLYS Board. Building the Hardware

Hello World on the ATLYS Board. Building the Hardware 1. Start Xilinx Platform Studio Hello World on the ATLYS Board Building the Hardware 2. Click on Create New Blank Project Using Base System Builder For the project file field, browse to the directory where

More information

Hardware In The Loop (HIL) Simulation for the Zynq-7000 All Programmable SoC Author: Umang Parekh

Hardware In The Loop (HIL) Simulation for the Zynq-7000 All Programmable SoC Author: Umang Parekh Application Note: Zynq-7000 AP SoC XAPP744 (v1.0.2) November 2, 2012 Hardware In The Loop (HIL) Simulation for the Zynq-7000 All Programmable SoC Author: Umang Parekh Summary The Zynq -7000 All Programmable

More information

ML410 BSB Design Adding the PLB TEMAC with RGMII Using EDK 8.2i SP1. April

ML410 BSB Design Adding the PLB TEMAC with RGMII Using EDK 8.2i SP1. April ML410 BSB Design Adding the PLB TEMAC with RGMII Using EDK 8.2i SP1 April 2007 Overview Hardware Setup Software Requirements Generate a Bitstream Transfer the Bitstream onto the FPGA Loading a Bootloop

More information

EDK 7.1 PowerPC Tutorial in Virtex-4

EDK 7.1 PowerPC Tutorial in Virtex-4 Objectives This tutorial will demonstrate process of creating and testing a PowerPC system design using the Embedded Development Kit (EDK). The tutorial contains these sections: System Requirements PowerPC

More information

UART Interrupt Creation on Spartan 3A

UART Interrupt Creation on Spartan 3A UART Interrupt Creation on Spartan 3A This tutorial will demonstrate the UART Interrupt based application. To show this we will build a simple Interrupt application that will use the hyper-terminal to

More information

AC701 Built-In Self Test Flash Application April 2015

AC701 Built-In Self Test Flash Application April 2015 AC701 Built-In Self Test Flash Application April 2015 XTP194 Revision History Date Version Description 04/30/14 11.0 Recompiled for 2015.1. Removed Ethernet as per CR861391. 11/24/14 10.0 Recompiled for

More information

ISE Simulator (ISim) In-Depth Tutorial. UG682 (v 13.1) March 1, 2011

ISE Simulator (ISim) In-Depth Tutorial. UG682 (v 13.1) March 1, 2011 ISE Simulator (ISim) In-Depth Tutorial Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in the development of designs to operate

More information

Virtex-II SiberBridge Author: Ratima Kataria & the SiberCore Applications Engineering Group

Virtex-II SiberBridge Author: Ratima Kataria & the SiberCore Applications Engineering Group Application Note: Virtex-II Family XAPP254 (v1.1) February 25, 2005 R Author: Ratima Kataria & the SiberCore Applications Engineering Group Summary Designed to be implemented in a Virtex -II FPGA, the

More information

Spartan-6 LX9 MicroBoard Embedded Tutorial. Lab 6 Creating a MicroBlaze SPI Flash Bootloader

Spartan-6 LX9 MicroBoard Embedded Tutorial. Lab 6 Creating a MicroBlaze SPI Flash Bootloader Spartan-6 LX9 MicroBoard Embedded Tutorial Lab 6 Creating a MicroBlaze SPI Flash Bootloader Version 13.1.01 Revision History Version Description Date 13.1.01 Initial release for EDK 13.1 5/17/11 Table

More information

Discontinued IP. Block RAMs

Discontinued IP. Block RAMs PLB General Purpose Input/Output (GPIO) (v1.b) S486 September 15, 25 Introduction This document describes the specifications for the General Purpose Input/Output (GPIO) core for the Processor Local Bus

More information

ML410 VxWorks BSP and System Image Creation for the BSB DDR2 Design Using EDK 8.2i SP1. April

ML410 VxWorks BSP and System Image Creation for the BSB DDR2 Design Using EDK 8.2i SP1. April ML410 VxWorks BSP and System Image Creation for the BSB DDR2 Design Using EDK 8.2i SP1 April 2007 Overview Hardware Setup Software Setup & Requirements Generate VxWorks BSP Create VxWorks Project Create

More information

ML410 VxWorks Workbench BSP and System Image Creation for the BSB Design Using EDK 8.2i SP2. April

ML410 VxWorks Workbench BSP and System Image Creation for the BSB Design Using EDK 8.2i SP2. April ML410 VxWorks Workbench BSP and System Image Creation for the BSB Design Using EDK 8.2i SP2 April 2007 Overview Hardware Setup Software Setup & Requirements Generate VxWorks BSP Create VxWorks Project

More information

LogiCORE IP AXI Master Lite (axi_master_lite) (v1.00a)

LogiCORE IP AXI Master Lite (axi_master_lite) (v1.00a) LogiCORE IP AXI Master Lite (axi_master_lite) (v1.00a) DS836 March 1, 2011 Introduction The AXI Master Lite is an AXI4-compatible LogiCORE IP product. It provides an interface between a user-created IP

More information

EDK Base System Builder (BSB) support for XUPV2P Board. Xilinx University Program

EDK Base System Builder (BSB) support for XUPV2P Board. Xilinx University Program EDK Base System Builder (BSB) support for XUPV2P Board Xilinx University Program What is BSB? The Base System Builder (BSB) wizard is a software tool that help users quickly build a working system targeted

More information

Getting Started Guide with AXM-A30

Getting Started Guide with AXM-A30 Series PMC-VFX70 Virtex-5 Based FPGA PMC Module Getting Started Guide with AXM-A30 ACROMAG INCORPORATED Tel: (248) 295-0310 30765 South Wixom Road Fax: (248) 624-9234 P.O. BOX 437 Wixom, MI 48393-7037

More information

Dynamic Phase Alignment for Networking Applications Author: Tze Yi Yeoh

Dynamic Phase Alignment for Networking Applications Author: Tze Yi Yeoh XAPP7 (v.2) July 2, 25 Application te: Virtex-4 Family Dynamic Phase Alignment for Networking Applications Author: Tze Yi Yeoh Summary This application note describes a dynamic phase alignment (DPA) application

More information

KC705 Si5324 Design October 2012

KC705 Si5324 Design October 2012 KC705 Si5324 Design October 2012 XTP188 Revision History Date Version Description 10/23/12 4.0 Recompiled for 14.3. 07/25/12 3.0 Recompiled for 14.2. Added AR50886. 05/08/12 2.0 Recompiled for 14.1. 02/14/12

More information

ML631 U2 DDR3 MIG Design Creation

ML631 U2 DDR3 MIG Design Creation ML631 U2 DDR3 MIG Design Creation March 2012 Copyright 2012 Xilinx XTP129 Revision History Date Version Description 03/16/12 13.4 Updated for 13.4 10/26/11 13.3 Updated for 13.3. 08/30/11 13.2 Initial

More information

Hardware Design Using EDK

Hardware Design Using EDK Hardware Design Using EDK This material exempt per Department of Commerce license exception TSU 2007 Xilinx, Inc. All Rights Reserved Objectives After completing this module, you will be able to: Describe

More information

AXI Interface Based KC705. Embedded Kit MicroBlaze Processor Subsystem (ISE Design Suite 14.4)

AXI Interface Based KC705. Embedded Kit MicroBlaze Processor Subsystem (ISE Design Suite 14.4) AXI Interface Based KC705 j Embedded Kit MicroBlaze Processor Subsystem (ISE Design Suite 14.4) Software Tutorial Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided

More information

Minimizing Receiver Elastic Buffer Delay in the Virtex-II Pro RocketIO Transceiver Author: Jeremy Kowalczyk

Minimizing Receiver Elastic Buffer Delay in the Virtex-II Pro RocketIO Transceiver Author: Jeremy Kowalczyk XAPP670 (v.0) June 0, 2003 Application Note: Virtex-II Pro Family Minimizing eceiver Elastic Buffer Delay in the Virtex-II Pro ocketio Transceiver Author: Jeremy Kowalczyk Summary This application note

More information

University of Toronto ECE532 Digital Hardware Lab 5: Adding a User-Designed Peripheral

University of Toronto ECE532 Digital Hardware Lab 5: Adding a User-Designed Peripheral Version 1.5 8/16/2004 This lab can be started during Lab 4 and completed during Lab 5, if necessary. Goals Add a user designed peripheral to a basic MicroBlaze system. Demonstrate the required structure

More information

ML631 U1 DDR3 MIG Design Creation

ML631 U1 DDR3 MIG Design Creation ML631 U1 DDR3 MIG Design Creation October 2011 Copyright 2011 Xilinx XTP112 Revision History Date Version Description 10/26/11 13.3 Updated for 13.3. 08/30/11 13.2 Initial version. Copyright 2011 Xilinx,

More information

Running Code Out of the PPC405 Caches

Running Code Out of the PPC405 Caches Running Code Out of the PPC405 Caches The PowerPC 405 Core, included in Virtex-II Pro, contains 16KB Instruction and 16KB Data Cache. A common usage of these caches is pre-loading them with the software

More information

ML410 VxWorks BSP and System Image Creation for the BSB Design Using EDK 8.2i SP1. April

ML410 VxWorks BSP and System Image Creation for the BSB Design Using EDK 8.2i SP1. April ML410 VxWorks BSP and System Image Creation for the BSB Design Using EDK 8.2i SP1 April 2007 Overview Hardware Setup Software Setup & Requirements Generate VxWorks BSP Create VxWorks Project Create VxWorks

More information

SECURE PARTIAL RECONFIGURATION OF FPGAs. Amir S. Zeineddini Kris Gaj

SECURE PARTIAL RECONFIGURATION OF FPGAs. Amir S. Zeineddini Kris Gaj SECURE PARTIAL RECONFIGURATION OF FPGAs Amir S. Zeineddini Kris Gaj Outline FPGAs Security Our scheme Implementation approach Experimental results Conclusions FPGAs SECURITY SRAM FPGA Security Designer/Vendor

More information

LogiCORE IP Device Control Register Bus (DCR) v2.9 (v1.00b)

LogiCORE IP Device Control Register Bus (DCR) v2.9 (v1.00b) LogiCORE IP Device Control Register Bus (DCR) v2.9 (v1.00b) DS402 April 19, 2010 Introduction The Xilinx 32-Bit Device Control Register Bus (DCR), a soft IP core designed for Xilinx FPGAs, provides the

More information

Spartan-6 LX9 MicroBoard Embedded Tutorial. Tutorial 5 Embedded Chipscope Debugging

Spartan-6 LX9 MicroBoard Embedded Tutorial. Tutorial 5 Embedded Chipscope Debugging Spartan-6 LX9 MicroBoard Embedded Tutorial Tutorial 5 Embedded Chipscope Debugging Version 13.1.01 Revision History Version Description Date 13.1.01 Initial release for EDK 13.1 5/17/2011 Table of Contents

More information

LogiCORE IP ChipScope Pro Integrated Controller (ICON) (v1.05a)

LogiCORE IP ChipScope Pro Integrated Controller (ICON) (v1.05a) DS646 June 22, 2011 LogiCORE IP ChipScope Pro Integrated Controller (ICON) (v1.05a) Introduction The LogiCORE IP ChipScope Pro Integrated CONtroller core (ICON) provides an interface between the JTAG Boundary

More information

Introduction to the Altera SOPC Builder Using Verilog Design

Introduction to the Altera SOPC Builder Using Verilog Design Introduction to the Altera SOPC Builder Using Verilog Design This tutorial presents an introduction to Altera s SOPC Builder software, which is used to implement a system that uses the Nios II processor

More information

Fremont (MAXREFDES6#) Nexys 3 Quick Start Guide

Fremont (MAXREFDES6#) Nexys 3 Quick Start Guide Fremont (MAXREFDES6#) Nexys 3 Quick Start Guide Rev 0; 9/13 Maxim Integrated cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim Integrated product.

More information

OPB to PLBV46 Bridge (v1.01a)

OPB to PLBV46 Bridge (v1.01a) 0 OPB to PLBV46 Bridge (v1.01a) DS726 April 24, 2009 0 0 Introduction The On-Chip Peripheral Bus (OPB) to Processor Local Bus (PLB v4.6) Bridge module translates OPB transactions into PLBV46 transactions.

More information

Hardware Design. University of Pannonia Dept. Of Electrical Engineering and Information Systems. MicroBlaze v.8.10 / v.8.20

Hardware Design. University of Pannonia Dept. Of Electrical Engineering and Information Systems. MicroBlaze v.8.10 / v.8.20 University of Pannonia Dept. Of Electrical Engineering and Information Systems Hardware Design MicroBlaze v.8.10 / v.8.20 Instructor: Zsolt Vörösházi, PhD. This material exempt per Department of Commerce

More information

Documentation. Implementation Xilinx ISE v10.1. Simulation

Documentation. Implementation Xilinx ISE v10.1. Simulation DS317 September 19, 2008 Introduction The Xilinx LogiCORE IP Generator is a fully verified first-in first-out () memory queue for applications requiring in-order storage and retrieval. The core provides

More information

1-1 SDK with Zynq EPP

1-1 SDK with Zynq EPP -1 1SDK with Zynq EPP -2 Objectives Generating the processing subsystem with EDK SDK Project Management and Software Flow SDK with Zynq EPP - 1-2 Copyright 2012 Xilinx 2 Generating the processing subsystem

More information

SP601 Built-In Self Test Flash Application

SP601 Built-In Self Test Flash Application SP601 Built-In Self Test Flash Application December 2009 Copyright 2009 Xilinx XTP041 Note: This presentation applies to the SP601 Overview Xilinx SP601 Board Software Requirements SP601 Setup SP601 BIST

More information

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction Introduction to the Altera SOPC Builder Using Verilog Designs 1 Introduction This tutorial presents an introduction to Altera s SOPC Builder software, which is used to implement a system that uses the

More information

Xilinx Vivado/SDK Tutorial

Xilinx Vivado/SDK Tutorial Xilinx Vivado/SDK Tutorial (Laboratory Session 1, EDAN15) Flavius.Gruian@cs.lth.se March 21, 2017 This tutorial shows you how to create and run a simple MicroBlaze-based system on a Digilent Nexys-4 prototyping

More information

Introduction to Embedded System Design using Zynq

Introduction to Embedded System Design using Zynq Introduction to Embedded System Design using Zynq Zynq Vivado 2015.2 Version This material exempt per Department of Commerce license exception TSU Objectives After completing this module, you will be able

More information

Spartan -6 LX9 MicroBoard Web Connectivity On Ramp Tutorial

Spartan -6 LX9 MicroBoard Web Connectivity On Ramp Tutorial Spartan -6 LX9 MicroBoard Web Connectivity On Ramp Tutorial Version 13.2.01 Revision History Version Description Date 13.2.01 Initial release with support for ISE 13.2 tools Aug. 10, 2011 Page 2 of 30

More information

Vivado Design Suite User Guide. Designing IP Subsystems Using IP Integrator

Vivado Design Suite User Guide. Designing IP Subsystems Using IP Integrator Vivado Design Suite User Guide Designing IP Subsystems Using IP Integrator Notice of Disclaimer The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use

More information

Adding the ILA Core to an Existing Design Lab

Adding the ILA Core to an Existing Design Lab Adding the ILA Core to an Existing Introduction This lab consists of adding a ChipScope Pro software ILA core with the Core Inserter tool and debugging a nonfunctioning design. The files for this lab are

More information

System Debug. This material exempt per Department of Commerce license exception TSU Xilinx, Inc. All Rights Reserved

System Debug. This material exempt per Department of Commerce license exception TSU Xilinx, Inc. All Rights Reserved System Debug This material exempt per Department of Commerce license exception TSU Objectives After completing this module, you will be able to: Describe GNU Debugger (GDB) functionality Describe Xilinx

More information

ISim In-Depth Tutorial. UG682 (v13.4) January 18, 2012

ISim In-Depth Tutorial. UG682 (v13.4) January 18, 2012 ISim In-Depth Tutorial Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in the development of designs to operate with Xilinx

More information

Integrating a Video Frame Buffer Controller (VFBC) in System Generator Author: Douang Phanthavong and Jingzhao Ou

Integrating a Video Frame Buffer Controller (VFBC) in System Generator Author: Douang Phanthavong and Jingzhao Ou Application Note: Video Frame Buffer Controller, Virtex-5 Family XAPP1136 (v1.0) June 1, 2009 Integrating a Video Frame Buffer Controller (VFBC) in System Generator Author: Douang Phanthavong and Jingzhao

More information

High Speed Data Transfer Using FPGA

High Speed Data Transfer Using FPGA High Speed Data Transfer Using FPGA Anjali S S, Rejani Krishna P, Aparna Devi P S M.Tech Student, VLSI & Embedded Systems, Department of Electronics, Govt. Model Engineering College, Thrikkakkara anjaliss.mec@gmail.com

More information

DDR2 Controller Using Virtex-4 Devices Author: Tze Yi Yeoh

DDR2 Controller Using Virtex-4 Devices Author: Tze Yi Yeoh Application Note: Virtex-4 Family XAPP702 (v1.8) April 23, 2007 DD2 Controller Using Virtex-4 Devices Author: Tze Yi Yeoh Summary DD2 SDAM devices offer new features that surpass the DD SDAM specifications

More information

ChipScope Inserter flow. To see the Chipscope added from XPS flow, please skip to page 21. For ChipScope within Planahead, please skip to page 23.

ChipScope Inserter flow. To see the Chipscope added from XPS flow, please skip to page 21. For ChipScope within Planahead, please skip to page 23. In this demo, we will be using the Chipscope using three different flows to debug the programmable logic on Zynq. The Chipscope inserter will be set up to trigger on a bus transaction. This bus transaction

More information

KC705 PCIe Design Creation with Vivado August 2012

KC705 PCIe Design Creation with Vivado August 2012 KC705 PCIe Design Creation with Vivado August 2012 XTP197 Revision History Date Version Description 08/20/12 1.0 Initial version. Added AR50886. Copyright 2012 Xilinx, Inc. All Rights Reserved. XILINX,

More information

Development of Monitoring Unit for Data Acquisition from Avionic Bus 1 Anjana, 2 Dr. N. Satyanarayan, 3 M.Vedachary

Development of Monitoring Unit for Data Acquisition from Avionic Bus 1 Anjana, 2 Dr. N. Satyanarayan, 3 M.Vedachary Development of Monitoring Unit for Data Acquisition from Avionic Bus 1 Anjana, 2 Dr. N. Satyanarayan, 3 M.Vedachary Abstract 1553 bus is a military avionic bus that describes the mechanical, electrical

More information

Carmel (MAXREFDES18#) LX9 MicroBoard Quick Start Guide

Carmel (MAXREFDES18#) LX9 MicroBoard Quick Start Guide Carmel (MAXREFDES18#) LX9 MicroBoard Quick Start Guide Rev 0; 8/13 Maxim Integrated cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim Integrated product.

More information

Designing Embedded AXI Based Direct Memory Access System

Designing Embedded AXI Based Direct Memory Access System Designing Embedded AXI Based Direct Memory Access System Mazin Rejab Khalil 1, Rafal Taha Mahmood 2 1 Assistant Professor, Computer Engineering, Technical College, Mosul, Iraq 2 MA Student Research Stage,

More information

MicroZed: Hello World. Overview. Objectives. 23 August 2013 Version 2013_2.01

MicroZed: Hello World. Overview. Objectives. 23 August 2013 Version 2013_2.01 23 August 2013 Version 2013_2.01 Overview Once a Zynq Hardware Platform is created and exported from Vivado, the next step is to create an application targeted at the platform and see it operating in hardware.

More information