DEVELOPING A SIMPLE CUSTOM PCORE THAT READS AND
|
|
- Harold Wilkins
- 5 years ago
- Views:
Transcription
1 DEVELOPING A SIMPLE CUSTOM PCORE THAT READS AND WRITES TO DDR AND USE ITS SLAVE REGISTERS TO COMMUNICATE WITH MICROBLAZE YUKA KYUSHIMA SOLANO University of Toronto April 10, 2014 This document has a practical example of how build a custom pcore that reads and writes to DDR. First of all, I recommend you to read and try to create a simple IPCore following the "Creating AXI-connected User-Designed Peripheral Cores" from the labs before starting this tutorial. It contains more information about what is a pcore and how it is structure. CREATION THROUGH THE CUSTOM PERIPHERAL WIZARD First, load a project that has the DDR pcore or create a new XPS project and add it. 1. After loading the project, start the wizard through the menu: Hardware->Create/Import Peripheral Wizard. 2. Select "create templates for a new peripheral". 3. Select "to the local project directory". It will put the newly created pcore in the the pcore subdirectory of the project directory. 4. Name the peripheral "read_write_ddr" 5. Select "AXI4: Burst Capable". 6. Select "User logic master support", "Software reset" and "User logic software register". 7. Number of software accessible registers: Let the default configuration for the next screens.
2 9.Next, the pcore template will be created and you will be returned to the main screen. Add the newly created IP into your design. Select and add it to your design from the IP Catalog with the default options and remember to assign it a base address and range. SOFTWARE APPLICATION With the new pcore created and added we can Generate Bitstream and Export it to SDK. We will first use the software application to read or write to DDR. In other words, we will set the address, the number of bytes to transfer and the command to request read or write using the master register of our pcore directly in the C code. For the next session we will set these parameters in the user_logic.vhd. 1. After export to SDK, create a new Xilinx C Project: File->New->Xilinx C Project. 2. Select Empty Application and name it "rw_ddr". 3. Create a C file and copy the code below and add it to the workspace/rw_ddr/src/ that you have just created. 4. Refresh it (F5) and rebuild your project. 5. Connect the Serial with the terminal and Program to the FPGA. If you have trouble to download the program to the FPGA try change mcb_ddr2_s0_axi_baseaddr to microblaze_0_i_bram_ctrl_microblaze_0_d_bram_ctrl in the Section to Memory Region Mapping in the lscript.ld file. 6. The output on the terminal should be: Before read or write: AAAABBBB CCCCDDDD After read command: AAAABBBB CCCCDDDD After write command: AAAABBBB AAAABBBB C code to request read and write to DDR #include <stdlib.h> #include <stdio.h> #include "xparameters.h" #define printf xil_printf #define DDR1 0xA //define a base address of your DDR #define DDR2 0xA //define another base address of your DDR #define OFFSET 0x100 //offset for the master registers #define PCORE_BASEADDR 0x77A00000 //change to your pcore base address User program
3 int main() { //base address that we will read from volatile unsigned int *ddr1_addr = (volatile unsigned int *) DDR1; //base address the we will write to volatile unsigned int *ddr2_addr = (volatile unsigned int *) DDR2; //base address of our pcore (slave registers) volatile unsigned int *pcore_addr = (volatile unsigned int *) PCORE_BASEADDR; //base address of our pcore (master registers) volatile unsigned char *pcore_mst_addr = (volatile unsigned char *) (PCORE_BASEADDR + OFFSET); ddr1_addr[0] = 0xAAAABBBB; //write a random value in the DDR1 base address //this value will copy to DDR2 ddr2_addr[0] = 0xCCCCDDDD; //write a random value in the DDR2 base address //this value will be overwrited printf("before read or write: %8x %8x \n\r", ddr1_addr[0], ddr2_addr[0]); Read command Control Register (C_BASEADDR + OFFSET + 0x0): -- bit 0 - Rd (Read Request Control) -- bit 1 - Wr (Write Request Control) -- bit 2 - BL (Bus Lock Control) -- bit 3 - Brst (Burst Assertion Control) pcore_mst_addr[0] = 0x01; -- Addrress Register (C_BASEADDR + OFFSET + 0x4): -- bit Target Address (This 32-bit value is used to populate the -- IP2Bus_Mst_Addr(0:31) address bus during a Read or Write -- user logic master operation) //Address to read from: 0xA pcore_mst_addr[4] = 0x00; pcore_mst_addr[5] = 0x00; pcore_mst_addr[6] = 0x00; pcore_mst_addr[7] = 0xA0; -- Byte Enable Register (C_BASEADDR + OFFSET + 0x8): -- bit Master BE (This 16-bit value is used to populate the -- IP2Bus_Mst_BE byte enable bus during a Read or Write user -- logic master operation for single data beat transfer) pcore_mst_addr[8] = 0xFF; pcore_mst_addr[9] = 0xFF; -- Length Register (C_BASEADDR + OFFSET + 0xC): -- bit Reserved -- bit Transfer Length (This 12-bit value is used to populate the -- IP2Bus_Mst_Length(0:11) transfer length bus which specifies -- the number of bytes (1 to 4096) to transfer during user logic -- master Read or Write fixed length burst operations) //We will transfer only 4 bytes pcore_mst_addr[12] = 0x04; pcore_mst_addr[13] = 0x00; pcore_mst_addr[14] = 0x00; -- Go Register (C_BASEADDR + OFFSET + 0xF): -- bit Go Port (Write to this byte address initiates the user -- logic master transfer, data key value of 0x0A must be used) -- //Go command pcore_mst_addr[15] = 0x0A; printf("after read command: %8x %8x\n\r", ddr1_addr[0], ddr2_addr[0]); Write command
4 pcore_mst_addr[0] = 0x02; //Set the address to write to: 0xA pcore_mst_addr[4] = 0x00; pcore_mst_addr[5] = 0x00; pcore_mst_addr[6] = 0x10; pcore_mst_addr[7] = 0xA0; //Go command pcore_mst_addr[15] = 0x0A; printf("after write command: %8x %8x\n\r", ddr1_addr[0], ddr2_addr[0]); } return 0; To transfer more than 4 bytes, enable the burst bit and put the number of bytes we want to transfer in the Length Register. Try to change other parameters to see what happens. CHANGING THE USER_LOGIC.VHD In this section you will change your user_logic generated when you created your pcore. You can find the user_logic.vhd in the folder \pcores\read_write_ddr_v1_00_a\hdl\vhdl. It is in this file that you will put your own VHDL processes and customize your pcore. For now, only do the following changes: --ADDED after line: --USER signal declarations added here, as needed for user logic Signals for read and write to DDR Explanation of the added signals rd_addr address of read from DDR -- wr_addr address of write to DDR -- rd_en read from DDR is enabled signal rd_addr, wr_addr : std_logic_vector(c_mst_awidth-1 downto 0); signal rd_en : std_logic; type SEARCH_RW_SM_TYPE is (SEARCH_RW_IDLE, SEARCH_READ_INIT, SEARCH_READ_GO, SEARCH_WRITE_INIT, SEARCH_WRITE_GO); signal search_rw_sm_state : SEARCH_RW_SM_TYPE; --END_ADDED --EDITED -- rip control bits from master model registers --mst_cntl_rd_req <= mst_reg(0)(0);
5 --mst_cntl_wr_req <= mst_reg(0)(1); mst_cntl_bus_lock <= '0'; --mst_reg(0)(2); mst_cntl_burst <= '1'; --mst_reg(0)(3); --mst_ip2bus_addr <= mst_reg(7) & mst_reg(6) & mst_reg(5) & mst_reg(4); mst_ip2bus_be <= x"ffff"; --mst_reg(9) & mst_reg(8); mst_xfer_reg_len <= x"00040"; --mst_reg(14)(3 downto 0) & mst_reg(13) & mst_reg(12); mst_xfer_length <= mst_xfer_reg_len(c_length_width-1 downto 0 ); --END_EDITED --EDITED if ( Bus2IP_Clk'event and Bus2IP_Clk = '1' ) then if ( Bus2IP_Resetn = '0' or mst_cmd_sm_clr_go = '1' ) then mst_go <= '0'; elsif ( mst_cmd_sm_busy = '0' and mst_cntl_rd_req = '1') then --mst_byte_we(go_byte_lane) = '1' and --Bus2IP_Data((GO_BYTE_LANE-(GO_BYTE_LANE/BE_WIDTH)*BE_WIDTH)* (GO_BYTE_LANE-(GO_BYTE_LANE/BE_WIDTH)*BE_WIDTH)*8)= GO_DATA_KEY ) then mst_go <= '1'; elsif ( mst_cmd_sm_busy = '0' and mst_cntl_wr_req = '1') then mst_go <= '1'; null; --END_EDITED downto --ADDED after line: IP2Bus_Error <= '0'; --Process to read from the bus and store in the fifo --and read from the fifo and write to the bus --slv_reg0 is rd_addr and slv_reg1 is wr_addr SEARCH_SM_RW_PROC: process(bus2ip_clk) is constant IMAGE_WIDTH : integer := 640; constant IMAGE_HEIGHT : integer := 480; constant PACKET_SIZE : integer := 64; //it will transfer 64 bytes each time begin if Rising_Edge(Bus2IP_Clk) then --Initial values if ( Bus2IP_Resetn = '0' ) then search_rw_sm_state <= SEARCH_RW_IDLE; mst_cntl_wr_req <= '0'; mst_cntl_rd_req <= '0'; rd_en <= '0'; rd_addr <= slv_reg0; wr_addr <= slv_reg1;
6 case search_rw_sm_state is when SEARCH_RW_IDLE => Go to read states if (rd_en = '0') then if (f_full = '0') then search_rw_sm_state <= SEARCH_READ_INIT; mst_cntl_rd_req <= '1'; rd_en <= '1'; Go to write states search_rw_sm_state <= SEARCH_WRITE_INIT; mst_cntl_wr_req <= '1'; rd_en <= '0'; when SEARCH_READ_INIT => if(bus2ip_mst_cmdack = '1') then search_rw_sm_state <= SEARCH_READ_GO; mst_cntl_rd_req <= '0'; when SEARCH_READ_GO => if(bus2ip_mst_cmplt = '1') then search_rw_sm_state <= SEARCH_RW_IDLE; if (rd_addr = slv_reg0 + (IMAGE_WIDTH*IMAGE_HEIGHT*2 - PACKET_SIZE)) then rd_addr <= slv_reg0; rd_addr <= rd_addr + PACKET_SIZE; when SEARCH_WRITE_INIT => if(bus2ip_mst_cmdack = '1') then search_rw_sm_state <= SEARCH_WRITE_GO; mst_cntl_wr_req <= '0'; when SEARCH_WRITE_GO =>
7 if(bus2ip_mst_cmplt = '1') then search_rw_sm_state <= SEARCH_RW_IDLE; if (wr_addr = slv_reg1 + (IMAGE_WIDTH*IMAGE_HEIGHT*2 - PACKET_SIZE)) then wr_addr <= slv_reg1; wr_addr <= wr_addr + PACKET_SIZE; when others => search_rw_sm_state <= SEARCH_RW_IDLE; end case; end process SEARCH_SM_RW_PROC; --use the read address when read is enabled, otherwise use write address mst_ip2bus_addr <= rd_addr when rd_en = '1' wr_addr; --END_ADDED This code basically read 64 bytes each time from DDR write to it 64 bytes each time. The base address for read is saved at slv_reg0 and the base address for write is saved at slv_reg1. We can set these address in the software, which make easier in case you want to change them. The number of bytes that is actually transfer is 680*480*2 (, you can change it, only make sure that it is multiple of 64). Actually, when you read from DDR the data is stored at the FIFO and when you write to DDR the data is read from FIFO and put on the Bus to be transferred to DDR. After make all this changes, you can save it and Generate Netlist, Bitstream and Export to SDK. You can create a new workspace to not overwrite your software application. Then, create a new Xilinx C Project as above, copy the following C code in your src folder, connect the Serial and Program to FPGA. C code to request read and write to DDR #include <stdlib.h> #include <stdio.h> #include "xparameters.h" #define printf xil_printf #define DDR1 0xA //define a base address of your DDR #define DDR2 0xA //define another base address of your DDR #define OFFSET 0x100 //offset for the master registers #define PCORE_BASEADDR 0x77A00000 //change to your pcore base address User program int main() {
8 //base address that we will read from volatile unsigned int *ddr1_addr = (volatile unsigned int *) DDR1; //base address the we will write to volatile unsigned int *ddr2_addr = (volatile unsigned int *) DDR2; //base address of our pcore (slave registers) volatile unsigned int *pcore_addr = (volatile unsigned int *) PCORE_BASEADDR; //base address of our pcore (master registers) volatile unsigned char *pcore_mst_addr = (volatile unsigned char *) (PCORE_BASEADDR + OFFSET); ddr1_addr[0] = 0xAAAABBBB; ddr2_addr[0] = 0xCCCCDDDD; //write a random value in the DDR1 base address //this value will copy to DDR2 //write a random value in the DDR2 base address //this value will be overwrited //write to slave registers pcore_addr[0] = DDR1; //address to read pcore_addr[1] = DDR2; //address to write int i = 0; while(1){ //for(i = 0; i < 640*480*2, i++){ printf("%8x %8x\n\r", ddr1_addr[i], ddr2_addr[i]); //} } } return 0; If you want to write any value to the slave registers in your pcore and read this value in the software application you should write the code in the SLAVE_REG_WRITE_PROC in the user_logic. An example is given below. SLAVE_REG_WRITE_PROC : process( Bus2IP_Clk ) is begin ( ) when others => --null; //write to slave register 2 slv_reg2 <= x"eeeeffff"; end case; end process SLAVE_REG_WRITE_PROC; Then to read this value in the software application only add the line below. //read from slave register 2 printf("slv_reg2: %8x", pcore_addr[2]); Now you already know how to create a simple pcore that reads and writes to the DDR and how to use its slave registers to communicate with MicroBlaze. I hope this tutorial has helped. For more information or bug reports contact me at yuka.kyushimasolano@mail.utoronto.edu.
ROBOTIC ARM CONTROLLED BY VIDEO INPUT
UNIVERSITY OF TORONTO ECE532 - DIGITAL SYSTEM DESIGN ROBOTIC ARM CONTROLLED BY VIDEO INPUT FINAL DESIGN REPORT Izaz Ullah Willian Rigon Silva Yuka Kyushima Solano April 9th, 2014 1 Table of Contents 1
More informationFixed-point Multiply and Accumulator IP Exercise
Electrical and Computer Engineering Fixed-point Multiply and Accumulator IP Exercise By Prawat Nagvajara Synopsis Design and implement a fixed-point multiply accumulator (Fig. 1) custom Intellectual Property
More informationSpartan-6 LX9 MicroBoard Embedded Tutorial. Tutorial 2 Adding EDK IP to an Embedded System
Spartan-6 LX9 MicroBoard Embedded Tutorial Tutorial 2 Adding EDK IP to an Embedded System Version 13.1.01 Revision History Version Description Date 13.1.01 Initial release for EDK 13.1 5/16/2011 Table
More informationThe Definitive Guide to Hardware/Software Interfacing with the XUP-Virtex2P-Pro Development System
The Definitive Guide to Hardware/Software Interfacing with the XUP-Virtex2P-Pro Development System Introduction Philip Amberg and Andrew Giles 4/14/2007 In this guide we will walk through setting up a
More informationLab 1 - Zynq RTL Design Flow
NTU GIEE, MULTIMEDIA SYSTEM-ON-CHIP DESIGN Lab 1 - Zynq RTL Design Flow Pin-Hung Kuo May 11, 2018 1 INTRODUCTION In this lab, we are going to build a simple Zynq system on ZedBoard. This system works as
More informationCreating 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 informationModule 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 informationFirstly, lets build the example design that shall be used throughout this tutorial by following the steps below:
Embedded Debugging Techniques In this simple tutorial, we shall be exploring the various debugging techniques; such as behavioural simulation and hardware debugging techniques such as the ILA and cross
More informationQSPI Flash Memory Bootloading In Standard SPI Mode with KC705 Platform
Summary: QSPI Flash Memory Bootloading In Standard SPI Mode with KC705 Platform KC705 platform has nonvolatile QSPI flash memory. It can be used to configure FPGA and store application image. This tutorial
More informationNerdy Musical Keyboard
ECE532 Group Report Nerdy Musical Keyboard Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto April 7 th, 2009 Sida Shen sida.shen@utoronto.ca ShiKuan Yu shikuan.yu@utoronto.ca
More informationECEN 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 informationLab Exercise 4 System on chip Implementation of a system on chip system on the Zynq
Lab Exercise 4 System on chip Implementation of a system on chip system on the Zynq INF3430/INF4431 Autumn 2016 Version 1.2/06.09.2016 This lab exercise consists of 4 parts, where part 4 is compulsory
More informationBuilding an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial
Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial Embedded Processor Hardware Design October 6 t h 2017. VIVADO TUTORIAL 1 Table of Contents Requirements... 3 Part 1:
More informationBuilding 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 informationWriting Basic Software Application
Lab Workbook Introduction This lab guides you through the process of writing a basic software application. The software you will develop will write to the LEDs on the Zynq board. An AXI BRAM controller
More informationXilinx 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 informationMicroblaze 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 informationInstantiation. 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 informationThe Zynq Book Tutorials
The Zynq Book Tutorials Louise H. Crockett Ross A. Elliot Martin A. Enderwitz Robert W. Stewart Department of Electronic and Electrical Engineering University of Strathclyde Glasgow, Scotland, UK v1.2
More informationUse Vivado to build an Embedded System
Introduction This lab guides you through the process of using Vivado to create a simple ARM Cortex-A9 based processor design targeting the ZedBoard development board. You will use Vivado to create the
More informationApplication Note for EVP
Sundance Multiprocessor Technology Limited Application Note Form : QCF32 Date : 11 Februay 2009 Unit / Module Description: SMT111-SMT372T-SMT946 Unit / Module Number: Document Issue Number: 1.0 Issue Date:
More informationChipScope 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 informationTutorial 1: C-Language
Tutorial 1: C-Language Problem 1: Data Type What are the ranges of the following data types? int 32 bits 2 31..2 31-1 OR -2147483648..2147483647 (0..4294967295 if unsiged) in some machines int is same
More informationSpartan-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 informationLab 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 informationSpartan-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 informationHello 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 informationAdding Custom IP to an Embedded System Using AXI
Lab Workbook Adding Custom IP to an Embedded System Using AXI Adding Custom IP to an Embedded System Using AXI Introduction This lab guides you through the process of adding a custom peripheral to a processor
More informationTP : System on Chip (SoC) 1
TP : System on Chip (SoC) 1 Goals : -Discover the VIVADO environment and SDK tool from Xilinx -Programming of the Software part of a SoC -Control of hardware peripheral using software running on the ARM
More informationECEN 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 informationAdding Custom IP to the System
Lab Workbook Introduction This lab guides you through the process of creating and adding a custom peripheral to a processor system by using the Vivado IP Packager. You will create an AXI4Lite interface
More informationCS360 Midterm 1 - February 21, James S. Plank. Put all answers on the answer sheet. In all of these questions, please assume the following:
CS360 Midterm 1 - February 21, 2017 - James S. Plank Put all answers on the answer sheet. In all of these questions, please assume the following: Pointers and longs are 4 bytes. The machine is little endian
More informationUse Vivado to build an Embedded System
Introduction This lab guides you through the process of using Vivado to create a simple ARM Cortex-A9 based processor design targeting the ZedBoard or Zybo board. Where the instructions refer to both boards,
More informationMicroblaze MCS Tutorial (updated to Xilinx Vivado ) (thanks to Kurt Wick from UMN with comments on changes from Vivado 2015.x to 2016.
Microblaze MCS Tutorial (updated to Xilinx Vivado 2016.2) (thanks to Kurt Wick from UMN with comments on changes from Vivado 2015.x to 2016.x) This tutorial shows how to add a Microblaze Microcontroller
More informationXilinx 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 informationLogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a)
DS799 March 1, 2011 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx Embedded
More informationQuick Start Guide ZedboardOLED Display Controller IP v1.0
Quick Start Guide Introduction This document provides instructions to quickly add, connect and use the ZedboardOLED v1.0 IP core. A test application running on an ARM processor system is used to communicate
More informationImpulse Embedded Processing Video Lab
C language software Impulse Embedded Processing Video Lab Compile and optimize Generate FPGA hardware Generate hardware interfaces HDL files ISE Design Suite FPGA bitmap Workshop Agenda Step-By-Step Creation
More informationUniversity 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 informationNIOS Character. Last updated 7/16/18
NIOS Character Last updated 7/16/18 Character Buffer Block Diagram CLK RST Clock Reset_bar CLK RST PLL 25MHz* CPU Onchip Memory JTAG UART Timer System ID S M S S S S S M S Character Buffer DMA Dual Port
More informationPartial Reconfiguration of a Processor Tutorial. PlanAhead Design Tool
Partial Reconfiguration of a Processor Tutorial PlanAhead Design Tool Notice of Disclaimer The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx
More informationLED display manager documentation
LED display manager documentation Clément Foucher (homepage) Clement.Foucher@laas.fr LAASCNRS Laboratoire d'analyse et d'architecture des systèmes Version 1.0 This work is licensed under the Creative Commons
More informationArduCAM-M-2MP Camera Shield
33275-MP ArduCAM-M-2MP Camera Shield 2MP SPI Camera Hardware Application Note Rev 1.0, Mar 2015 33275-MP ArduCAM-M-2MP Hardware Application Note Table of Contents 1 Introduction... 2 2 Typical Wiring...
More informationLogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a)
DS799 June 22, 2011 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx Embedded
More informationLogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v2.00.a)
DS799 December 14, 2010 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v2.00.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx
More informationThe Zynq Book. for Zybo and ZedBoard
The Zynq Book Tutorials for Zybo and ZedBoard The Zynq Book Tutorials for Zybo and ZedBoard Louise H. Crockett Ross A. Elliot Martin A. Enderwitz David Northcote Series Editors: Louise H. Crockett and
More informationGetting Started Guide
Series PMC-VFX70 Virtex-5 Based FPGA PMC Module Getting Started Guide ACROMAG INCORPORATED Tel: (248) 295-0310 30765 South Wixom Road Fax: (248) 624-9234 P.O. BOX 437 Wixom, MI 48393-7037 U.S.A. solutions@acromag.com
More informationInterrupt 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 informationCE 435 Embedded Systems. Spring Lab 3. Adding Custom IP to the SoC Hardware Debug. CE435 Embedded Systems
CE 435 Embedded Systems Spring 2018 Lab 3 Adding Custom IP to the SoC Hardware Debug 1 Introduction The first part of this lab guides you through the process of creating and adding a custom peripheral
More informationAUTOESL AXI TRAINING: LAB EXERCISES
AUTOESL AXI TRAINING: LAB EXERCISES AutoESL AXI Training: Laboratories www.xilinx.com 1 Xilinx is disclosing this user guide, manual, release note, and/or specification (the Documentation ) to you solely
More informationThe Simple MicroBlaze Microcontroller Concept Author: Christophe Charpentier
Application Note: Embedded Processing XAPP1141 (v3.0) November 9, 2010 The Simple MicroBlaze Microcontroller Concept Author: Christophe Charpentier Summary The Simple MicroBlaze Microcontroller (SMM) is
More informationCARDBUS INTERFACE USER MANUAL
CARDBUS INTERFACE USER MANUAL 1 Scope The COM-13xx ComBlock modules are PC cards which support communication with a host computer through a standard CardBus interface. These ComBlock modules can be used
More informationLogiCORE 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 informationAsynchronous FIFO Architectures (Part 1)
Asynchronous FIFO Architectures (Part 1) Vijay A. Nebhrajani Designing a FIFO is one of the most common problems an ASIC designer comes across. This series of articles is aimed at looking at how FIFOs
More informationSpartan-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 informationGetting 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 informationMicroblaze MCS Tutorial for Xilinx ISE Rev 3 (December 1, 2012) added UART examples
Microblaze MCS Tutorial for Xilinx ISE 14.2 Rev 3 (December 1, 2012) added UART examples This tutorial shows how to add a Microblaze MCS embedded processor to a project including adding a simple C program.
More informationEDK Concepts, Tools, and Techniques
EDK Concepts, Tools, and Techniques A Hands-On Guide to Effective Embedded System Design Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection
More informationAltera s Avalon Communication Fabric
Altera s Avalon Communication Fabric Stephen A. Edwards Columbia University Spring 2012 Altera s Avalon Bus Something like PCI on a chip Described in Altera s Avalon Memory-Mapped Interface Specification
More informationCopyright 2014 Xilinx
IP Integrator and Embedded System Design Flow Zynq Vivado 2014.2 Version This material exempt per Department of Commerce license exception TSU Objectives After completing this module, you will be able
More informationIntroduction to Xilinx Vivado tools
Introduction to Xilinx Vivado tools This document is meant to be a starting point for users who are new to using the Xilinx Vivado tools. The document will describe the basic steps to start, create, simulate,
More informationCCE 3202 Advanced Digital System Design
CCE 3202 Advanced Digital System Design Lab Exercise #2 This lab exercise will show you how to create, synthesize, and test a 3-bit ripple counter. A ripple counter is simply a circuit that outputs the
More informationLab5 2-Nov-18, due 16-Nov-18 (2 weeks duration) Lab6 16-Nov-19, due 30-Nov-18 (2 weeks duration)
CS1021 AFTER READING WEEK Mid-Semester Test NOW Thurs 8th Nov @ 9am in Goldsmith Hall (ALL students to attend at 9am) Final 2 Labs Lab5 2-Nov-18, due 16-Nov-18 (2 weeks duration) Lab6 16-Nov-19, due 30-Nov-18
More informationSynaptic Labs' AXI-Hyperbus Controller Design Guidelines
Synaptic Labs' AXI-Hyperbus Controller Design Guidelines Table of Contents Introduction...3 1.0 Set-Up Requirements...4 Step 1: Obtain core materials...4 Step 2: License Setup...4 Step 3: Install AXI HBMC
More informationDesigning 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 informationGigaX API for Zynq SoC
BUM002 v1.0 USER MANUAL A software API for Zynq PS that Enables High-speed GigaE-PL Data Transfer & Frames Management BERTEN DSP S.L. www.bertendsp.com gigax@bertendsp.com +34 942 18 10 11 Table of Contents
More informationReconfigurable Architecture (8)
Reconfigurable Architecture (8) osana@eee.u-ryukyu.ac.jp Last week and Today Last week: minimum processor-based system CPU + BlockRAM + AXI UART-Lite Hello World from SDK Today: processor-based system
More informationCreating 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İSTANBUL TECHNİCAL UNIVERSITY ELECTRİCAL ELECTRONICS ENGINEERING FACULTY
İSTANBUL TECHNİCAL UNIVERSITY ELECTRİCAL ELECTRONICS ENGINEERING FACULTY WRITING DRIVERS FOR CUSTOM PERIPHERAL RUNNİNG PARALLEL TO MICROBLAZE PROCESSOR ON FPGA BSc Thesis by Engin YÜREK Department: Electronics
More information427 Class Notes Lab2: Real-Time Clock Lab
This document will lead you through the steps of creating a new hardware base system that contains the necessary components and connections for the Real-Time Clock Lab. 1. Start up Xilinx Platform Studio
More informationLogiCORE IP AXI Video Direct Memory Access v4.00.a
LogiCORE IP AXI Video Direct Memory Access v4.00.a Product Guide Table of Contents Chapter 1: Overview Feature Summary............................................................ 9 Applications................................................................
More informationLogiCORE IP AXI DMA (v4.00.a)
DS781 June 22, 2011 Introduction The AXI Direct Memory Access (AXI DMA) core is a soft Xilinx IP core for use with the Xilinx Embedded Development Kit (EDK). The AXI DMA engine provides high-bandwidth
More informationVivado 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 informationECT 224: Digital Computer Fundamentals Using Xilinx StateCAD
ECT 224: Digital Computer Fundamentals Using Xilinx StateCAD 1) Sequential circuit design often starts with a problem statement tat can be realized in the form of a state diagram or state table a) Xilinx
More informationOPB 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 informationEDK Concepts, Tools, and Techniques
EDK Concepts, Tools, and Techniques A Hands-On Guide to Effective Embedded System Design Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection
More informationPOWERLINK Slave Xilinx Getting Started User's Manual
POWERLINK Slave Xilinx Getting Started Version 0.01 (April 2012) Model No: PLALTGETST-ENG We reserve the right to change the content of this manual without prior notice. The information contained herein
More informationLogiCORE IP AXI DMA v6.01.a
LogiCORE IP AXI DMA v6.01.a Product Guide Table of Contents SECTION I: SUMMARY IP Facts Chapter 1: Overview Typical System Interconnect......................................................... 8 Operating
More informationSpartan-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 informationLogiCORE IP AXI DMA (v3.00a)
DS781 March 1, 2011 Introduction The AXI Direct Memory Access (AXI DMA) core is a soft Xilinx IP core for use with the Xilinx Embedded Development Kit (EDK). The AXI DMA engine provides high-bandwidth
More informationPartial Reconfiguration of a Processor Peripheral Tutorial. PlanAhead Design Tool
Partial Reconfiguration of a Processor Peripheral Tutorial PlanAhead Design Tool This tutorial document was last validated using the following software version: ISE Design Suite 14.1 If using a later software
More informationUART 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 informationEENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering
EENG 2910 Project III: Digital System Design Due: 04/30/2014 Team Members: University of North Texas Department of Electrical Engineering Table of Content i Contents Abstract...3 Introduction...3 Report...4
More informationThe SystemC Verification Standard (SCV) Stuart Swan Senior Architect Cadence Design Systems, Inc.
The SystemC Verification Standard (SCV) Stuart Swan Senior Architect Cadence Design Systems, Inc. stuart@cadence.com The Verification Problem System Level Verification is typically done last, is typically
More informationArty MicroBlaze Soft Processing System Implementation Tutorial
ARTY MICROBLAZE SOFT PROCESSING SYSTEM IMPLEMENTATION TUTORIAL 1 Arty MicroBlaze Soft Processing System Implementation Tutorial Daniel Wimberly, Sean Coss Abstract A Microblaze soft processing system was
More informationImperas Peripheral Model Guide. Model Specific Information for xilinx.ovpworld.org / zynq_7000-ddrc. Imperas Software Limited
Imperas Peripheral Model Guide Model Specific Information for xilinx.ovpworld.org / zynq_7000-ddrc Imperas Software Limited Imperas Buildings, North Weston Thame, Oxfordshire, OX9 2HA, U.K. docs@imperas.com.
More informationActive Serial Memory Interface
Active Serial Memory Interface October 2002, Version 1.0 Data Sheet Introduction Altera Cyclone TM devices can be configured in active serial configuration mode. This mode reads a configuration bitstream
More informationVHDL Lexical Elements
1 Design File = Sequence of Lexical Elements && Separators (a) Separators: Any # of Separators Allowed Between Lexical Elements 1. Space character 2. Tab 3. Line Feed / Carriage Return (EOL) (b) Lexical
More informationMicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System
MicroBlaze Tutorial on EDK 10.1 using Sparatan III E Behavioural Simulation of MicroBlaze System Ahmed Elhossini January 24, 2010 1 Introduction 1.1 Objectives This tutorial will demonstrate process of
More informationProject Report Two Player Tetris
COMPUTER SCIENCE FACULTY OF ENGINEERING LUND UNIVERSITY Project Report Two Player Tetris Alexander Aulin, E07 (et07aa0) Niklas Claesson, E07 (et07nc7) Design of Embedded Systems Advanced Course (EDA385)
More informationLesson 09: SD Card Interface
Lesson 09: SD Card Interface 1. Introduction A Secure Data (SD) card is a data storage device that can be used as massive storage in an embedded system. We will introduce a method to access data on a SD
More informationADQ14 Development Kit
ADQ14 Development Kit Documentation : P Devices PD : ecurity Class: : Release : P Devices Page 2(of 21) ecurity class Table of Contents 1 Tools...3 2 Overview...4 2.1 High-level block overview...4 3 How
More informationAXI 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 informationLogiCORE IP AXI DMA v6.02a
LogiCORE IP AXI DMA v6.02a Product Guide Table of Contents SECTION I: SUMMARY IP Facts Chapter 1: Overview Operating System Requirements..................................................... 8 Feature Summary..................................................................
More informationLogiCORE IP AXI Video Direct Memory Access v5.00.a
LogiCORE IP AXI Video Direct Memory Access v5.00.a Product Guide Table of Contents Chapter 1: Overview Feature Summary............................................................ 9 Applications................................................................
More informationCS C Primer. Tyler Szepesi. January 16, 2013
January 16, 2013 Topics 1 Why C? 2 Data Types 3 Memory 4 Files 5 Endianness 6 Resources Why C? C is exteremely flexible and gives control to the programmer Allows users to break rigid rules, which are
More information82V391x / 8V893xx WAN PLL Device Families Device Driver User s Guide
82V391x / 8V893xx WAN PLL Device Families Device Driver Version 1.2 April 29, 2014 Table of Contents 1. Introduction... 1 2. Software Architecture... 2 2.1. Overview... 2 2.2. Hardware Abstraction Layer
More informationGeneric Serial Flash Interface Intel FPGA IP Core User Guide
Generic Serial Flash Interface Intel FPGA IP Core User Guide Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1. Generic
More informationCOVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)
EEL 4712 Midterm 2 Spring 2011 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read
More informationLogiCORE 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