Lecture 7 Lecture 7: Hardware/Software Systems on the XUP Board ECE 412: Microcomputer Laboratory.

Slides:



Advertisements
Similar presentations
Nios Multi Processor Ethernet Embedded Platform Final Presentation
Advertisements

Cortex-M3 Implementation Overview. Chapter 6 in the reference book.
Lecture 101 Lecture 10: Kernel Modules and Device Drivers ECE 412: Microcomputer Laboratory.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Jared Casper, Ronny Krashinsky, Christopher Batten, Krste Asanović MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA A Parameterizable.
Computer Architecture and Data Manipulation Chapter 3.
© ABB Group Jun-15 Evaluation of Real-Time Operating Systems for Xilinx MicroBlaze CPU Anders Rönnholm.
1 Performed By: Khaskin Luba Einhorn Raziel Einhorn Raziel Instructor: Rivkin Ina Spring 2004 Spring 2004 Virtex II-Pro Dynamical Test Application Part.
Term Project Overview Yong Wang. Introduction Goal –familiarize with the design and implementation of a simple pipelined RISC processor What to do –Build.
Fall 2006Lecture 16 Lecture 16: Accelerator Design in the XUP Board ECE 412: Microcomputer Laboratory.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Part A Final Presentation.
IO Controller Module Arbitrates IO from the CCP Physically separable from CCP –Can be used as independent data logger or used in future projects. Implemented.
DSP Algorithm on System on Chip Performed by : Einat Tevel Supervisor : Isaschar Walter Accompanying engineers : Emilia Burlak, Golan Inbar Technion -
Configurable System-on-Chip: Xilinx EDK
Computer System Overview
The Xilinx EDK Toolset: Xilinx Platform Studio (XPS) Building a base system platform.
Workload distribution in satellites Final Presentation Performed by :Grossman Vadim Maslovksy Eugene Instructor:Rivkin Inna Spring 2004.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Midterm Presentation.
I/O Subsystem Organization and Interfacing Cs 147 Peter Nguyen
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Characterization.
Controllers-system for APS – CubeSat nano-satellite Instructor: Daniel Alkalay Students: Moshe Emmer & Meir Harar Technion – Israel Institute of Technology.
Implementation of DSP Algorithm on SoC. Mid-Semester Presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompaning engineer : Emilia Burlak.
Technion Digital Lab Project Performance evaluation of Virtex-II-Pro embedded solution of Xilinx Students: Tsimerman Igor Firdman Leonid Firdman.
Technion – Israel Institute of Technology Department of Electrical Engineering High Speed Digital Systems Lab Mid-Term Presentation Performed by: Roni.
1 Design of the Front End Readout Board for TORCH Detector 10, June 2010.
System Architecture A Reconfigurable and Programmable Gigabit Network Interface Card Jeff Shafer, Hyong-Youb Kim, Paul Willmann, Dr. Scott Rixner Rice.
Lecture 12 Today’s topics –CPU basics Registers ALU Control Unit –The bus –Clocks –Input/output subsystem 1.
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
NetBurner MOD 5282 Network Development Kit MCF 5282 Integrated ColdFire 32 bit Microcontoller 2 DB-9 connectors for serial I/O supports: RS-232, RS-485,
Ross Brennan On the Introduction of Reconfigurable Hardware into Computer Architecture Education Ross Brennan
This material exempt per Department of Commerce license exception TSU Hardware Design.
Hardware Design This material exempt per Department of Commerce license exception TSU.
© 2004 Xilinx, Inc. All Rights Reserved EDK Overview.
2007 Oct 18SYSC2001* - Dept. Systems and Computer Engineering, Carleton University Fall SYSC2001-Ch7.ppt 1 Chapter 7 Input/Output 7.1 External Devices.
Chapter 2 The CPU and the Main Board  2.1 Components of the CPU 2.1 Components of the CPU 2.1 Components of the CPU  2.2Performance and Instruction Sets.
Top Level View of Computer Function and Interconnection.
Research on Reconfigurable Computing Using Impulse C Carmen Li Shen Mentor: Dr. Russell Duren February 1, 2008.
© 2007 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Hardware Design INF3430 MicroBlaze 7.1.
2009 Sep 10SYSC Dept. Systems and Computer Engineering, Carleton University F09. SYSC2001-Ch7.ppt 1 Chapter 7 Input/Output 7.1 External Devices 7.2.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
LAB1 Summary Zhaofeng SJTU.SOME. Embedded Software Tools CPU Logic Design Tools I/O FPGA Memory Logic Design Tools FPGA + Memory + IP + High Speed IO.
1 EDK 7.1 Tutorial -- SystemACE and EthernetMAC on Avnet Virtex II pro Development Boards Chia-Tien Dan Lo Department of Computer Science University of.
Part A Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Wang-110 D/MAPLD SEU Mitigation Techniques for Xilinx Virtex-II Pro FPGA Mandy M. Wang JPL R&TD Mobility Avionics.
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
Computer Hardware The Processing Unit.
This material exempt per Department of Commerce license exception TSU Xilinx On-Chip Debug.
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
What is a Microprocessor ? A microprocessor consists of an ALU to perform arithmetic and logic manipulations, registers, and a control unit Its has some.
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
IT3002 Computer Architecture
Computer operation is of how the different parts of a computer system work together to perform a task.
Survey of Reconfigurable Logic Technologies
Group 1 chapter 3 Alex Francisco Mario Palomino Mohammed Ur-Rehman Maria Lopez.
بسم الله الرحمن الرحيم MEMORY AND I/O.
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Lecture 2. A Computer System for Labs
Ming Liu, Wolfgang Kuehn, Zhonghai Lu, Axel Jantsch
Sega Dreamcast Visual Memory Unit FPGA Implementation
CS703 - Advanced Operating Systems
FPro Bus Protocol and MMIO Slot Specification
Presentation transcript:

Lecture 7 Lecture 7: Hardware/Software Systems on the XUP Board ECE 412: Microcomputer Laboratory

Lecture 7 Outline Overview of Linux/HW interaction on the XUP board Resources available for you on the board Discussion of the Virtex-II Pro’s BlockRAMs

Lecture 7 Review Questions What function does the mmap() call serve in implementing memory-mapped I/O? What are the two alternatives of communicating between the devices and the processor? Comparison of these methods?

Lecture 7 Review Questions What function does the mmap() call serve in implementing memory-mapped I/O? –mmap() causes a set of device registers or other data to be mapped onto a region in the address space What are the two alternatives of communicating between the devices and the processor? Comparison of these methods? –Polling: takes CPU time even if no requests pending can be better if the processor has nothing better to do and has to respond to an event ASAP –Interrupts: no overhead when no requests pending can be better if the processor has other work to do and the time to respond to events isn’t absolutely critical (need context switching)

Lecture 7 The XUP Board XUP Board FPGA PowerPC I/O Connector SDRAM Ethernet Serial Port Audio In/Out VGA FLASH Card

Lecture 7 Pure-Hardware System XUP Board FPGA PowerPC I/O Connector Logic SDRAM Ethernet Serial Port Audio In/Out VGA FLASH Card

Lecture 7 XUP Board as PC XUP Board FPGA PowerPC I/O Connector Ethernet SDRAM Serial Port Audio In/Out VGA FLASH Card FLASH Controller VGA Controller Audio Controller UART Controller Ethernet Controller SDRAM Controller PLB Bus

Lecture 7 ECE 412 Approach -- HW/SW System XUP Board FPGA PowerPC I/O Connector Ethernet SDRAM Serial Port Audio In/Out VGA FLASH Card FLASH Controller UART Controller SDRAM Controller PLB Bus Logic

Lecture 7 MP2 Configuration XUP Board FPGA PowerPC I/O Connector Ethernet SDRAM Serial Port Audio In/Out VGA FLASH Controller UART Controller SDRAM Controller PLB Bus Logic Core OPB I/O Connector FLASH Card

Lecture 7 Embedded Power PC 405 Core

Lecture 7 PPC Functional blocks –Cache units (ICU and DCU, 16 KB each) –Memory Management unit –Fetch Decode unit –Execution unit –Timers –Debug logic unit It operates on instructions in a five stage pipeline consisting of –fetch, decode, execute, write-back, and load write-back –Most instructions execute in a single cycle, including loads and stores.

Lecture 7 Creating a HW/SW System Custom logic needs to conform to bus/interface protocols –We’ll provide documentation about this –For MP2.1, we provide a prototype for the function you have to write (In VHDL) Assemble custom logic, IP cores, software into a package that can be downloaded onto the board –EDK tool creates bit file for FPGA –SystemACE HW loads Linux/other SW off of FLASH card –Can also pre-load BlockRAMs w/data as part of FPGA programming

Lecture 7 Interfaces to the PowerPC Cores Processor Local Bus (PLB) –64-bit bus that handles fast data transfers with the PowerPC and the peripherals For example, DDR controller hangs on this bus There is also a 32-bit bus called OPB (On-Chip Peripheral Bus) that handles slower peripheral devices For example, for UART and SystemACE access Needs to connect to PLB via a special PLB-to-OPB bridge OCM (On-Chip Memory) Controller –Allows memory (BlockRAMs) to be accessed at rates comparable to the caches –Great way to build data buffers Interrupt Controller Device Control Register –Allows creation of a register file that is “shared” among all of the devices connected to the PowerPC Clock, Power Management JTAG Port

Lecture 7 Other Resources SDRAM –Lots of space, complex interface requirements –Controlled via IP core –Your HW can interface with core, simplifying things BlockRAM –Small, on-chip memory –Can be configured in a number of ways –Fast, simple interface

Lecture 7 Virtex Block SelectRAM 18Kb capacity and configurable at build time to be either: 1 x 16K 2 x 8K 4 x 4K 8 x 2K 16 x 1K 32 x of these on each XC2VP30 FPGA for total of 2.4Mb total Dual ported, can be aggregated to form larger structures Parity bits, possible to pre-load with data in VHDL

Lecture 7 Generic Block Diagrams

Lecture 7 Interface Signals

Lecture 7 Supported Configurations Your VHDL will instantiate using primitives Each reference is an individual BRAM Could form larger memory block by assembling number of primitives, routing delay would determine total access time.

Lecture 7 Physical Location

Lecture 7 Read and Write Timing Refer to posted application notes for exact details: XAPP-463 (says Spartan-3 but is applicable to our parts) XAPP-130 (basic operation, but is for early smaller BRAMS)

Lecture 7 Instantiating BlockRAMs Declare as components, can instantiate multiple copies of a component component RAMB16_s9 Port ( clk : in std_logic;... ); end component; Documentation section of the web page has instructions on simulating designs that use BlockRAM, example that links multiple BlockRAMs to form larger memory

Lecture 7 Uses for BlockRAMs “Scratchpad” memories in designs ROM arrays -- can pre-load BlockRAMs with fixed values –CLBs are reasonably efficient at implementing ROMs, so don’t need to use BlockRAMs unless you have a very big ROM –CLB’s are very inefficient at implementing RAMs, want to use a BlockRAM any time you need more than a few words of RAM/register Buffer for Linux/HW communication –One simple way to move data between Linux and HW is to use BlockRAM buffer for data, interrupt/register write to signal when data is ready.

Lecture 7 Next Time The PLB bus