Lab 2: Adding IP to a Hardware Design Lab

Similar documents
Lab 3: Adding Custom IP to an Embedded System Lab

Lab 1: Simple Hardware Design

Lab6 HW/SW System Debug

Lab 5 SDK Lab. Targeting MicroBlaze on the Spartan-3E Starter Kit. For Academic Use Only

Adding Custom IP to an Embedded System Using AXI

Module 2: Adding IP to a Hardware Design

Advanced Software Writing Using AXI

Module 3: Adding Custom IP to an Embedded System

Hardware Design Using EDK

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

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

BFM Simulation in Platform Studio

Arty MicroBlaze Soft Processing System Implementation Tutorial

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

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

SP605 Built-In Self Test Flash Application

SP601 Built-In Self Test Flash Application

Zynq System Architecture Design Lab Workbook Beta

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

Getting Started Guide with AXM-A30

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

Spartan-3 MicroBlaze Sample Project

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

Interrupt Creation and Debug on ML403

ML605 Built-In Self Test Flash Application

ML605 Built-In Self Test Flash Application

Xilinx Platform Studio tutorial

XPS UART Lite (v1.01a)

MicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System

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

Dual Processor Reference Design Suite Author: Vasanth Asokan

Reference System: XPS LL Tri-Mode Ethernet MAC Embedded Systems for MicroBlaze and PowerPC Processors Author: Ed Hallett

Lab 3: Xilinx PicoBlaze Flow Lab Targeting Spartan-3E Starter Kit

XA Automotive ECU Development Kit

Using Xilinx Embedded Processor Subsystems in a Synplify Design Flow

Virtex-5 FXT PowerPC PowerPC 440 and MicroBlaze 440

Platform Specification Format Reference Manual

DisplayPort Transmit Reference Design Author: Vamsi Krishna, Saambhavi Baskaran

Spartan-6 LX9 MicroBoard Embedded Tutorial. Tutorial 2 Adding EDK IP to an Embedded System

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

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

Microblaze for Linux Howto

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

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

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.

SP605 Standalone Applications

AXI Multi-Ported Memory Controller Author: Khang Dao and Dylan Buli

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

Getting Started Guide

EDK Concepts, Tools, and Techniques

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

Technical Brief from Missing Link Electronics:

EDK 7.1 PowerPC Tutorial in Virtex-4

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

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

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

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

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

Hello World on the ATLYS Board. Building the Hardware

Impulse Embedded Processing Video Lab

LogiCORE IP I/O Module v1.01a

427 Class Notes Lab2: Real-Time Clock Lab

Multi-Port Memory Controller (MPMC) (v4.02.a)

The Simple MicroBlaze Microcontroller Concept Author: Christophe Charpentier

SP601 Standalone Applications

System Ace Tutorial 03/11/2008

UART Interrupt Creation on Spartan 3A

Hardware Design. MicroBlaze 7.1. This material exempt per Department of Commerce license exception TSU Xilinx, Inc. All Rights Reserved

Xilinx Vivado/SDK Tutorial

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly!

Adding the ILA Core to an Existing Design Lab

Zynq-7000 All Programmable SoC: Concepts, Tools, and Techniques (CTT)

Reference System: Debugging PowerPC 440 Processor Systems Author: James Lucero

Circuit design with configurable devices (FPGA)

Use Vivado to build an Embedded System

ML40x EDK Processor Reference Design

Partial Reconfiguration of a Processor Tutorial. PlanAhead Design Tool

XPS General Purpose Input/Output (GPIO) (v2.00.a)

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

Copyright 2014 Xilinx

ECE 491 Laboratory 1 Introducing FPGA Design with Verilog September 6, 2004

Platform Specification Format Reference Manual

Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 10/25/16

EDK Concepts, Tools, and Techniques

Xilinx ISE Synthesis Tutorial

Xilinx Tutorial Basic Walk-through

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

EE 1315 DIGITAL LOGIC LAB EE Dept, UMD

EDK Concepts, Tools, and Techniques

PS2 VGA Peripheral Based Arithmetic Application Using Micro Blaze Processor

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

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

F28069 ControlCard Lab1

Building Combinatorial Circuit Using Behavioral Modeling Lab

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

1-1 SDK with Zynq EPP

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

Basics of Partial Reconfiguration

Tutorial on FPGA Design Flow based on Xilinx ISE Webpack and ModelSim. ver. 1.5

Introduction to Embedded System Design using Zynq

Transcription:

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 Design Lab Introduction Objectives Procedure This lab guides you through the process of adding additional IP to an existing processor system by using Xilinx Platform Studio (XPS). You will add GPIO peripheral from the IP Catalog tab to interface to the push buttons and DIP switches on the Spartan-3E Starter Kit. At the end of the lab, you will generate the bitstream and test the peripherals in hardware. After completing this lab, you will be able to: Add additional IP to a hardware design Update ucf file to support external ports of the added IP Setup some of the compiler settings The purpose of this lab exercise is to extend the hardware design (Figure 2-1) created in Lab 1according to the following procedure 1. Open the project 2. Add and connect GPIO peripherals in the system 3. Configure the GPIO peripherals 4. Make external GPIO connections 5. Analyze the MHS file 6. Add the software application and compile 7. Verify the design in hardware Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-3

MPMC CNTLR DDR Figure 2-1. Extend the System from the previous lab For each procedure within a primary step, there are general instructions (indicated by the symbol). These general instructions only provide a broad outline for performing the procedure. Below these general instructions, you will find accompanying step-by-step directions and illustrated figures that provide more detail for performing the procedure. If you feel confident about completing a procedure, you can skip the step-by-step directions and move on to the next general instruction. Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-4

Open the Project Step 1 Create a lab2 folder and copy the contents of the lab1 folder into the lab2 folder, or copy the content of the labsolution\lab1 folder into the lab2 folder. Launch Xilinx Platform Studio (XPS) and open the project file. ❶ Create a lab2 folder in the c:\xup\embedded\labs directory and copy the contents from lab1 to lab2 ❷ Open XPS by selecting Start All Programs Xilinx ISE Design Suite 12 Platform Studio Xilinx Platform Studio ❸ Select Open a recent project, Click OK and browse to C:\xup\embedded\labs\lab2 ❹ Click system.xmp to open the project Add and Connect GPIO Peripherals to the System Step 2 Add two instances of an XPS GPIO Peripheral from the IP catalog to the processor system via the System Assembly View. XPS provides two methods for adding peripherals to an existing project. You will use the first method, the System Assembly View panel, to add most of the additional IP and connect them. The second method is to manually edit MHS file. ❶ Select the IP Catalog tab in the left window and click on plus sign next to General Purpose IO entry to view the available cores under it (Figure 2-2) Figure 2-2. IP Catalog Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-5

❷ Double-click on the XPS General Purpose IO core twice to add two instances to the System Assembly View, each time clicking OK to accept the default configuration (you can make changes to configuration settings, but we will do it later) ❸ Change the instance names of the peripherals to dip and push, by clicking once in the name column, typing the new name for the peripheral followed by pressing Enter key At this point, the System Assembly View should look like the following (Figure 2-3): Figure 2-3. System Assembly View After Adding Peripherals ❹ Click once in Bus Connection column for the push and dip instances to connect them as slave devices to the PLB. At this point, the Bus Connections tab should look like the following (Figure 2-4): Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-6

Figure 2-4. Bus Interfaces Tab showing Bus Connections to the Added Peripherals ❺ Select the Addresses filter Note that there are few instances which are not assigned addresses You can manually assign the base address and size of your peripherals or have XPS generate the addresses for you. ❻ Click Generate Addresses (located on the right most end of the tabs) to automatically generate the base and high addresses for the peripherals in the system. The base address and high addresses will change as shown in Figure 2-5. Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-7

Figure 2-5. Peripherals Memory Map Configure the GPIO Peripherals Step 3 There are four push buttons and four DIP switches on the Spartan-3E starter kit. You will first configure the push and dip instances according to their sizes and direction, and then make external pin connections. ❶ Select the Ports filter in the toolbar of the System Assembly View ❷ Double-click on the push instance to access the configuration window Notice that the peripheral can be configured for two channels, but, since we want to use only one channel without interrupt, leave the GPIO Supports Interrupts and Enable Channel 2 unchecked. The settings for the Common parameters should be set according to Figure 2-6 below. Figure 2-6. Configurable Common Parameters of GPIO Instance for Push Buttons ❸ Next click Channel 1, click on the GPIO Data Bus Width down arrow and set it to 4, you will use 4 push buttons on the Spartan-3E starter kit. Set Channel 1 is input Only to True (Figure 2-7): Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-8

Figure 2-7. Setting Configurable Parameters for Push Buttons ❹ Set the same parameters for the dip instance, as performed for the push buttons. Make External GPIO Peripheral Connections Step 4 You will connect the push and dip instances to the push buttons and DIP switches on the Spartan-3E starter kit. In order to do this, you must establish the GPIO data ports as external FPGA pins and then assign them to the proper locations on the FPGA via the UCF file. The location constraints are provided for you in this section. Normally, one would consult the Spartan-3E starter kit user manual to find this information. ❶ In the Net field of the GPIO_IO_I port of the push instance, make the GPIO_IO_I port as external by selecting Make External. You should see a new external net connection (Figure 2-8). Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-9

Figure 2-8. GPIO_in Port Connection Added to push Instance ❷ Similarly, make the GPIO_IO_I port of dip as external in the net field of the GPIO_IO_I port of the dip instance. The GPIO_IO_I ports of both dip and push are now connected externally on the FPGA (Figure 2-9). Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-10

Figure 2-9. Push and DIP Instances External Ports ❸ Click on the system.ucf file under the Project tab and add the following code to assign pins to push buttons (The constraints are provided in lab2.ucf file in c:\xup\embedded\sources directory. Copy it from there and paste it in your ucf file) Figure 2-10. UCF file (pin assignments). ❹ Save the system.ucf and close it Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-11

Analyze the MHS file Step 5 Open the system.mhs file, study its contents, and answer the following questions. ❶ Double-click the system.mhs file to open it if it is not already open Study the external ports sections and answer the following questions? 1. Complete the following: ❷ Review the entire MHS file Number of external ports: Number of external ports that are output: Number of external ports that are input: Number of external ports that are bidirectional:? 2. List the instances to which the dcm_clk_s is connected: List the instances connected to the mb_plb bus: ❸ Review the memory map in the Addresses tab of the System Assembly View? 3. Draw the address map of the system, providing instance names $0000_0000 $FFFF_FFFF Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-12

Add Software Application and Compile Step 6 Add an existing c program to implement the functionality of push button and LEDs. Compile the program. ❶ Click on Applications tab and under Sources, right-click on TestApp_Memory.c file in TestApp_Memory_microblaze_0 and select Remove. ❷ Right click on Sources and add lab2.c file from c:\xup\embedded\sources folder ❸ A snippet of the source code is shown in Figure 2-11 Figure 2-11. Snippet of source code. Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-13

❹ In the Application tab, double-click on compiler options to open the Compiler Options dialogue box. ❺ In the Environment tab, select the option Use Default Linker Script. Figure 2-12. Setting the Default Linker Script ❻ In the Debug and Optimization tab, set the optimization to No Optimization. This will ensure that the for loop (used for software delay) in the source code is not optimized away. Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-14

Figure 2-13. Setting the Optimization level ❺ Click on to compile the source code. Make sure that it compiles error free Note: This will automatically run LibGen to generate the required libraries if it has not been done already. Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-15

Verify the Design in Hardware Step 7 Download the bitstream to the Spartan-3s500e device. ❶ Start a HyperTerminal session Baud rate: 115200 Data bits: 8 Parity: none Stop bits: 1 Flow control: none ❷ Connect and power up the Spartan-3E starter kit. ❸ Select Device Configuration Update Bitstream This may take a few minutes to synthesize, implement, and generate the bitstream. ❹ Download the bitstream by selecting Device Configuration Download Bitstream Note: Once the bitstream is downloaded, you should see the DONE LED ON and a message displayed in HyperTerminal as shown in Figure 2-14 Figure 2-14. Screen Shot after the BitStream Downloading ❺ After pressing the buttons and toggling the switches, and you should see the corresponding values being displayed on the HyperTerminal (Figure 2-15) Figure 2-15. Push button and DIP switch status displayed on hyperterminal ❻ Disconnect and close the HyperTerminal window, and also close XPS Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-16

Conclusion GPIO peripherals were added from the IP catalog and connected to a MicroBlaze system that was created in the first lab. The peripherals were configured and external FPGA connections were established. Pin location constraints were made in the UCF file to connect the peripherals to push buttons and DIP switches on the Spartan-3E starter kit. In future labs in this course, you will learn how to add user cores, add software to the system, debug the software, and verify the functionality of the completed design by using a Spartan-3E Starter Kit. Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-17

A Answers 1. Complete the following: Number of external ports: 20 Number of external ports that are output: 12 Number of external ports that are input: 5 Number of external ports that are bidirectional: 3 2. List the instances to which the dcm_clk_s is connected: clock_generator_0 List the instances connected to the mb_plb bus: microblaze_0, DDR_SDRAM, mdm_0, LEDs_8Bit, push, dip and RS232_DCE 3. Draw the address map of the system, providing instance names. You can sort the peripheral addresses by base address from the Addresses tab of the Add/Edit Cores (dialog) box. 0x00000000 0x00001fff dlmb, llmb unused 0x81400000 0x8140ffff push 0x81420000 0x8142ffff dip 0x81440000 0x8144ffff LEDs_8Bit 0x84000000 0x8400ffff RS232_DCE 0x84400000 0x8440ffff mdm_0 0x8C000000 0x8fffffff DDR_SDRAM Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-18

Completed MHS File # ############################################################################## # Created by Base System Builder Wizard for Xilinx EDK 12.2 Build EDK_MS2.63c # Tue Jul 20 10:08:16 2010 # Target Board: Xilinx Spartan-3E Starter Board Rev D # Family: spartan3e # Device: XC3S500e # Package: FG320 # Speed Grade: -4 # Processor number: 1 # Processor 1: microblaze_0 # System clock frequency: 50.0 # Debug Interface: On-Chip HW Debug Module # ############################################################################## PARAMETER VERSION = 2.1.0 PORT fpga_0_rs232_dce_rx_pin = fpga_0_rs232_dce_rx_pin, DIR = I PORT fpga_0_rs232_dce_tx_pin = fpga_0_rs232_dce_tx_pin, DIR = O PORT fpga_0_leds_8bit_gpio_io_o_pin = fpga_0_leds_8bit_gpio_io_o_pin, DIR = O, VEC = [0:7] PORT fpga_0_ddr_sdram_ddr_clk_pin = fpga_0_ddr_sdram_ddr_clk_pin, DIR = O PORT fpga_0_ddr_sdram_ddr_clk_n_pin = fpga_0_ddr_sdram_ddr_clk_n_pin, DIR = O PORT fpga_0_ddr_sdram_ddr_ce_pin = fpga_0_ddr_sdram_ddr_ce_pin, DIR = O PORT fpga_0_ddr_sdram_ddr_cs_n_pin = fpga_0_ddr_sdram_ddr_cs_n_pin, DIR = O PORT fpga_0_ddr_sdram_ddr_ras_n_pin = fpga_0_ddr_sdram_ddr_ras_n_pin, DIR = O PORT fpga_0_ddr_sdram_ddr_cas_n_pin = fpga_0_ddr_sdram_ddr_cas_n_pin, DIR = O PORT fpga_0_ddr_sdram_ddr_we_n_pin = fpga_0_ddr_sdram_ddr_we_n_pin, DIR = O PORT fpga_0_ddr_sdram_ddr_bankaddr_pin = fpga_0_ddr_sdram_ddr_bankaddr_pin, DIR = O, VEC = [1:0] PORT fpga_0_ddr_sdram_ddr_addr_pin = fpga_0_ddr_sdram_ddr_addr_pin, DIR = O, VEC = [12:0] PORT fpga_0_ddr_sdram_ddr_dq_pin = fpga_0_ddr_sdram_ddr_dq_pin, DIR = IO, VEC = [15:0] PORT fpga_0_ddr_sdram_ddr_dm_pin = fpga_0_ddr_sdram_ddr_dm_pin, DIR = O, VEC = [1:0] PORT fpga_0_ddr_sdram_ddr_dqs_pin = fpga_0_ddr_sdram_ddr_dqs_pin, DIR = IO, VEC = [1:0] PORT fpga_0_ddr_sdram_ddr_dqs_div_io_pin = fpga_0_ddr_sdram_ddr_dqs_div_io_pin, DIR = IO PORT fpga_0_clk_1_sys_clk_pin = dcm_clk_s, DIR = I, SIGIS = CLK, CLK_FREQ = 50000000 PORT fpga_0_rst_1_sys_rst_pin = sys_rst_s, DIR = I, SIGIS = RST, RST_POLARITY = 1 PORT push_gpio_io_i_pin = push_gpio_io_i, DIR = I, VEC = [0:3] PORT dip_gpio_io_i_pin = dip_gpio_io_i, DIR = I, VEC = [0:3] BEGIN microblaze PARAMETER INSTANCE = microblaze_0 PARAMETER C_AREA_OPTIMIZED = 1 PARAMETER C_DEBUG_ENABLED = 1 PARAMETER HW_VER = 7.30.b BUS_INTERFACE DLMB = dlmb Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-19

BUS_INTERFACE ILMB = ilmb BUS_INTERFACE DPLB = mb_plb BUS_INTERFACE IPLB = mb_plb BUS_INTERFACE DEBUG = microblaze_0_mdm_bus PORT MB_RESET = mb_reset BEGIN plb_v46 PARAMETER INSTANCE = mb_plb PARAMETER HW_VER = 1.04.a PORT PLB_Clk = clk_50_0000mhz PORT SYS_Rst = sys_bus_reset BEGIN lmb_v10 PARAMETER INSTANCE = ilmb PARAMETER HW_VER = 1.00.a PORT LMB_Clk = clk_50_0000mhz PORT SYS_Rst = sys_bus_reset BEGIN lmb_v10 PARAMETER INSTANCE = dlmb PARAMETER HW_VER = 1.00.a PORT LMB_Clk = clk_50_0000mhz PORT SYS_Rst = sys_bus_reset BEGIN lmb_bram_if_cntlr PARAMETER INSTANCE = dlmb_cntlr PARAMETER HW_VER = 2.10.b PARAMETER C_BASEADDR = 0x00000000 PARAMETER C_HIGHADDR = 0x00001fff BUS_INTERFACE SLMB = dlmb BUS_INTERFACE BRAM_PORT = dlmb_port BEGIN lmb_bram_if_cntlr PARAMETER INSTANCE = ilmb_cntlr PARAMETER HW_VER = 2.10.b PARAMETER C_BASEADDR = 0x00000000 PARAMETER C_HIGHADDR = 0x00001fff BUS_INTERFACE SLMB = ilmb BUS_INTERFACE BRAM_PORT = ilmb_port BEGIN bram_block PARAMETER INSTANCE = lmb_bram PARAMETER HW_VER = 1.00.a BUS_INTERFACE PORTA = ilmb_port BUS_INTERFACE PORTB = dlmb_port BEGIN xps_uartlite PARAMETER INSTANCE = RS232_DCE PARAMETER C_BAUDRATE = 115200 Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-20

PARAMETER C_DATA_BITS = 8 PARAMETER C_USE_PARITY = 0 PARAMETER C_ODD_PARITY = 0 PARAMETER HW_VER = 1.01.a PARAMETER C_BASEADDR = 0x84000000 PARAMETER C_HIGHADDR = 0x8400ffff BUS_INTERFACE SPLB = mb_plb PORT RX = fpga_0_rs232_dce_rx_pin PORT TX = fpga_0_rs232_dce_tx_pin BEGIN xps_gpio PARAMETER INSTANCE = LEDs_8Bit PARAMETER C_ALL_INPUTS = 0 PARAMETER C_GPIO_WIDTH = 8 PARAMETER C_INTERRUPT_PRESENT = 0 PARAMETER C_IS_DUAL = 0 PARAMETER HW_VER = 2.00.a PARAMETER C_BASEADDR = 0x81440000 PARAMETER C_HIGHADDR = 0x8144ffff BUS_INTERFACE SPLB = mb_plb PORT GPIO_IO_O = fpga_0_leds_8bit_gpio_io_o_pin BEGIN mpmc PARAMETER INSTANCE = DDR_SDRAM PARAMETER C_NUM_PORTS = 1 PARAMETER C_SPECIAL_BOARD = S3E_STKIT PARAMETER C_MEM_TYPE = DDR PARAMETER C_MEM_PARTNO = MT46V32M16-6 PARAMETER C_MEM_DATA_WIDTH = 16 PARAMETER C_PIM0_BASETYPE = 2 PARAMETER HW_VER = 6.01.a PARAMETER C_MPMC_BASEADDR = 0x8c000000 PARAMETER C_MPMC_HIGHADDR = 0x8fffffff BUS_INTERFACE SPLB0 = mb_plb PORT MPMC_Clk0 = clk_100_0000mhzdcm0 PORT MPMC_Clk90 = clk_100_0000mhz90dcm0 PORT MPMC_Rst = sys_periph_reset PORT DDR_Clk = fpga_0_ddr_sdram_ddr_clk_pin PORT DDR_Clk_n = fpga_0_ddr_sdram_ddr_clk_n_pin PORT DDR_CE = fpga_0_ddr_sdram_ddr_ce_pin PORT DDR_CS_n = fpga_0_ddr_sdram_ddr_cs_n_pin PORT DDR_RAS_n = fpga_0_ddr_sdram_ddr_ras_n_pin PORT DDR_CAS_n = fpga_0_ddr_sdram_ddr_cas_n_pin PORT DDR_WE_n = fpga_0_ddr_sdram_ddr_we_n_pin PORT DDR_BankAddr = fpga_0_ddr_sdram_ddr_bankaddr_pin PORT DDR_Addr = fpga_0_ddr_sdram_ddr_addr_pin PORT DDR_DQ = fpga_0_ddr_sdram_ddr_dq_pin PORT DDR_DM = fpga_0_ddr_sdram_ddr_dm_pin PORT DDR_DQS = fpga_0_ddr_sdram_ddr_dqs_pin PORT DDR_DQS_Div_O = fpga_0_ddr_sdram_ddr_dqs_div_io_pin PORT DDR_DQS_Div_I = fpga_0_ddr_sdram_ddr_dqs_div_io_pin BEGIN clock_generator Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-21

PARAMETER INSTANCE = clock_generator_0 PARAMETER C_CLKIN_FREQ = 50000000 PARAMETER C_CLKOUT0_FREQ = 100000000 PARAMETER C_CLKOUT0_PHASE = 90 PARAMETER C_CLKOUT0_GROUP = DCM0 PARAMETER C_CLKOUT0_BUF = TRUE PARAMETER C_CLKOUT1_FREQ = 100000000 PARAMETER C_CLKOUT1_PHASE = 0 PARAMETER C_CLKOUT1_GROUP = DCM0 PARAMETER C_CLKOUT1_BUF = TRUE PARAMETER C_CLKOUT2_FREQ = 50000000 PARAMETER C_CLKOUT2_PHASE = 0 PARAMETER C_CLKOUT2_GROUP = NONE PARAMETER C_CLKOUT2_BUF = TRUE PARAMETER C_EXT_RESET_HIGH = 1 PARAMETER HW_VER = 4.00.a PORT CLKIN = dcm_clk_s PORT CLKOUT0 = clk_100_0000mhz90dcm0 PORT CLKOUT1 = clk_100_0000mhzdcm0 PORT CLKOUT2 = clk_50_0000mhz PORT RST = sys_rst_s PORT LOCKED = Dcm_all_locked BEGIN mdm PARAMETER INSTANCE = mdm_0 PARAMETER C_MB_DBG_PORTS = 1 PARAMETER C_USE_UART = 1 PARAMETER C_UART_WIDTH = 8 PARAMETER HW_VER = 1.00.g PARAMETER C_BASEADDR = 0x84400000 PARAMETER C_HIGHADDR = 0x8440ffff BUS_INTERFACE SPLB = mb_plb BUS_INTERFACE MBDEBUG_0 = microblaze_0_mdm_bus PORT Debug_SYS_Rst = Debug_SYS_Rst BEGIN proc_sys_reset PARAMETER INSTANCE = proc_sys_reset_0 PARAMETER C_EXT_RESET_HIGH = 1 PARAMETER HW_VER = 2.00.a PORT Slowest_sync_clk = clk_50_0000mhz PORT Ext_Reset_In = sys_rst_s PORT MB_Debug_Sys_Rst = Debug_SYS_Rst PORT Dcm_locked = Dcm_all_locked PORT MB_Reset = mb_reset PORT Bus_Struct_Reset = sys_bus_reset PORT Peripheral_Reset = sys_periph_reset BEGIN xps_gpio PARAMETER INSTANCE = dip PARAMETER HW_VER = 2.00.a PARAMETER C_BASEADDR = 0x81420000 PARAMETER C_HIGHADDR = 0x8142ffff PARAMETER C_GPIO_WIDTH = 4 Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-22

PARAMETER C_ALL_INPUTS = 1 BUS_INTERFACE SPLB = mb_plb PORT GPIO_IO_I = dip_gpio_io_i BEGIN xps_gpio PARAMETER INSTANCE = push PARAMETER HW_VER = 2.00.a PARAMETER C_BASEADDR = 0x81400000 PARAMETER C_HIGHADDR = 0x8140ffff PARAMETER C_GPIO_WIDTH = 4 PARAMETER C_ALL_INPUTS = 1 BUS_INTERFACE SPLB = mb_plb PORT GPIO_IO_I = push_gpio_io_i Adding IP to a Hardware Design Lab: www.xilinx.com/university 2-23