Design Issues in Hardware/Software Co-Design

Similar documents
Multi-level Design Methodology using SystemC and VHDL for JPEG Encoder

Hardware-Software Codesign. 1. Introduction

RTL Coding General Concepts

Codesign Framework. Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available in their web.

Hardware-Software Codesign. 1. Introduction

Digital Design Methodology

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Designing with VHDL and FPGA

Evolution of CAD Tools & Verilog HDL Definition

Hardware Software Codesign of Embedded System

EE382V: System-on-a-Chip (SoC) Design

Design Space Exploration Using Parameterized Cores

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

Hardware Software Codesign of Embedded Systems

MATLAB/Simulink 기반의프로그래머블 SoC 설계및검증

ECE 448 Lecture 15. Overview of Embedded SoC Systems

Hardware/Software Co-design

HW/SW Co-design. Design of Embedded Systems Jaap Hofstede Version 3, September 1999

System Level Design Technologies and System Level Design Languages

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997.

FPGA Implementation of MIPS RISC Processor

Chapter 1 Overview of Digital Systems Design

ECE 459/559 Secure & Trustworthy Computer Hardware Design

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

FPGA Based Digital Design Using Verilog HDL

ICS 180 Spring Embedded Systems. Introduction: What are Embedded Systems and what is so interesting about them?

Systems Development Tools for Embedded Systems and SOC s

Test and Verification Solutions. ARM Based SOC Design and Verification

Integrated Workflow to Implement Embedded Software and FPGA Designs on the Xilinx Zynq Platform Puneet Kumar Senior Team Lead - SPC

Long Term Trends for Embedded System Design

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

101-1 Under-Graduate Project Digital IC Design Flow

Design of DMA Controller Using VHDL

Hardware Design and Simulation for Verification

Anand Raghunathan

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools

Verification of Multiprocessor system using Hardware/Software Co-simulation

Hardware/Software Partitioning of Digital Systems

Appendix SystemC Product Briefs. All product claims contained within are provided by the respective supplying company.

EEL 5722C Field-Programmable Gate Array Design

Does FPGA-based prototyping really have to be this difficult?

A VARIETY OF ICS ARE POSSIBLE DESIGNING FPGAS & ASICS. APPLICATIONS MAY USE STANDARD ICs or FPGAs/ASICs FAB FOUNDRIES COST BILLIONS

01 1 Electronic Design Automation (EDA) the correctness, testability, and compliance of a design is checked by software

System on Chip (SoC) Design

Hardware Software Codesign of SOC 晶片系統之軟硬體共同設計

01-1 Electronic Design Automation (EDA) The use of software to automate electronic (digital and analog) design.

System Design and Methodology/ Embedded Systems Design (Modeling and Design of Embedded Systems)

Park Sung Chul. AE MentorGraphics Korea

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

Implementation of Ripple Carry and Carry Skip Adders with Speed and Area Efficient

Design Methodologies and Tools. Full-Custom Design

VLSI Design Automation

VLSI Design Automation

International Journal of Computer Sciences and Engineering. Research Paper Volume-6, Issue-2 E-ISSN:

Survey: Design Procedure of VLSI, FPGA & ASIC Life Cycle s

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

SystemC Implementation of VLSI Embedded Systems for MEMS. Application

II. LITERATURE SURVEY

Hardware Synthesis. References

A Novel Design of 32 Bit Unsigned Multiplier Using Modified CSLA

ECE 111 ECE 111. Advanced Digital Design. Advanced Digital Design Winter, Sujit Dey. Sujit Dey. ECE Department UC San Diego

Early Models in Silicon with SystemC synthesis

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

FPGA: What? Why? Marco D. Santambrogio

EE595. Part VIII Overall Concept on VHDL. EE 595 EDA / ASIC Design Lab

International Journal of Applied Sciences, Engineering and Management ISSN , Vol. 05, No. 02, March 2016, pp

Design an 8 bit Microprocessor with all the Operations of 8051 Microcontroller with the help of VHDL

EE 434 ASIC & Digital Systems

GUEST EDITORS INTRODUCTION. of the key applications of VLSI technology

System Level Design with IBM PowerPC Models

Hardware Description Languages. Introduction to VHDL

FPGA Implementation of ALU Based Address Generation for Memory

Intro to High Level Design with SystemC

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

Glossary. ATPG -Automatic Test Pattern Generation. BIST- Built-In Self Test CBA- Cell Based Array

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

High Speed SPI Slave Implementation in FPGA using Verilog HDL

An introduction to CoCentric

Hardware in the Loop Functional Verification Methodology

Chapter 5: ASICs Vs. PLDs

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

FPGA briefing Part II FPGA development DMW: FPGA development DMW:

Keywords: Soft Core Processor, Arithmetic and Logical Unit, Back End Implementation and Front End Implementation.

Multi Cycle Implementation Scheme for 8 bit Microprocessor by VHDL

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Design of Embedded Systems

System Synthesis of Digital Systems

Reconfigurable Image Processor using an Fpga- Raspberry Pi Interface

VLSI Design Automation. Calcolatori Elettronici Ing. Informatica

FPGA-Based Rapid Prototyping of Digital Signal Processing Systems

IP CORE Design 矽智產設計. C. W. Jen 任建葳.

AC : VIRTUAL PROTOTYPING METHODOLOGY AS A REPLACEMENT FOR PHYSICAL DESIGN IN TEACHING EMBEDDED SYSTEMS

Prachi Sharma 1, Rama Laxmi 2, Arun Kumar Mishra 3 1 Student, 2,3 Assistant Professor, EC Department, Bhabha College of Engineering

RKUniversity, India. Key Words Digital image processing, Image enhancement, FPGA, Hardware design languages, Verilog.

International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

Multi-Gigahertz Parallel FFTs for FPGA and ASIC Implementation

תכן חומרה בשפת VERILOG הפקולטה להנדסה

Hardware/Software Codesign

Transcription:

Volume-2, Issue-1, January-February, 2014, pp. 01-05, IASTER 2013 www.iaster.com, Online: 2347-6109, Print: 2348-0017 ABSTRACT Design Issues in Hardware/Software Co-Design R. Ganesh Sr. Asst. Professor, ECE Department, CVR College of Engineering, Hyderabad, India The complexity of designing electronic systems and products is constantly increasing. The increasing complexity is due to the factors such as: portability, increased complexities of software and hardware, low power and high speed applications etc. Due to all these factors the electronic system design is moving towards System on Chip (SoC) with heterogeneous components like DSP, FPGA etc. This concept of integrating hardware and software components together is moving towards Hardware- Software co design (HSCD). The main focus of this paper is to provide an overview of hardware, software design approaches and challenges to meet the requirements of HW/SW co design. All the design issues are described by using design flows. Keywords: Co-Design, Design flow, VLSI, Hardware I. INTRODUCTION Most engineering designs can be viewed as systems, i.e., as collections of several components whose combined operation provides useful services. Components can be heterogeneous in nature and their interaction may be regulated by some simple or complex means. Most examples of systems today are either electronic in nature (e.g., information processing systems) or contain an electronic subsystem for monitoring and control (e.g., plant control) [1]. Any system can be partitioned in to data unit and control unit. The data unit performs different operations on data elements like addition, subtraction etc. The control unit controls the operations of data unit by using control signals. The block diagram of a general system is shown in Fig.1. Fig.1: Block Diagram of a General System The total design of data and control units can be done by using Software only, Hardware only or Hardware/Software Co design methodologies. The selection of design methodology can be done by using different non functional constraints like area, speed, power, cost etc. The software design methodology can be selected for the systems with specifications as less timing related issues and less area constraints. Using the software design system less area and low speed systems can be designed. To design a system with high speed, timing issues need to be considered. The hardware design methodology is one solution to design high speed systems with more area compared to software designs. Because of present SoC designs, systems with high speed, less area, portability, low power have created the need of combining the hardware and software design methodologies called as Hardware/Software Co-Design. The co-design can be defined as the process of designing and integrating different components on to a single IC or a system. The components can be a hardware component like ASIC, software component like microprocessor, microcontroller, electrical component or a mechanical component etc.

The Software design methodology for a microprocessor with design flow is explained in section II and the hardware design methodology for an FPGA with design flow is explained in section III. The Hardware/Software Co-Design methodology issues are explained by using design flow in section IV then conclusion and references. II. SOFTWARE DESIGN METHODOLOGY In general the design of a system with software based needs a design entry as programming language like c, c++ etc. The design flow is shown in Fig.2. In this methodology the constraints are with respect to area but not speed. The system design information can be specified by using user requirements to the system designer. The user requirements are verified according to the target board (like processor), area, speed and other non functional constraints. If the user requirements satisfy existing elements then the design will move forward, otherwise user has to refine the requirements. General programming languages like c, c++ etc can be used as the design entry and compilation will be done to check the functionality is with respect to specifications or not. Finally hex file or bit file is generated according to the target device. Fig.2: Software Based Design Flow The advantage of this design process is easy to design and implement with less area but timing issues and speed cannot be improved. The timing issues and speed can be considered by using the hardware based design methodology. III. HARDWARE DESIGN METHODOLOGY The systems with hardware components considering timing can be designed by using a programmable devices like PLA, PAL, PGA, FPGA or a non programmable device like ASIC. The systems behavior can be expressed by using a Hardware Description Language like Verilog HDL, VHDL etc. instead of a programming language. These HDL languages describe the timing behavior of the hardware elements. The design flow for an FPGA is shown in Fig.3. Fig.3: FPGA Design Flow The system design starts with the refined specifications. The specifications are converted into architecture. The architecture functionality is expressed by using Hardware Description Langue (HDL) like VHDL or Verilog HDL. The functionality can be verified by using simulation with the help of test bench. After the functional verification the design can be converted into gate level structural interconnected form called as net list with the help of synthesis. The synthesized net list will be placed and routed on the selected target FPGA board. A bit file will be generated to load the designed system on to the target FPGA. 2

The advantage of hardware based design methodology is the timing information can be specified by using HDL and high speed systems can be designed compared to software based methods. IV. HARDWARE/SOFTWARE CO-DESIGN METHODOLOGY The systems with less area and simple elements can be designed by using software and the systems with timing/speed can be designed by using hardware. Because of portability, battery based designs; System on Chip concepts, low power high speed issues there is a need to integrate hardware and software components together. The integration of hardware and software components together is called as co-design. Designing of a co-design system needs a generic co-design methodology. The generic co-design flow is shown in below Fig.4. The generic co-design flow for hardware software co-design system consists of the following steps. A. Specifications The specifications can be refined from the user requirements such that the target system can fit into any one of the available hardware component or software element. This caring of specifications is not available in the HW or SW design methodologies. Because of the HW/SW elements in the target system specifications must be properly selected. B. Design Entry Fig 4: Generic Co-Design Flow The specifications can be expressed by using different types of models, languages etc. One best method of design entry is combining some programming language features with hardware description language features or vice versa. This combination of different languages leads to a new co-design language. The design entry can be selected based on the following criteria. If the specifications can not be partitioned /separated into hardware blocks or software blocks then use this co-design language. The languages can be combined based on the performance criteria i.e. primal approach or dual approach. The number of registers of the target processor is also a constraint in the language selection. The language selection can be based on target compiler availability also. Some of the co-design specification languages are like LOTOS, SDL, and HardwareC etc. 3

C. Co-Simulation The system functionality of a hardware system can be verified by simulation; software system can be verified by using compilation. But functionality of a system with both hardware and software parts can not be verified by using simulation or compilation. This is due to the following reasons. The system feature with HDL language elements can not be verified by using compilation. The system feature with programming language can not be verified by using simulation. The present available compilers can not be used for the verification because of register widths, processor capacity and new features because of multiple systems integration. Hence, to verify the HW/SW co-design system functionality a new tool called as co-simulation is required. The design of a co-simulator is also a complex process. After the co simulation, the design can be applied to HW/SW portioning block. D. HW/SW Partitioning After the co simulation of the system some of the elements can be portioned into hardware/software elements. This partitioning consists of following three portions to avoid functionality mismatch. Hardware Part Software Part Communication Synthesis The system is partitioned into hardware part which consists of hardware elements and software part which consists of software elements. The integration of these hardware and software parts to maintain the functionality can be done by using communication synthesis. E. Hardware Part The hardware part consists of hardware specifications that can be observed from the given system specifications. The hardware specifications can be converted into hardware elements by using synthesis, placement and routing. This process is similar to normal hardware design methodology. F. Software Part The software part consists of software specifications that can be observed from the given system specifications. The software specifications can be mapped to software elements by using compilation, software implementation model with respect to the target processor. This process is similar to normal software design methodology. G. Communication Synthesis The communication synthesis acts as a controller in between hardware part and software part. This block integrates the signals of both hardware and software parts to avoid functionality mismatches. The design of communication synthesis is complex because of communication between different blocks. H. HW/SW System The total system can be designed by generating the final bit file for the entire hardware block, software block and communication synthesis blocks etc. This block generates combined bit file for the entire system for the given specifications. 4

The hardware software co design based system can be designed by using the partitioning of hardware and software resources using partitioning techniques. After the partitioning the design uses hardware flow and software flows for the concerned steps and at the end these two blocks are communicated to complete the total system. The partitioning of the co design system is done based on the optimization goal. The optimization goals can be area, speed, power etc. Two major approaches are used for partitioning, i.e. Primal approach and Dual approach. The research in hardware software co design presented different models for implementations like COSYMA, LYCOS, and VULCAN etc. The applications of co design based systems include embedded systems like banking and transaction processing applications, signal processing applications, home appliances and mobile communications etc. V. CONCLUSIONS The Hardware/Software co design system can be designed by using the existing hardware design tools, software design tools and procedures. The co design methodology is best suited for the portable, battery based products to design SoC products. In this paper hardware design flow for FPGA, software design flow for a processor is discussed. Some of the HW/SW co design system issues in terms of HW/SW integration, design entry, compiler tool development, simulator design are discussed. To design best HW/SW co design systems lot of research in terms of tool design, design entry and prototyping elements is needed. REFERENCES [1] Adnan Shaout, Ali H. El-Mousa., and Khalid Mattar, Specification and Modeling of HW/SW Co-Design for Heterogeneous Embedded Systems, Proceedings of the World Congress on Engineering, London, U.K, Volume 1, July 1-3, 2009. [2] Hardware / software co- design Principles and Practice, Kluwer academic publishers, 2002. [3] Jorgen Staunstrup, Wayne Wolf, Hardware / software co- design Principles and Practice, Springer, 2009. [4] S. Tosun, N. MansouriE. Arvas, M Kandemir, Y. Xie, and W-L. Hung Reliability-Centric Hardware/Software Co-design Proceedings of the Sixth International Symposium on Quality Electronic Design (ISQED 05) 5