Field Programmable Port Extender (FPX) 1 Example RAD Design: IP Router using Fast IP Lookup.

Slides:



Advertisements
Similar presentations
Xilinx 6.3 Tutorial Integrated Software Environment (ISE) Set up basic environment Select Gates or Modules to Be simulated (Insert Program Code) Run Waveform.
Advertisements

NetFPGA Project: 4-Port Layer 2/3 Switch Ankur Singla Gene Juknevicius
Integrated Circuits Laboratory Faculty of Engineering Digital Design Flow Using Mentor Graphics Tools Presented by: Sameh Assem Ibrahim 16-October-2003.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
10 - Network Layer. Network layer r transport segment from sending to receiving host r on sending side encapsulates segments into datagrams r on rcving.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
VHDL Synthesis in FPGA By Zhonghai Shi February 24, 1998 School of EECS, Ohio University.
VHDL Intro What does VHDL stand for? VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuit Developed in 1982 by Govt. to standardize.
Implementation of DSP Algorithm on SoC. Mid-Semester Presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompaning engineer : Emilia Burlak.
Global Timing Constraints FPGA Design Workshop. Objectives  Apply timing constraints to a simple synchronous design  Specify global timing constraints.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
The FPX KCPSM Module Exercise 1 Henry Fu The Layered Protocol Wrappers Exercise: Network Data Encryption / Decryption Using ROT13 Algorithm Henry Fu Washington.
NetFPGA Cambridge Spring School Mar Day 2: NetFPGA Cambridge Spring School Module Development and Testing Presented by: Andrew W. Moore and.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
The Layered Protocol Wrappers 1 Florian Braun, Henry Fu The Layered Protocol Wrappers: A Solution to Streamline Networking Functions to Process ATM Cells,
High-Level Interconnect Architectures for FPGAs An investigation into network-based interconnect systems for existing and future FPGA architectures Nick.
Applied research laboratory David E. Taylor Users Guide: Fast IP Lookup (FIPL) in the FPX Gigabit Kits Workshop 1/2002.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
Graduate Computer Architecture I VHDL Structure and Testing Michael Sorensen.
High-Level Interconnect Architectures for FPGAs Nick Barrow-Williams.
SoC Verification HW #2 TA: Wei-Ting Tu Assignment: 04/12/06
HDL Bencher FPGA Design Workshop. For Academic Use Only Presentation Name 2 Objectives After completing this module, you will be able to:  Describe the.
Gigabit Kits Workshop August Washington WASHINGTON UNIVERSITY IN ST LOUIS IP Processing Wrapper Tutorial Gigabitkits Workshop August 2001
VHDL IE- CSE. What do you understand by VHDL??  VHDL stands for VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 4 : Demonstration of Machine Problem 1 : CAM-based Firewall Washington.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
Field Programmable Port Extender (FPX) 1 Simulation of the Hello World Application for the Field-programmable Port Extender (FPX) John W. Lockwood, Washington.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 4 : Demonstration of Machine Problem 1 : CAM-based Firewall Washington.
This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
The FPX KCPSM Module Exercise 1 Henry Fu The FPX KCPSM Module Exercise: Network Data Encryption / Decryption Using ROT13 Algorithm Henry Fu Washington.
Extensible Networking Platform Lockwood / Zuver - Applied Research Laboratory -- Extensible Networking Development of a System-On-Chip Extensible.
CS/CoE 536 : Lockwood 1 Project Integration : In order to ensure that projects can be integrated at the end of the semester, a few rules have been developed.
Programmable Logic Training Course HDL Editor
© 2003 Xilinx, Inc. All Rights Reserved System Simulation.
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
Lecture 13: Reconfigurable Computing Applications October 10, 2013 ECE 636 Reconfigurable Computing Lecture 11 Reconfigurable Computing Applications.
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
Field Programmable Port Extender (FPX) 1 NCHARGE: Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied.
Proposal for an Open Source Flash Failure Analysis Platform (FLAP) By Michael Tomer, Cory Shirts, SzeHsiang Harper, Jake Johns
Field Programmable Port Extender (FPX) 1 Simulation of the Hello World Application for the Field-programmable Port Extender (FPX) Dave Lim and John Lockwood.
Field Programmable Port Extender (FPX) 1 Software Tools for the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied Research.
Teaching Digital Logic courses with Altera Technology
PARBIT Tool 1 PARBIT Partial Bitfile Configuration Tool Edson L. Horta Washington University, Applied Research Lab August 15, 2001.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 11 : Priority and Per-Flow Queuing in Machine Problem 3 (Revision 2) Washington.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the Field Programmable Port Extender John Lockwood and David Taylor Washington University.
Field Programmable Port Extender (FPX) 1 Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied Research.
The FPX KCPSM Module 1 Henry Fu The FPX KCPSM Module: An Embedded, Reconfigurable Active Processing Module for the FPX Henry Fu Washington University.
Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals.
Modular Design Techniques for the FPX
Introduction to Programmable Logic
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Getting Started with Programmable Logic
Washington University
Washington University
Introduction to cosynthesis Rabi Mahapatra CSCE617
Week 5, Verilog & Full Adder
Introduction to Verilog
Hello Bob – An example application for the FPX
Washington University, Applied Research Lab
Remote Management of the Field Programmable Port Extender (FPX)
Layered Protocol Wrappers Design and Interface review
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

Field Programmable Port Extender (FPX) 1 Example RAD Design: IP Router using Fast IP Lookup

Field Programmable Port Extender (FPX) 2 Overview Design Overview –Top-level RAD Design –Fast IP Lookup Module –FIPL Control and FIPL Engine Architecture Design Flow (UNIX, Exemplar, Xilinx) FPX file tree FIPL Simulation Environment Exercise #1: RAD_FIPL Cell I/O simulation Exercise #2: Structural VHDL, Cell I/O simulation (Break for software exercise) Exercise #3: Cell I/O simulation with software output Behavioral VHDL Tips & Sources

Field Programmable Port Extender (FPX) 3 Design Overview SRAM 1 SRAM 2 IP Lookup Engine counter On-Chip Cell Store SRAM 1 Interface Control Cell Processor Packet Reassembler RAD FPGA NID FPGA Extract IP Headers Remap VCIs for IP packets LC SW Request Grant

Field Programmable Port Extender (FPX) 4 Top-level Design (RAD_FIPL) FIPL Module Infrastructure –(2) SRAM Interfaces –Reconfiguration Control –Control Cell Processor CCP FIPL Module RECONFIG_CNTL SRAM_INTERFACE RAD_FIPL

Field Programmable Port Extender (FPX) 5 Fast IP Lookup Module IP Wrapper –Implements module cell I/O interfaces, cell FIFO –Extracts destination IP addresses, writes to IP address FIFO in FIPL Control –Reads next-hop FIFO in FIPL Control, modifies VCI of outgoing IP packets –Passes other ATM traffic FIPL Control –Implements module control and SRAM interfaces –Performs longest-prefix match address lookups IP Wrapper FIPL Control SRAM Interface SOC DATA TCA SOC DATA TCA RESET_L, CLK ENABLE_L READY_L Request, Grant, R/W, Address, Data_in, Data_out

Field Programmable Port Extender (FPX) 6 FIPL Control & FIPL Engine Architecture FIPL Control –Input FIFO for 32-bit IPv4 destination addresses –Output FIFO for 16-bit next- hops –State-machine guarantees delivery of next-hops in order of address arrival –Instantiates 3 FIPL Engines Multiplexes incoming data and outgoing addresses based on known engine cycle time FIPL Engine –Implements Tree Bitmap algorithm for longest prefix matching –Flops incoming data, 3-cycle logic computation, flops next read address SRAM Address SRAM Data IP Dest. Address Next Hop C/L FIPL Engine C/L FIPL Engine C/L FIPL Engine FIPL Control

Field Programmable Port Extender (FPX) 7 Optimal Design Flow UNIX Solaris OS HDL Specification (xemacs VHDL, Mentor Graphics) –Enumerate constraints (conservative delay estimates) –Design hardware (block diagrams, RTL) –FSM synthesis (memory latencies, etc.) –Behavioral VHDL description Avoid procedures and functions Use processes with caution (don’t imply latches) Simulation (ModelSim) –Simulate module partitions separately Full testbenches unnecessary, simple stimulus files suffice –Simulate full module Testbench with file I/O recommended –Simulate top-level design with module/infrastructure Use “fake_nid” files to simulate cell I/O

Field Programmable Port Extender (FPX) 8 Optimal Design Flow (continued) Synthesis (Exemplar, Synplicity) –Spectrum scripts for simple designs –Leonardo GUI for complex designs, multi-cycle paths –Synplicity GUI (faster for most designs) FIPL design will be migrated to Synplicity soon Place & Route (Xilinx Alliance Series) –Constraint passing caveats Make sure constraints generated by synthesis tool are passed forward to PAR tool using constraint editor Timing constriants may need to be repeated in PAR –Physical Constraints Pin mappings contained in rad.ucf –Floorplanning Essential for half-chip designs, timing critical modules Backannotated Gate-level Simulation (ModelSim)

Field Programmable Port Extender (FPX) 9 FPX File Tree Provided directories in all CAPS –Distinguishes original (sub)directories from those added by Kits members Create subdirectory for new module designs under MODULES –Perform local simulation and synthesis Create subdirectory for new top-level builds under TOP –Instantiate modules and necessary infrastructure –Perform system-level simulation, top-level synthesis

Field Programmable Port Extender (FPX) 10 FIPL Simulation Environment CCP_CELLS Micron ZBT SRAM model Micron ZBT SRAM model FAKE_NID SW_OUT FAKE_NID SW_IN FAKE_NID LC_OUT FAKE_NID LC_IN TESTBENCH CCP_RESPONSE IP_CELLS IP_RESULTS CCP FIPL Module RECONFIG_CNTL SRAM_INTERFACE RAD_FIPL

Field Programmable Port Extender (FPX) 11 Exercise #1: RAD_FIPL Cell I/O Simulation Download tutorial files from FPX Workshop Agenda page –fipl_tutorial.tar.gz Open cygwin window Expand files –“gunzip fipl_tutorial.tar.Z” –“tar -xvf fipl_tutorial.tar” Navigate source tree –“cd FPX_ROOT/RAD”, “ls” –“cd MODULES/IP_LOOKUP_ENGINE”, “ls” –“cd vhdl” –“less fipl_module.vhd” –“cd fipl” –“less fipl.vhd” –“cd../../../../INFRASTRUCTURE”, “ls” –Look at any infrastructure modules that interest you

Field Programmable Port Extender (FPX) 12 Exercise #1: RAD_FIPL Cell I/O Simulation Go to top-level VHDL directory –“cd ~/FPX_ROOT/RAD/TOP/RAD_FIPL/vhdl” –“less rad_fipl.vhd” (top-level structural VHDL) –Observe module instantiation and “wiring” Component –Entity declaration for module Instance –Module instantiation Signal –Wire, connects ports of entities, single driver, single or multiple receivers –“less testbench_rad_fipl.vhd” (testbench, structural VHDL) Go to top-level simulation directory –“cd../sim” –“less Makefile”

Field Programmable Port Extender (FPX) 13 Exercise #1: RAD_FIPL Cell I/O Simulation Examine input test vectors –“less CCP_CELLS.DAT” Cells to build tree bitmap data structure in memory Wait states prevent CCP buffers from overflowing –“less IP_CELLS.DAT” IP Packet test vectors (only the destination address is important, these are not proper AAL5 frames) IP destination address located in 7 th word of ATM cell Test vectors arrive on VCI=0x003E –(3 cell packet, DA = 0x0ABAC000, NH = 0x3F) –(2 cell packet, DA = 0xDA800000, NH = 0x22) –(1 cell packet, DA = 0x0ABAA000, NH = 0x04) »For example: should be sent out on VCI 0x0004 –(1 cell packet, DA = 0x , NH = 0x06) –(Change incoming VCI to 0x0064) –(Repeat vectors)

Field Programmable Port Extender (FPX) 14 Exercise #1: RAD_FIPL Cell I/O Simulation For new simulation environments, use “make newsim” to create new work directory –This is already done for the tutorial directory Compile FIPL module, infrastructure modules, RAD_FIPL, fake_NIDs, and testbench –“make enchilada” Simulate testbench –“make sim” –Picosecond resolution is necessary in order to use Micron memory models (“-t ps” option is used for vsim) –In ModelSim command window type “do rad_stim” This stimulus file will open the appropriate view windows for the simulator and run the simulation for the correct amount of time –Output cell files will be generated (CCP_RESPONSE.DAT, IP_RESULTS.DAT)

Field Programmable Port Extender (FPX) 15 Exercise #1: RAD_FIPL Cell I/O Simulation Examine “CCP_RESPONSE.DAT” –Note that OpCodes have been incremented Examine “IP_RESULTS.DAT” –Check for VCI = Next Hop for the destination address –For example: VCI = 0x003F new_cell F8 8C B F776E20 0ABAC000 6A756D F C617A F67 2E0A0000 DA = 0x0ABAC (7 th word of ATM cell for AAL5 frames)

Field Programmable Port Extender (FPX) 16 Exercise #1: RAD_FIPL Cell I/O Simulation Caveats and “features” –Tri-state I/O buffer simulation models generate undefined outputs when the input is tri-stated Not an issue for physical system due to pull-ups in FPGA –Warnings in ModelSim command window regarding simultaneous read/write to memory ports CCP FIFO uses a custom FIFO to examine the first word at the head of the FIFO Warnings will be address by new cell FIFO, but simulation operations correctly

Field Programmable Port Extender (FPX) 17 Exercise #2: Structural VHDL, Cell I/O Sim Backup old top-level structural VHDL –“cp rad_fipl.vhd rad_fipl.vhd.OLD” Download “rad_fipl_shell.vhd” from FPX Workshop Agenda page to ~/FPX_ROOT/RAD/TOP/RAD_FIPL/vhdl/ –This is the same top-level (structural) VHDL file as before, but the FIPL module has been removed –“mv rad_fipl_shell.vhd rad_fipl.vhd” Redesign the IP Lookup Engine and insert it in the top- level file –Just kidding, but now that you are awake… Attain a copy of the FIPL module entity for declaration in the top-level –Navigate the directory tree to the “vhdl/” directory for FIPL –Open “fipl_module.vhd” and make a copy of the entity port declaration

Field Programmable Port Extender (FPX) 18 Exercise #2: Structural VHDL, Cell I/O Sim Return to the top-level vhdl directory Insert the FIPL Module in the top-level structural VHDL file –Open “rad_fipl.vhd” in a text editor –Paste a copy of the FIPL module entity into “rad_fipl.vhd” above the “component” declaration for the CCP –Modify the entity port declaration to the correct syntax for a structural component declaration If you do not know the correct syntax, use the component declarations for the CCP and RECONFIG_CNTL as guides If you are having problems, consult the old structural VHDL for guidance; BUT DON’T CHEAT! –Paste another copy of the FIPL module entity into “rad_fipl.vhd” above the CCP instance “CCP_MOD:ccp” –Leave this unmodified for now

Field Programmable Port Extender (FPX) 19 Exercise #2: Structural VHDL, Cell I/O Sim –Declare all necessary signals needed for fipl_module “wiring” in the region where other signals are declared Cell I/O interfaces SRAM interface Control interface Consult the old structural VHDL for help –Return to the unmodified entity port delclaration for the FIPL –Modify to the correct instance syntax and use signals to “wire up” the FIPL module FIPL cell input interface should be wired to “LC_NID” pad signals FIPL cell output interface should be wired to “LC_RAD” pad signals FIPL SRAM interface should be wired to unoccupied port (mod1) of SRAM1 interface Clk should be connected to RAD_CLK reset_l, enable_l, and ready_l should be wired to mod0 port of the Reconfiguration Control

Field Programmable Port Extender (FPX) 20 Exercise #2: Structural VHDL, Cell I/O Sim Recompile top-level and testbench files –“make top” No need to recompile FIPL module –If there are errors, correct them –Consult old structural VHDL file for assistance with unresolvable errors Close the simulator (if still open from Exercise #1) in order to clear memory contents from previous simulation Remove old simulation output files –“rm CCP_RESPONSE.DAT” –“rm IP_RESULTS.DAT” Simulate the design –“make sim” –In the ModelSim command window, type “do rad_stim” –Check output files for correct results

Field Programmable Port Extender (FPX) 21 Exercise #3: Cell I/O Sim with SW Output Backup old data structure input file –“mv CCP_CELLS.DAT CCP_CELLS.DAT.OLD” Create new data structure input file –“mv NEW_CCP_CELLS.DAT CCP_CELLS.DAT” Close simulator from previous runs to clear memory Rerun simulation –“make sim” –In ModelSim command window “do rad_stim”

Field Programmable Port Extender (FPX) 22 Exercise #3: Cell I/O Sim with SW Output Check “IP_RESULTS.DAT” for correct output All lookups should be identical with exception to address which should now be on outgoing VCI = 0x004D VCI = 0x003F new_cell D8 8C B F776E20 0ABAC000 6A756D F C617A F67 2E0A0000 DA = 0x0ABAC (7 th word of ATM cell for AAL5 frames)

Field Programmable Port Extender (FPX) 23 Behavioral VHDL Tips & Sources Design first, design again, then code Code should directly correspond to physical hardware –Think in terms of describing flip-flops, logic, multiplexors NOT procedure and object calls Partition FSMs for simplicity –Process using case statement for next state assignment Take care to include all signals that you condition on in the sensitivity list of the process (otherwise you will imply asynchronous latches) –Flip-flop for assigning next state to state –State signal used in logic operations outside of the state transition process Lots of good sources for help and guidance –Books “VHDL Make Easy!” Pellerin & Taylor “VHDL Starter’s Guide” Yalamanchili –FPX Mailing list

Field Programmable Port Extender (FPX) 24 End of Presentation