Chapter 5. Hardware Software co-simulation

Similar documents
Intro to System Generator. Objectives. After completing this module, you will be able to:

Agenda. Introduction FPGA DSP platforms Design challenges New programming models for FPGAs

Tutorial - Using Xilinx System Generator 14.6 for Co-Simulation on Digilent NEXYS3 (Spartan-6) Board

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline

Experiment 6 SIMULINK

[Dixit*, 4.(9): September, 2015] ISSN: (I2OR), Publication Impact Factor: 3.785

Basic Xilinx Design Capture. Objectives. After completing this module, you will be able to:

ISE Design Suite Software Manuals and Help

AccelDSP tutorial 2 (Matlab.m to HDL for Xilinx) Ronak Gandhi Syracuse University Fall

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool

FPGA Based Design Implementation for Detection of Exudates Using XSG

CHAPTER-IV IMPLEMENTATION AND ANALYSIS OF FPGA-BASED DESIGN OF 32-BIT FPAU

Spartan -6 LX150T Development Kit Hardware Co-Simulation Reference Design User Guide

FPGA Co-Simulation of Gaussian Filter Algorithm Application Note

A Novel Efficient VLSI Architecture for IEEE 754 Floating point multiplier using Modified CSA

Modeling a 4G LTE System in MATLAB

INTRODUCTION TO FPGA ARCHITECTURE

Spartan -6 LX150T Development Kit Hardware Co-Simulation Reference Design Tutorial

Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE

Case Study on DiaHDL: A Web-based Electronic Design Automation Tool for Education Purpose

Hardware Implementation of Cryptosystem by AES Algorithm Using FPGA

Design and FPGA Implementation of Real-Time Hardware Co-Simulation for Image Enhancement in Biomedical Applications

AES Core Specification. Author: Homer Hsing

Introduction to DSP/FPGA Programming Using MATLAB Simulink

Cover TBD. intel Quartus prime Design software

Developing a Data Driven System for Computational Neuroscience

Cover TBD. intel Quartus prime Design software

SDR Spring KOMSYS-F6: Programmable Digital Devices (FPGAs)

RISC IMPLEMENTATION OF OPTIMAL PROGRAMMABLE DIGITAL IIR FILTER

CAD SUBSYSTEM FOR DESIGN OF EFFECTIVE DIGITAL FILTERS IN FPGA

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

ECE 545 Lecture 12. FPGA Resources. George Mason University

Experiment 8 SIMULINK

Accelerating FPGA/ASIC Design and Verification

Variable Size 2D DCT with FPGA Implementation

FPGA: What? Why? Marco D. Santambrogio

DESIGN AND IMPLEMENTATION OF 32-BIT CONTROLLER FOR INTERACTIVE INTERFACING WITH RECONFIGURABLE COMPUTING SYSTEMS

Method We follow- How to Get Entry Pass in SEMICODUCTOR Industries for 3rd year engineering. Winter/Summer Training

DESIGN AND IMPLEMENTATION OF VLSI SYSTOLIC ARRAY MULTIPLIER FOR DSP APPLICATIONS

Documentation. Design File Formats. Constraints Files. Verification. Slices 1 IOB 2 GCLK BRAM

ISSN Vol.02, Issue.11, December-2014, Pages:

Tutorial. CASPER Reference Design

FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed

VHDL-MODELING OF A GAS LASER S GAS DISCHARGE CIRCUIT Nataliya Golian, Vera Golian, Olga Kalynychenko

Midterm Exam ECE 448 Spring 2019 Wednesday, March 6 15 points

Design and Analysis of 64 bit Multiplier using Carry Look Ahead Logic for Low Latency and Optimized Power Delay Product

Model-Based Design for Video/Image Processing Applications

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

Introduction to Field Programmable Gate Arrays

Simulink Matlab To Vhdl Route For Full Custom Fpga Rapid

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

II. LITERATURE SURVEY

Scaling Up to TeraFLOPs Performance with the Virtex-7 Family and High-Level Synthesis

Model-Based Design Using Simulink, HDL Coder, and DSP Builder for Intel FPGAs By Kiran Kintali, Yongfeng Gu, and Eric Cigan

Hardware Software Co-Simulation of Canny Edge Detection Algorithm

efpgasim Features & Applications

Optimized FPGA Hardware Encryption Implementation using Public Key Cryptography

Early Models in Silicon with SystemC synthesis

Vivado Design Suite User Guide

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch

New Computational Modeling for Solving Higher Order ODE based on FPGA

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

FPGA Design Flow 1. All About FPGA

Design Exploration and Implementation of Simplex Algorithm over Reconfigurable Computing Platforms

A Compact FPGA Implementation of Triple-DES Encryption System with IP Core Generation and On-Chip Verification

Fixed-point Simulink Designs for Automatic HDL Generation of Binary Dilation & Erosion

Hardware Design of Embedded Systems for Security Applications

Field Programmable Gate Array (FPGA)

Utility Reduced Logic (v1.00a)

Designing and Prototyping Digital Systems on SoC FPGA The MathWorks, Inc. 1

RC6 Implementation including key scheduling using FPGA

An Efficient FPGA Implementation of the Advanced Encryption Standard (AES) Algorithm Using S-Box

Hardware-Software Co-Design and Prototyping on SoC FPGAs Puneet Kumar Prateek Sikka Application Engineering Team

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston

High Performance Pipelined Design for FFT Processor based on FPGA

Canny Edge Detection Algorithm on FPGA

Xilinx Project Navigator Reference Guide

TLL5000 Electronic System Design Base Module

Experiment 3. Getting Start with Simulink

FPGA Based Digital Design Using Verilog HDL

Designing an Improved 64 Bit Arithmetic and Logical Unit for Digital Signaling Processing Purposes

Design and Implementation of VLSI 8 Bit Systolic Array Multiplier

Module 4. Computer-Aided Design (CAD) systems

Signal Processing Algorithms into Fixed Point FPGA Hardware Dennis Silage ECE Temple University

Simulation & Synthesis of FPGA Based & Resource Efficient Matrix Coprocessor Architecture

Introduction to C and HDL Code Generation from MATLAB

RTL Coding General Concepts

Session 3 Introduction to SIMULINK

Embedded Real-Time Video Processing System on FPGA

Chapter 9: Integration of Full ASIP and its FPGA Implementation

SIGNALS AND LINEAR SYSTEMS LABORATORY EELE

USING THE SYSTEM-C LIBRARY FOR BIT TRUE SIMULATIONS IN MATLAB

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1

A hardware evaluation of π-cipher

FPGA Algorithm Development Using a Graphical Environment

Model-Based Design for effective HW/SW Co-Design Alexander Schreiber Senior Application Engineer MathWorks, Germany

ISim Hardware Co-Simulation Tutorial: Accelerating Floating Point FFT Simulation

Performance Analysis of 64-Bit Carry Look Ahead Adder

Using System Generator To Design A Reconfigurable Video Encryption System

DSP Co-Processing in FPGAs: Embedding High-Performance, Low-Cost DSP Functions

Transcription:

Chapter 5 Hardware Software co-simulation Hardware Software co-simulation of a multiple image encryption technique has been described in the present study. Proposed multiple image encryption technique is based on Latin Square Image Cipher (LSIC). First, a carrier image based on Latin Square is generated by using 256 bits length key. XOR operation is applied between an input image and Latin Square Image to generate an encrypted image. Then XOR operation is applied between encrypted image and second input image to encrypt second image. This process is continued till n th input image. Hardware co-simulation of the proposed multiple image encryption technique is achieved by using Xilinx System Generator (XSG). This encryption technique is modeled using Simulink and XSG Block set and synthesized onto Virtex 2 pro FPGA device. Proposed technique is validated using hardware software co-simulation method. 107

5.1 Matlab and Simulink MATLAB is a high level technical computing language and algorithm development tool that can be used in several applications such as data visualization/analysis, numerical analysis, signal processing, control design, etc. Using the MATLAB software, solution can be achieved faster than traditional programming languages, such as C, C++. Add on toolboxes are a collections of special purpose MATLAB functions that are available separately. These software patches extend the MATLAB capabilities to solve particular classes of problems in these application areas. MATLAB provides a number of features, of which the most important ones are: Development environment for managing code, files, and data Interactive tools for iterative exploration, design, and problem solving Mathematical functions for linear algebra, statistics, Fourier analysis, filtering, optimization, and numerical integration 2-D and 3-D graphics functions for visualizing data Tools for building custom graphical user interfaces Functions for integrating MATLAB based algorithms with external applications and languages, such as C, C++, The MATLAB language is a high-level language with control flow statements, functions, data structures, input/output, and object-oriented programming features. The available libraries are vast collection of computational algorithms from basic functions such as arithmetic and trigonometric functions to complex functions such as matrix operations and Fourier transforms. Simulink is a software package for modeling, simulating, and analyzing dynamical systems. It supports linear and nonlinear systems, modeled in continuous time, sampled time, or a hybrid of the two. Systems can also be 108

multirate, i.e., have different parts that are sampled or updated at different rates.simulinkis a graphical representation of systems, differential equations, or problems encountered in engineering fields. Blocks can be assembled to reproduce almost anything as long as it can be modeled mathematically. Simulink has become an important part of aeronautical, astronautical, computer, electrical, and mechanical engineering programs and industries. Its necessary to evaluate performance of image processing algorithms on reconfigurable hardware. Simulink can be used to control systems with the correct hardware and software. 5.2 Xilinks system generator Simulink is a software tool from MATLAB for modeling, simulating, and analyzing dynamic systems. The Xilinx System Generator runs as part of Simulink. The System Generator elements bundled as the Xilinx Blockset, appear in the Simulink library browser. System Generator works within the Simulink model based design methodology. Often an executable specification is created using the standard Simulink block sets. This specification can be designed using floating point numerical precision and without hardware detail. Once the functionality and basic dataflow issues have been defined, System Generator can be used to specify the hardware implementation details for specific Xilinx device. System Generator uses the Xilinx DSP blockset for Simulink and will automatically invoke Xilinx Core Generator to generate highly optimized netlists for the DSP building blocks. System Generator can execute all the downstream implementation tools to product a bitstream for programming the FPGA. An optional testbench can be created using test vectors extracted from the Simulink environment for use with the simulator. Xilinx System Generator (XSG) is an integrated design environment (IDE) for FPGAs, which uses Simulink, as a development environment and is presented in the form of blockset. The architecture for filters, pixel by 109

pixel and regions filters for image processing using Xilinx System Generator has been proposed by Alba M. Snchez G. et al [60]. This architecture offer an alternative through a graphical user interface that combines MATLAB, Simulink and XSG and explore important aspects concerned to hardware implementation. Ana Toledo Moreo et al [61] shown that, how the Xilinx system generator (XSG) environment can be used to develop hardware-based computer vision algorithms from a system level approach, which makes it suitable for developing co-design environments. An efficient architecture for various image filtering algorithms and tumor characterization using Xilinx System Generator has been presented by Mrs. S. Allin Christe et al [62]. This architecture offers an alternative through a graphical user interface that combines MATLAB, Simulink and XSG and explores important aspects concerned to hardware implementation. V.Elamaran et al [63] have explained the FPGA implementation of Spatial Image Filters using Xilinx System Generator. 5.2.1 Dual Image Encryption Hardware Software co-simulation of a multiple image encryption technique has been described in the present study. Proposed multiple image encryption technique is based on Latin Square Image Cipher (LSIC). First, a carrier image based on Latin Square is generated by using 256 bits length key. XOR operation is applied between an input image and Latin Square Image to generate an encrypted image. Then XOR operation is applied between encrypted image and second input image to encrypt second image. This process is continued till n th input image. The proposed multiple image encryption technique is implemented Xilinx System Generator (XSG). This encryption technique is modeled using Simulink and XSG Block set and synthesized onto Virtex 2 pro FPGA device. Proposed technique is validated using hardware software co-simulation method. Figure 5.1 shows the simulation diagram of dual image encryption. Figure 5.2 shows the input and output images of dual image encryption using hardware-software co-simulation. 110

Figure 5.1: Simulation of Dual Image Encryption using Hardware-Software co-simulation. Figure 5.2: Input and output images of Dual Image Encryption using Hardware-Software co-simulation. 111

5.2.2 Multiple Image Encryption Here multiple image encryption technique is based on Latin Square Image Cipher (LSIC). First, a carrier image based on Latin Square is generated by using 256 bits length key. XOR operation is applied between an input image and Latin Square Image to generate an encrypted image. Then XOR operation is applied between encrypted image and second input image to encrypt second image. This process is continued till n th input image. Hardware cosimulation of this multiple image encryption technique is achieved by using Xilinx System Generator (XSG). This encryption technique is modeled using Simulink and XSG Block set and synthesized onto Virtex 2 pro FPGA device. Figure 5.3 shows the simulation diagram of dual image encryption. Figure 5.4 and figure 5.5 shows the input and output images of dual image encryption using hardware-software co-simulation. Figure 5.6 and figure 5.7 shows the histograms of input and output images respectively. Multiple Image Encryption using Hardware-Software co- Figure 5.3: simulation. 112

Figure 5.4: Input images for Multiple Image Encryption. Figure 5.5: Encrypted images from Multiple Image Encryption. 113

Figure 5.6: Histograms of Input images Figure 5.7: Histograms of output images 5.3 Implementation of Image Encryption on FPGA FPGA implementation is carried out using Xilinx ISE 8.1 and Vertex 2 pro FPGA device. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) is used as programming language for implementation. FPGA implementation done for image encryption, image shuffling and partial image encryption using SCAN methodology - Latin Square 114

Image cipher. RTL (Register Transfer Level) diagram of these methods are shown in figure 5.8, 5.9 and 5.10. Resource utilization summary of these methods are tabulated in table 5.1, 5.2 and 5.3. 5.3.1 Image encryption using Latin Square Image cipher (b) (a) (c) Figure 5.8: FPGA implementation of Image encryption using Latin Square Image cipher (a) Gate level design-1 (b)gate level design-2 (c) Gate level design-3. 115

5.3.2 Image Shuffling using Latin Square Image cipher (a) Figure 5.9: FPGA implementation of Image shuffling using Latin Square Image cipher 116

5.3.3 Image encryption using SCAN methodology and mapping operation 117 (a) Figure 5.10: FPGA implementation of Image encryption using SCAN methodology and mapping operation

Table 5.1: Device Utilization Summary for Image encryption using Latin Square Image cipher Logic Utilization Used Available Utilization Number of Slices 1178 3584 32% Number of 4 input LUTs 2048 7168 28 % Number of bonded IOBs 6144 141 4357% Table 5.2: Device Utilization Summary for Image shuffling using Latin Square Image cipher Logic Utilization Used Available Utilization Number of Slices 512 3584 14% Number of 4 input LUTs 1024 7168 14% Number of bonded IOBs 320 141 226% Table 5.3: Device Utilization Summary for Image encryption using SCAN methodology and mapping operation Logic Utilization Used Available Utilization Number of Slices 530 3584 14% Number of 4 input LUTs 1056 7168 14% Number of bonded IOBs 352 141 249 % (a) (b) (c) Figure 5.11: Resource utilization interms of Number of slices, Number of 4 input LUTs and Number of bonded IOBs for (a) Image encryption using Latin Square Image cipher (b)image shuffling using Latin Square Image cipher (c)image encryption using SCAN methodology and mapping operation 118