The FPX KCPSM Module Exercise 1 Henry Fu The Layered Protocol Wrappers Exercise: Network Data Encryption / Decryption Using ROT13 Algorithm Henry Fu Washington.

Slides:



Advertisements
Similar presentations
© 2003 Xilinx, Inc. All Rights Reserved Architecture Wizard and PACE FPGA Design Flow Workshop Xilinx: new module Xilinx: new module.
Advertisements

Integrated Circuits Laboratory Faculty of Engineering Digital Design Flow Using Mentor Graphics Tools Presented by: Sameh Assem Ibrahim 16-October-2003.
Graduate Computer Architecture I Lecture 15: Intro to Reconfigurable Devices.
Random-Access Memory Distributed and Block RAM Discussion D10.3 Example 41.
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
1 - ECpE 583 (Reconfigurable Computing): Tools overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing (Tools overview) Instructor: Dr.
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
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.
Introduction to Design Tools COE Review: Tools, functions, design flow Four tools we will use in this course – HDL Designer Suite FPGA Advantage.
NetFPGA Cambridge Spring School Mar Day 2: NetFPGA Cambridge Spring School Module Development and Testing Presented by: Andrew W. Moore and.
Ch.9 CPLD/FPGA Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology.
The Layered Protocol Wrappers 1 Florian Braun, Henry Fu The Layered Protocol Wrappers: A Solution to Streamline Networking Functions to Process ATM Cells,
Applied research laboratory David E. Taylor Users Guide: Fast IP Lookup (FIPL) in the FPX Gigabit Kits Workshop 1/2002.
Xilinx Development Software Design Flow on Foundation M1.5
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
1 Introduction to Xilinx ISL8.1i Schematic Capture and VHDL 1.
HDL Bencher FPGA Design Workshop. For Academic Use Only Presentation Name 2 Objectives After completing this module, you will be able to:  Describe the.
Tools - Implementation Options - Chapter15 slide 1 FPGA Tools Course Implementation Options.
Gigabit Kits Workshop August Washington WASHINGTON UNIVERSITY IN ST LOUIS IP Processing Wrapper Tutorial Gigabitkits Workshop August 2001
© 2003 Xilinx, Inc. All Rights Reserved FPGA Editor: Viewing and Editing a Routed Design.
FPGA_Editor Probes. . Probe Overview 2 Adding a Probe : GUI Probes tie an internal signal to an output pin To Launch the GUI: Click the “probes” button.
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.
Language Concepts Ver 1.1, Copyright 1997 TS, Inc. VHDL L a n g u a g e C o n c e p t s Page 1.
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.
OVERVIEW OF OVERVIEW OF Spartan-3. DESIGNFLOW Translate Map Place & Route Plan & Budget HDL RTL Simulation Synthesize to create netlist Functional Simulation.
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.
Fall 08, Oct 31ELEC Lecture 8 (Updated) 1 Lecture 8: Design, Simulation Synthesis and Test Tools ELEC 2200: Digital Logic Circuits Nitin Yogi
Extensible Networking Platform Lockwood / Zuver - Applied Research Laboratory -- Extensible Networking Development of a System-On-Chip Extensible.
Programmable Logic Training Course HDL Editor
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE Presenter: Shu-yen Lin Advisor: Prof. An-Yeu Wu 2005/6/6.
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
1 - CPRE 583 (Reconfigurable Computing): VHDL to FPGA: A Tool Flow Overview Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 5: 9/7/2011.
Hot Interconnects TCP-Splitter: A Reconfigurable Hardware Based TCP/IP Flow Monitor David V. Schuehler
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.
Introduction to FPGA Tools
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 7 : Demonstration of Machine Problem 2 : SPAM FILTER Washington University.
© 2004 Xilinx, Inc. All Rights Reserved Adding a Processor System to an FPGA Design.
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 Example RAD Design: IP Router using Fast IP Lookup.
Teaching Digital Logic courses with Altera Technology
Tools - Analyzing your results - Chapter 7 slide 1 Version 1.5 FPGA Tools Course Analyzing your Results.
Gigabit Kits Workshop January Washington WASHINGTON UNIVERSITY IN ST LOUIS Higher-Level Data Processing on the FPX Applied Research Laboratory Washington.
PARBIT Tool 1 PARBIT Partial Bitfile Configuration Tool Edson L. Horta Washington University, Applied Research Lab August 15, 2001.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the Field Programmable Port Extender John Lockwood and David Taylor Washington University.
The FPX KCPSM Module 1 Henry Fu The FPX KCPSM Module: An Embedded, Reconfigurable Active Processing Module for the FPX Henry Fu Washington University.
The Whole Sort of General Mish Mash Frequently Asked Questions and Trip-ups About the CASPER Libraries and Toolflow Henry Chen, CASPER Workshop, August.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
NetFPGA Environment Prepared by Van Quoc Dung. Agency Way to connect to server Subversion control Xilinx development environment Testing problem.
Introduction to Vivado
Modular Design Techniques for the FPX
Dept. of Electrical and Computer Engineering
M1.5 Foundation Tools Xilinx XC9500/XL CPLD
Dave Lim and John Lockwood Washington University,
Washington University
Washington University
Topics HDL coding for synthesis. Verilog. VHDL..
Hello Bob – An example application for the FPX
FPGA Tools Course Answers
CPRE 583 Reconfigurable Computing (Tools overview)
Layered Protocol Wrappers Design and Interface review
Founded in Silicon Valley in 1984
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

The FPX KCPSM Module Exercise 1 Henry Fu The Layered Protocol Wrappers Exercise: Network Data Encryption / Decryption Using ROT13 Algorithm Henry Fu Washington University Applied Research Lab Supported by: NSF ANI and Xilinx Corp.

The FPX KCPSM Module Exercise 2 Henry Fu The Layered Protocol Wrappers Exercise Network data encryption / decryption using ROT13 algorithm –Rotates characters by 13 places ‘A’  ‘N’, ‘M’  ‘Z’, ‘a’  ‘n’, ‘m’  ‘z’ –Encryption Example: ‘Hello World’ encrypts to ‘Uryyb Jbeyq’ –Decryption Example: ‘Uryyb Jbeyq’ decrypts to ‘Hello World’

The FPX KCPSM Module Exercise 3 Henry Fu Approach to the ROT13 Algorithm Consider the following four cases –IF (ch >= ‘A’) && (ch <= ‘M’) Rotate “Right” ch by 13 characters –IF (ch >= ‘N’) && (ch <= ‘Z’) Rotate “Left” ch by 13 characters –IF (ch >= ‘a’) && (ch <= ‘m’) Rotate “Right” ch by 13 characters –IF (ch >= ‘n’) && (ch <= ‘z’) Rotate “Left” ch by 13 characters

The FPX KCPSM Module Exercise 4 Henry Fu The ROT13 Module Package –Detailed information on the Internet: –Download the ROT13 Module Package Right click on ROT13.tar.gz Save it to h:\ –Extract the ROT13 Module Package Open a cygwin window –cd /cygdrive/h/ –gunzip ROT13.tar.gz –tar xvf ROT13.tar

The FPX KCPSM Module Exercise 5 Henry Fu The ROT13 Module Package (More) The ROT13 Module Package includes –ROT13/sim/ Modelsim simulation directory –ROT13/syn/ Synplicity, Xinlinx backend synthesis directory –ROT13/vhdl/ VHDL source directory –ROT13/wrappers/ Layered Protocol Wrappers package directory

The FPX KCPSM Module Exercise 6 Henry Fu The ROT13 Module Framework The ROT13 Module (“module.vhd”) is based on the ExampleApp Module –Instantiate the UDP Wrapper –Instantiate the ROT13 Application (“rot13app.vhd”) Instantiate the UDPEcho entity Instantiate four parallel ROT13 entity (“rot13.vhd”) –D_MOD_IN is 32-bit data bus, but we need to encrypt on a character boundary (8-bit data)

The FPX KCPSM Module Exercise 7 Henry Fu Overview of the ROT13 Application 32 – Bit Data D_MOD_IN 32 – Bit Data D_OUT_MOD UDPEcho Entity ROT13 Entity ROT13 Entity ROT13 Entity ROT13 Entity

The FPX KCPSM Module Exercise 8 Henry Fu The ROT13 Entity The ROT13 encrypts / decrypts the characters stored in the UDP payload –Implement a state machine that steps through the ATM Cells Looks for the start of the ATM Cell (SOF) Looks for the start of the UDP Datagram (SOD) Looks for the start of the UDP Payload Encrypts the UDP Payload with the ROT13 algorithm when there are valid data Looks for the end of the ATM Cell (EOF)

The FPX KCPSM Module Exercise 9 Henry Fu State Diagram of the ROT13 State Machine IDLEREQ REQ2UDPPayload SOF = ‘1’ SOD = ‘1’EOF = ‘1’ DataEn = ‘1’ IF DataEn = ‘1’ then Encrypts / Decrypts Payload

The FPX KCPSM Module Exercise 10 Henry Fu VHDL Process of the ROT13 State Machine type StateType is (Idle, Req1, Req2, UDPPayload); -- states signal state, nx_state : StateType; -- current and new state state_machine: process (Reset_l, state, sof_in, dataen_in, eof_in, sod_in, data_in) variable tmp_state : StateType; -- new state variable tmp_data : UNSIGNED (7 downto 0); begin -- process state_machine -- default value tmp_state := state; tmp_data := UNSIGNED (data_in); -- details of state machine goes here -- set state nx_state <= tmp_state; data_out <= std_logic_vector (tmp_data); dataen_out <= dataen_in; sof_out <= sof_in; eof_out <= eof_in; sod_out <= sod_in; end process state_machine;

The FPX KCPSM Module Exercise 11 Henry Fu Simulating the ROT13 Module Modelsim is used to simulate the ROT13 –Go to the sim directory and create the input file cd ROT13/sim/ cp HELLO.DAT INPUT_CELLS.DAT –Compile the module and start Modelsim Make compile Make sim –In Modelsim main window, type: do testbench.do run 3000

The FPX KCPSM Module Exercise 12 Henry Fu Simulating the ROT13 Module (More) The input data coming into the module SOF indicates the start of an ATM Cell SOD indicates the start of an UDP Datagram DataEn indicates the data is valid EOF indicates the end of an ATM Cell The last two valid words are the ATM Trailer

The FPX KCPSM Module Exercise 13 Henry Fu Simulating the ROT13 Module (More) The output data going out of the module The UDPPayload has been encrypted / decrypted

The FPX KCPSM Module Exercise 14 Henry Fu Error Handling by the Protocol Wrappers What happens if the incoming data is not an UDP Datagram? –If the incoming data is an ATM cell Frame Processor drops the cell –If the incoming data is an AAL5 frame IP Processor drops the cell –If the incoming data is an IP packet UDP Processor does not assert the SOD signal  Application only needs to handle the last case

The FPX KCPSM Module Exercise 15 Henry Fu State Diagram of the New State Machine IDLEREQ REQ2UDPPayload SOF = ‘1’ SOD = ‘1’EOF = ‘1’ DataEn = ‘1’ IF DataEn = ‘1’ then Encrypts / Decrypts Payload EOF = ‘1’

The FPX KCPSM Module Exercise 16 Henry Fu Simulating the new ROT13 Modify the ROT13 entity to handle this case Simulate the updated ROT13 entity –Go to the sim directory and create the IPv4 file cd ROT13/sim/ cp IPv4.DAT INPUT_CELLS.DAT –Compile the module in Cygwin Bash Shell Make compile –In Modelsim main window, type: restart -f run 3000

The FPX KCPSM Module Exercise 17 Henry Fu Simulating the new ROT13 (More) The IPv4 input data coming into the module SOD is not asserted between SOF and EOF

The FPX KCPSM Module Exercise 18 Henry Fu Simulating the new ROT13 (More) The IPv4 output data going out of the module The IP Payload is not modified by the ROT13 entity

The FPX KCPSM Module Exercise 19 Henry Fu Synthesizing the ROT13 Module Synplicity is used to synthesize the ROT13 –Go to the synthesis directory cd ROT13/syn/ –Start Synplicity make syn

The FPX KCPSM Module Exercise 20 Henry Fu Synthesizing the ROT13 Module (More) Files that are included in the project

The FPX KCPSM Module Exercise 21 Henry Fu Synthesizing the ROT13 Module (More) Click to change implementation option

The FPX KCPSM Module Exercise 22 Henry Fu Implementation Options for the ROT13

The FPX KCPSM Module Exercise 23 Henry Fu Implementation Options for the ROT13

The FPX KCPSM Module Exercise 24 Henry Fu Implementation Options for the ROT13

The FPX KCPSM Module Exercise 25 Henry Fu Implementation Options for the ROT13

The FPX KCPSM Module Exercise 26 Henry Fu Running the Implementation Click to run implementation

The FPX KCPSM Module Exercise 27 Henry Fu Synthesizing with Xilinx Backend Tools Xilinx backend tools are used to perform backend synthesis on the ROT13 module –Go to the implementation directory cd ROT13/syn/rad-xcve1000/ Start Xilinx backend script./build

The FPX KCPSM Module Exercise 28 Henry Fu Contents of the Xilinx Backend Script Xilinx Backend Script –NGDBUILD Translates and merges the various source files of a design into a single "NGD" design database. –NGD2VHDL Translates an NGD file (NGDBUILD output) into an VHDL simulation netlist which is intended for post- synthesis simulation

The FPX KCPSM Module Exercise 29 Henry Fu Contents of the Xilinx Backend Script –MAP Maps the logic gates of the NGD file (NGD output) into the CLBs and IOBs of the physical device, and writes out this physical design to an NCD file –PAR Places and routes a design's logic components contained within an NCD file (MAP output) based on the layout and timing requirements specified within the Physical Constraints File (PCF)

The FPX KCPSM Module Exercise 30 Henry Fu Contents of the Xilinx Backend Script –BITGEN Creates the configuration (BIT) file based on the contents of a physical implementation file (NCD) and defines the behavior of the programmed FPGA ngdbuild -p xcv1000e-7-fg680 rad_loopback -uc rad_loopback.ucf ngd2vhdl -w rad_loopback.ngd rad_loopback_sim.vhd map -p xcv1000e-7-fg680 -o top.ncd rad_loopback.ngd rad_loopback.pcf par -w -ol 2 top.ncd rad_loopback.ncd rad_loopback.pcf bitgen rad_loopback.ncd -b -l -w -f bitgen.ut

The FPX KCPSM Module Exercise 31 Henry Fu Conclusion In this ROT13 Module Exercise –Implement a network module using the Layered Protocol Wrappers –Simulate the module using Module –Examine the generated input / output control signals and various levels of data processing –Handle special error case –Synthesize the ROT13 Module