Using SystemC to Implement Embedded Software

Size: px
Start display at page:

Download "Using SystemC to Implement Embedded Software"

Transcription

1 Using SystemC to Implement Embedded Software Brijesh Sirpatil James M. Baker, Jr. James R. Armstrong Bradley Department of Electrical and Computer Engineering, Virginia Tech, Blacksburg, VA Abstract This paper investigates the use of SystemC as a language for implementing the software portion of the hardware/software co-design of a system consisting of an embedded processor and some ASIC logic. The SystemC modeling language consists of a set of C++ classes for modeling hardware properties, along with a simulation kernel. SystemC designs include a number of concurrent processes that model the behavior of the system components, and tools are available to synthesize the hardware portion of the design. Since SystemC is based on C++, however, it may also be useful for implementing the software portion of the system. We explore the translation of SystemC into C++ code that is suitable for execution on an embedded processor. We discuss some guidelines and restrictions for developing SystemC code so that it can be easily implemented as software, and we also present a simple scheduler that replaces the SystemC simulation kernel. Finally, we apply this process to the design of a GSM communication system. 1. Introduction With the increasing complexity of today s systems and the move toward System-On-a-Chip (SoC) [1], there is a growing need for System-Level Modeling Languages that can be used to describe systems at a high level of abstraction. To improve time-to-market and help simplify the design process, it would be helpful if a single high-level model of the system could be used to implement both the hardware and the software components of the system. The SystemC language is one such System-Level Modeling language that is currently being used for hardware design [2]. However, since SystemC is based on C++, it may also be useful for developing the software portion of the system. This paper explores the feasibility of this approach, examining the restrictions that must be placed on SystemC models to allow them to be implemented in hardware, software, or a combination. The next section discusses the need for a single model of a system that can be used for both hardware and software implementations. Following that, we present an overview of the SystemC language, and then discuss the use of SystemC for software implementations. Finally, we apply this approach to the design of a SoC-based GSM communication system. 2. The Need for a Single System Model The hardware/software co-design process for SoCs focuses on the development of the system as a whole. An abstract model of the system is developed, and then successive refinements are made. A strong emphasis is placed on rapid design to reduce time-to-market, even at the expense of some system performance. Once the model has been refined, it is partitioned into hardware and software components [3, 4]. The hardware components are implemented in ASIC logic, while the software components are written to execute on an embedded processor. The partitioning is based on the estimated cost and performance of hardware and software implementations of each system component, and typically, after the partitioning is performed, the components are further refined and optimized. In addition, the different components may need to be translated into other languages, such as VHDL or Verilog for the hardware components and C or C++ for the software components. This translation may introduce errors and incompatibilities with the original system model. Also, if the partitioning is performed early in the design process, the cost and performance estimates of the various components may not be accurate, particularly if significant changes are made for implementation. In addition, changes made after the partitioning has been performed are often not propagated back into the original system model, and any changes made at the system level (using a different algorithm, for example) may require a new partitioning of the system, leading to another cycle of refinements and optimizations. Therefore, to help maintain an accurate system-level model and to effectively partition the system, the

2 partitioning should be performed as late in the design process as possible. This can be accomplished using a representation of the system that can be efficiently implemented in both hardware and software. 3. The SystemC Language SystemC [2, 5, 6] is a modeling language, developed for system-level modeling and hardware design, which may be useful for representing both the hardware and software components of a system. SystemC is based on C++, and includes a set of classes to model hardware components and a simulation kernel. Several tools, such as the Synopsys CoCentric SystemC compiler [7, 8] and the N2C compiler from CoWare [9], are available to synthesize hardware components from a SystemC description. In general, these tools require the use of a restricted subset of the SystemC language in order to be able to synthesize the system. Since SystemC is based on C++, however, an interesting question is whether SystemC can be used to implement the software components of the system in addition to the hardware components. And, in particular, if the restricted subset of SystemC needed for hardware synthesis can be made compatible with a software implementation. If so, then a single system model could be developed in SystemC and after partitioning, few changes would be needed to create synthesizable hardware components and executable software components. This would reduce design time and help designers maintain a single model of the system throughout the design process. To examine the feasibility of this approach, we need to examine the features and characteristics of SystemC SystemC Features Some of the major features of SystemC include modules, processes, ports, and signals [5]. These are illustrated in Figure 1. Modules are used to encapsulate the structure and functionality of objects, and to express the hierarchy of objects in the system. Modules may contain processes, ports, and signals, and modules communicate with each other through ports and signals. Processes are used in SystemC to model concurrency, and they are the basic unit of execution [5]. Conceptually, processes execute in parallel, and they may be triggered by various events in the system. SystemC supports three different types of processes methods, threads, and clocked threads. A method is scheduled whenever an event occurs on a signal that the method is sensitive to. Once activated, the method executes until it returns control to the Module Process Process Signal Signal Module Process Figure 1: SystemC Modules, Processes, s, and Signals simulation kernel. A method may not suspend execution, and it may not contain an infinite loop. In contrast, a thread is a process that can be suspended and reactivated. A thread may contain an infinite loop, and once it is activated, the thread will continue until it suspends execution. A thread may not be preempted by another thread once it begins execution. As with methods, a thread may be made sensitive to events that occur on various signals. A clocked thread is a special type of thread that can only be made sensitive to a clock signal. It is activated and executes once every clock cycle, and all code between calls to the wait() or wait_until() functions execute in a single cycle of simulated time. Typically, a clocked thread will contain an infinite loop that executes for the duration of the simulation. Clocked threads are the only types of processes that are synthesizable, so we will not discuss methods or threads further. When called from a clocked thread, the wait() function will suspend the thread until the next clock cycle. The wait_until() function takes as a parameter a condition to test. The thread will remain suspended until the condition becomes true. Typically, the condition specifies the state of a signal or combination of signals needed for the thread to continue execution. An infinite loop in a clocked thread must contain at least one call to wait() or wait_until(). s represent the inputs and outputs of objects. Threads read and write to their ports to transfer data. s are bound to signals. Signals are used to connect modules and processes to other modules/processes, and they model the communication channels between communicating objects. When a process writes to an output port, the value of the signal that is bound to the port is updated, and the new value may be read by other processes connected to the signal.

3 SystemC supports the concept of delta cycles for updating signal values [6]. To correctly model the concurrent execution of threads, updates to signals are not visible until the next clock cycle. So, if multiple threads read from the same signal during the same clock cycle, they will all read the same value. At the end of the clock cycle, after all threads have executed, the new value for the signal is determined, and any thread that reads the signal during the next clock cycle will read the updated value. By using delta cycles like this, the order that threads execute during a clock cycle will not affect the signal value, and consistent simulation results may be obtained SystemC Scheduler As mentioned earlier, SystemC includes a simulation kernel so that models may be compiled to generate an executable simulator [5, 10]. The kernel contains a scheduler that is responsible for scheduling processes and updating signals during each clock cycle. The scheduler follows the algorithm shown in Figure 2. During each clock cycle, the scheduler will execute each ready method or thread, and then update the signals as necessary Restrictions for Hardware Synthesis Many features of SystemC and the C/C++ languages cannot yet be implemented in hardware [7]. Therefore, to be able to use synthesis tools, hardware designs must use a restricted subset of SystemC and C/C++. For example, clocked threads are the only process type that is supported, so methods and threads may not be used. In addition, global variables, pointers, and dynamic memory allocation are not supported, either. 4. Using SystemC for Software In order to create a model with components that may be implemented in either hardware or software, we must begin with the restrictions that allow hardware synthesis. Then, we will add additional restrictions to the design to ensure that it will be compatible with a software implementation. These additional restrictions are discussed below. The software processes will execute on an embedded processor, so it is necessary to include a scheduler to control their execution. Because we are using a restricted subset of SystemC, we have developed a simplified version of the SystemC simulation scheduler that provides support for clocked threads and signals. The scheduler supports the SystemC execution model of concurrent processes that communicate through signals. It also supports the delta-cycle update of signals and the wait () and wait_until() functions. The scheduler follows the algorithm shown in Figure 3. For each iteration, all threads that are able to execute are executed. Then, any signals that were modified are updated, and all waiting threads that are now able to execute are activated. The sequence then repeats. Note that, similar to the SystemC simulation kernel, the order that threads are executed during a particular iteration is not specified. However, once a thread suspends, it is guaranteed that all other active threads will execute before that thread is rescheduled. It is also guaranteed that the signals will be updated before the thread is rescheduled. So, each iteration of the scheduler is similar to a clock cycle in the SystemC simulation kernel, although there is no implication that individual software cycles will take the same amount of time. However, given this execution model, designs that execute correctly as hardware components with the SystemC simulation kernel will also execute correctly as software components Software Implementation of Signals To support the concept of delta cycles for updating signal values, each signal must include a current value (current_val) and a next value (next_val). In addition, there are three methods or functions associated with 1. Execute active threads and methods according to sensitivity list 2. Update output signals 3. Activate waiting clocked threads that are now ready (due to changes in signal values) 4. Repeat steps 1-3 until no more signals change value 5. Execute activated clocked threads 1. Execute all active threads 2. Update signals 3. Activate waiting clocked threads that are now ready (due to changes in signal values) 4. Repeat steps 1-3 Figure 2: SystemC Scheduler Figure 3: Modified Scheduler

4 signal.read() { return current_val; signal.write(val) { next_val = val; signal.update() { current_val = next_val; Figure 4: Signal Functions each signal read, write, and update. As shown in Figure 4, the signal.read() function returns the current value of the signal, the signal.write() function updates the next value of the signal, and the signal.update() function synchronizes the current and next values. For proper operation, all accesses to signals by threads should be through the read and write functions. This is done by binding signals to the thread s ports, so that when the thread reads from a port, the signal.read() function will be invoked. Similarly, writing to a port will invoke the signal.write() function. The signal.update() function should only be called by the scheduler. This function is used to implement the deltacycle update of the signal value. The scheduler must maintain a list of all signals in the system so that it can update them during each software clock cycle. The constructor for the signal must register the signal with the scheduler, adding it to the list. During each cycle, the scheduler will traverse this list, invoking the signal.update() function for each signal Software Implementation of Clocked Threads Threads may be in an ACTIVE state, meaning that wait() { suspend current thread switch to next active thread Figure 5: wait() Function wait_until( condition ) { suspend current thread if (condition is false) { current thread state = WAITING remove current thread from Active List add current thread to Waiting List switch to next active thread Figure 6: wait_until() Function the thread is ready to execute, or in a WAITING state, meaning that the thread is waiting for an event on a signal or combination of signals. The scheduler must maintain two lists of threads, an Active list and a Waiting list. When a thread is created, it is initially added to the Active list. During each cycle, the scheduler will, in turn, execute each Active thread. An Active thread will execute until it reaches a call to the wait() or wait_until() function. As shown in Figure 5, the wait() function will cause a switch to the next Active thread. The calling thread will suspend execution, but will remain in the Active state. A call to the wait_until() function, illustrated in Figure 6, will also cause a switch to the next Active thread. However, the thread calling wait_until() will also include as a parameter a boolean condition to test. If the condition is false, the thread is changed to the WAITING state, and it is removed from the list of Active threads and placed on the list of Waiting threads. After the scheduler has executed all Active threads in a cycle, it updates the signals, as shown in Figure 7. Next, as illustrated in Figure 8, the scheduler will test the condition for each Waiting thread. If the condition is now true, the thread s state is changed back to ACTIVE, and the thread is removed from the Waiting updatesignals() { for (each signal) { call signal.update() Figure 7: updatesignals() Function activatewaitingthreads() { for (each waiting thread) { if (thread s condition is true) { thread state = ACTIVE remove thread from Waiting List add thread to Active List Figure 8: activatewaitingthreads() Function

5 list and returned to the Active list. It will then be executed, along with the other Active threads, during the next cycle. If the thread s condition test still evaluates as false, the thread remains in the WAITING state. Other functions called by the scheduler are shown in Figures Notice that only the functions suspendthread() and restorethread() are dependent on the processor being used. These functions must save and restore the current state of a thread, which includes the values stored in the processor s registers, the instruction pointer, the stack pointer, and any other status information. Since this information is processor dependent, these functions would have to be reimplemented to port the scheduler to a different processor Additional Restrictions for Software Execution The restrictions necessary to allow hardware synthesis of the model were discussed earlier. To allow a software implementation, we must add one additional restriction. Because of the concurrent execution of threads in the system, we need to synchronize access to shared data and signals. suspendthread() { save register values save instruction pointer save thread status Figure 9: suspendthread() Function switchtonextthread() { if (no more active threads) { update signals activate waiting threads current thread = head of Active List else { current thread = next thread in Active List restore current thread All communication between modules must use signals and ports. The delta-cycle update of the signals will ensure that threads in both modules see consistent values of the signals. In addition, transfers of data should use a twohandshake scheme, as shown in Figure 12. Notice that only the Sender thread writes to the Data Ready signal, and only the Receiver thread writes to the Ack signal. With the scheduler executing both threads every cycle and updating the signals using delta cycles, this handshake ensures the proper synchronization between the threads. The Receiver will not access the data until the Sender has written it, and the Sender will not overwrite the data before the Receiver has read it. Transfers between threads in the same module should also use the two-handshake scheme. However, only Data Ready and Ack must be implemented with signals. The data can be implemented with member objects of the module, since both threads would be able to access the objects. The handshakes rely on the deltacycle updates, though, so they must use signals. Synopsys recommends that handshaking be used for hardware implementations as well because the CoCentric compiler may insert additional cycles in order to properly schedule and synchronize the threads [7]. There is no guarantee that the number of clock cycles needed for the synthesized circuit will be the same as for the simulated model. If handshaking is used, however, the threads will be properly synchronized. 5. GSM System Model To demonstrate the use of SystemC for the software in an embedded system, a model of a GSM communication system [11] was developed. Details of the model are presented in [12]. A block diagram of the GSM encoder is shown in Figure 13. A SystemC model of each block was developed. To manage the synchronization and transfer of data between blocks, Input and Output processes were included in a module with each Compute process, as shown in Figure 14. Data is transferred between the processes in the Sender Receiver Figure 10: switchtonextthread() Function restorethread() { restore register values restore instruction ptr restore thread status <write data> send DataReady <wait for Ack> DataReady Ack <wait for DataReady> <read data> send Ack Figure 11: restorethread() Function Figure 12: Two-way Handshake

6 Speech Speech Enc Parity Enc Conv Enc Modulate Interleave Burst Cipher Channel Data Figure 13: GSM Encoder Block Diagram RTR START DIA RAK Input STOP IACK IDR IDP module, and between the Input and Output processes of adjoining modules, using a handshaking scheme as described above and in [12]. Using a tool under development at Virginia Tech, the model was partitioned into hardware and software components. The chosen partition implemented the Speech Encoder in hardware, with the other blocks implemented in software. The software portion of the system was compiled for the Motorola StarCore DSP processor, and executed using an instruction-set simulator to measure execution time. For comparison purposes, another version of the software blocks was developed that implemented the functionality of the Compute threads of each block, but without the overhead of threads, the scheduler, or signal handshakes. Comparison of the two versions shows that the SystemC version incurs an overhead cost of approximately 10%. However, the advantage of the SystemC version is that very few changes to the original system model were necessary. In fact, we envision that the process could be automated, allowing designers to develop a single model that could be automatically partitioned into hardware and software components, each of which would both then be synthesized. 6. Conclusions Compute STOP ODR OACK RTS Output RAR Figure 14: Input, Compute, Output Processes DOA This paper has investigated the use of SystemC as a language for implementing the software component of an embedded system. The design of a simple scheduler that can execute SystemC threads was presented, and we also discussed some restrictions to the SystemC language that should be followed to allow both hardware and software implementations of the system components. Preliminary results show that a reasonably efficient implementation can be obtained. By following this approach, implementations of both the hardware and software portions of the system can be derived from a single model of the system, allowing for faster system development and quicker time-tomarket. 7. References [1] G. Martin and B. Salefski, "System Level Design for SOC s: A Progress Report, Two Years On," International HDL Conference and Exhibition, 2000, pp [2] December [3] D. Engels and S. Devadas, "A New Approach to Solving the Hardware-Software Partitioning Problem in Embedded System Design," Proceedings of the 13 th Symposium on Integrated Circuits and Systems Design (SBCCI 00), September 2000, pp [4] J. Straunstrup and W. Wolf, Hardware/Software Co- Design: Principles and Practice, Kluwer Academic Publishers, pp [5] Synopsys, Inc, CoWare, Inc, and Frontier Design, Inc., SystemC, Version 1.0 User s Guide, [6] S. Swan, et. al., Functional Specification for SystemC 2.0, October 5, [7] Synopsys, Inc, CoCentric SystemC Compiler, Behavioral Modeling Guide, December [8] Synopsys, Inc., CoCentric SystemC Compiler, User Guide, December [9] December [10] W. Mueller, J. Ruf, D. Hoffmann, J. Gerlach, T. Kropf, W. Rosenstiehl, "The Simulation Semantics of SystemC," Proceedings Design Automation and Test in Europe, 2001, pp [11] T. S. Rappaport, Wireless Communications, Principles and Practice, Prentice Hall PTR, [12] A. Varma, J. Armstrong, J. Baker, "A SystemC GSM Model for Hardware/Software Co-Design," to be presented at the International HDL Conference and Exhibition (HDLCon 2002), March 2002.

Elements of a SystemC Design Platform

Elements of a SystemC Design Platform Elements of a SystemC Design Platform GEORGE ECONOMAKOS Department of Electrical and Computer Engineering National Technical University of Athens Zographou Campus, GR-15773 Athens GREECE Abstact: - Modern

More information

Intro to High Level Design with SystemC

Intro to High Level Design with SystemC Intro to High Level Design with SystemC Aim To introduce SystemC, and its associated Design Methodology Date 26th March 2001 Presented By Alan Fitch Designer Challenges Design complexity System on Chip

More information

Modeling and Synthesis with SystemC. Anup Varma

Modeling and Synthesis with SystemC. Anup Varma Modeling and Synthesis with SystemC Anup Varma Thesis submitted to the faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Master

More information

Modeling Asynchronous Communication at Different Levels of Abstraction Using SystemC

Modeling Asynchronous Communication at Different Levels of Abstraction Using SystemC Modeling Asynchronous Communication at Different Levels of Abstraction Using SystemC Shankar Mahadevan Inst. for Informatics and Mathematical Modeling Tech. Univ. of Denmark (DTU) Lyngby, Denmark sm@imm.dtu.dk

More information

Efficient Usage of Concurrency Models in an Object-Oriented Co-design Framework

Efficient Usage of Concurrency Models in an Object-Oriented Co-design Framework Efficient Usage of Concurrency Models in an Object-Oriented Co-design Framework Piyush Garg Center for Embedded Computer Systems, University of California Irvine, CA 92697 pgarg@cecs.uci.edu Sandeep K.

More information

EEL 5722C Field-Programmable Gate Array Design

EEL 5722C Field-Programmable Gate Array Design EEL 5722C Field-Programmable Gate Array Design Lecture 17: Describing Synthesizable RTL in SystemC* Prof. Mingjie Lin * 2001 Synopsys, Inc. 1 System-Level Design Specifying the system Verifying its functionality

More information

Cycle-accurate RTL Modeling with Multi-Cycled and Pipelined Components

Cycle-accurate RTL Modeling with Multi-Cycled and Pipelined Components Cycle-accurate RTL Modeling with Multi-Cycled and Pipelined Components Rainer Dömer, Andreas Gerstlauer, Dongwan Shin Technical Report CECS-04-19 July 22, 2004 Center for Embedded Computer Systems University

More information

Checkers for SystemC Designs

Checkers for SystemC Designs Checkers for SystemC Designs Daniel Große Rolf Drechsler Institute of Computer Science University of Bremen 8359 Bremen, Germany {grosse, drechsle}@informatik.uni-bremen.de Abstract Today s complex systems

More information

SpecC Methodology for High-Level Modeling

SpecC Methodology for High-Level Modeling EDP 2002 9 th IEEE/DATC Electronic Design Processes Workshop SpecC Methodology for High-Level Modeling Rainer Dömer Daniel D. Gajski Andreas Gerstlauer Center for Embedded Computer Systems Universitiy

More information

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

Appendix SystemC Product Briefs. All product claims contained within are provided by the respective supplying company. Appendix SystemC Product Briefs All product claims contained within are provided by the respective supplying company. Blue Pacific Computing BlueWave Blue Pacific s BlueWave is a simulation GUI, including

More information

SystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards Summer 2004 NCTU, Taiwan

SystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards Summer 2004 NCTU, Taiwan SystemC 1.3 Languages for Embedded Systems Prof. Stephen A. Edwards Summer 2004 NCTU, Taiwan Designing Big Digital Systems Even Verilog or VHDL s behavioral modeling is not high-level enough People generally

More information

Abstraction Layers for Hardware Design

Abstraction Layers for Hardware Design SYSTEMC Slide -1 - Abstraction Layers for Hardware Design TRANSACTION-LEVEL MODELS (TLM) TLMs have a common feature: they implement communication among processes via function calls! Slide -2 - Abstraction

More information

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1)

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1) Topics Verilog Hardware modeling and simulation Event-driven simulation Basics of register-transfer design: data paths and controllers; ASM charts. High-level synthesis Initially a proprietary language,

More information

Programmable Logic Devices HDL-Based Design Flows CMPE 415

Programmable Logic Devices HDL-Based Design Flows CMPE 415 HDL-Based Design Flows: ASIC Toward the end of the 80s, it became difficult to use schematic-based ASIC flows to deal with the size and complexity of >5K or more gates. HDLs were introduced to deal with

More information

System Level Design Flow

System Level Design Flow System Level Design Flow What is needed and what is not Daniel D. Gajski Center for Embedded Computer Systems University of California, Irvine www.cecs.uci.edu/~gajski System Level Design Flow What is

More information

Cosimulation of ITRON-Based Embedded Software with SystemC

Cosimulation of ITRON-Based Embedded Software with SystemC Cosimulation of ITRON-Based Embedded Software with SystemC Shin-ichiro Chikada, Shinya Honda, Hiroyuki Tomiyama, Hiroaki Takada Graduate School of Information Science, Nagoya University Information Technology

More information

SystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University

SystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University SystemC 1.3 Languages for Embedded Systems Prof. Stephen A. Edwards Columbia University March 2009 Designing Big Digital Systems Even Verilog or VHDL s behavioral modeling is not high-level enough People

More information

System Synthesis of Digital Systems

System Synthesis of Digital Systems System Synthesis Introduction 1 System Synthesis of Digital Systems Petru Eles, Zebo Peng System Synthesis Introduction 2 Literature: Introduction P. Eles, K. Kuchcinski and Z. Peng "System Synthesis with

More information

Design Issues in Hardware/Software Co-Design

Design Issues in Hardware/Software Co-Design 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,

More information

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Pinit Kumhom VLSI Laboratory Dept. of Electronic and Telecommunication Engineering (KMUTT) Faculty of Engineering King Mongkut s University

More information

Architectural-Level Synthesis. Giovanni De Micheli Integrated Systems Centre EPF Lausanne

Architectural-Level Synthesis. Giovanni De Micheli Integrated Systems Centre EPF Lausanne Architectural-Level Synthesis Giovanni De Micheli Integrated Systems Centre EPF Lausanne This presentation can be used for non-commercial purposes as long as this note and the copyright footers are not

More information

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

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools Wen-Yen Lin, Ph.D. Department of Electrical Engineering Chang Gung University Email: wylin@mail.cgu.edu.tw March 2013 Agenda Introduction

More information

Embedded System Design and Modeling EE382V, Fall 2008

Embedded System Design and Modeling EE382V, Fall 2008 Embedded System Design and Modeling EE382V, Fall 2008 Lecture Notes 3 The SpecC System-Level Design Language Dates: Sep 9&11, 2008 Scribe: Mahesh Prabhu Languages: Any language would have characters, words

More information

A Design Methodology for the Exploitation of High Level Communication Synthesis

A Design Methodology for the Exploitation of High Level Communication Synthesis A Design Methodology for the Exploitation of High Level Communication Synthesis Francesco Bruschi, Politecnico di Milano, Italy Massimo Bombana, CEFRIEL, Italy Abstract In this paper we analyse some methodological

More information

SystemC Implementation of VLSI Embedded Systems for MEMS. Application

SystemC Implementation of VLSI Embedded Systems for MEMS. Application Fourth LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCET 2006) Breaking Frontiers and Barriers in Engineering: Education, Research and Practice 21-23 June

More information

RTOS Scheduling in Transaction Level Models

RTOS Scheduling in Transaction Level Models RTOS Scheduling in Transaction Level Models Haobo Yu, Andreas Gerstlauer, Daniel Gajski CECS Technical Report 03-12 March 20, 2003 Center for Embedded Computer Systems Information and Computer Science

More information

An introduction to CoCentric

An introduction to CoCentric A Hand-Out 1 An introduction to CoCentric Las Palmas de G. C., Spain Jun, 27 th, 2002 Agenda 2 System-level SoC design What is SystemC? CoCentric System Studio SystemC based designs verification CoCentric

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1 HIERARCHICAL DESIGN Chapter 13 1 Outline 1. Introduction 2. Components 3. Generics 4. Configuration 5. Other supporting constructs Chapter 13 2 1. Introduction How to deal with 1M gates or more? Hierarchical

More information

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design Outline HIERARCHICAL DESIGN 1. Introduction 2. Components 3. Generics 4. Configuration 5. Other supporting constructs Chapter 13 1 Chapter 13 2 1. Introduction How to deal with 1M gates or more? Hierarchical

More information

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.

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. 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. Embedded Processor Types General Purpose Expensive, requires

More information

Worst Case Execution Time Analysis for Synthesized Hardware

Worst Case Execution Time Analysis for Synthesized Hardware Worst Case Execution Time Analysis for Synthesized Hardware Jun-hee Yoo ihavnoid@poppy.snu.ac.kr Seoul National University, Seoul, Republic of Korea Xingguang Feng fengxg@poppy.snu.ac.kr Seoul National

More information

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions Logic Synthesis Overview Design flow Principles of logic synthesis Logic Synthesis with the common tools Conclusions 2 System Design Flow Electronic System Level (ESL) flow System C TLM, Verification,

More information

Early Models in Silicon with SystemC synthesis

Early Models in Silicon with SystemC synthesis Early Models in Silicon with SystemC synthesis Agility Compiler summary C-based design & synthesis for SystemC Pure, standard compliant SystemC/ C++ Most widely used C-synthesis technology Structural SystemC

More information

RTL Coding General Concepts

RTL Coding General Concepts RTL Coding General Concepts Typical Digital System 2 Components of a Digital System Printed circuit board (PCB) Embedded d software microprocessor microcontroller digital signal processor (DSP) ASIC Programmable

More information

System Level Design with IBM PowerPC Models

System Level Design with IBM PowerPC Models September 2005 System Level Design with IBM PowerPC Models A view of system level design SLE-m3 The System-Level Challenges Verification escapes cost design success There is a 45% chance of committing

More information

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it. MODELING LANGUAGES AND ABSTRACT MODELS Giovanni De Micheli Stanford University Chapter 3 in book, please read it. Outline Hardware modeling issues: Representations and models. Issues in hardware languages.

More information

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

HW/SW Co-design. Design of Embedded Systems Jaap Hofstede Version 3, September 1999 HW/SW Co-design Design of Embedded Systems Jaap Hofstede Version 3, September 1999 Embedded system Embedded Systems is a computer system (combination of hardware and software) is part of a larger system

More information

MetaRTL: Raising the Abstraction Level of RTL Design

MetaRTL: Raising the Abstraction Level of RTL Design MetaRTL: Raising the Abstraction Level of RTL Design Jianwen Zhu Electrical and Computer Engineering University of Toronto March 16, 2001 zhu@eecg.toronto.edu http://www.eecg.toronto.edu/ zhu DATE 2001,

More information

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

1 Design Process HOME CONTENTS INDEX. For further assistance,  or call your local support center 1 Design Process VHDL Compiler, a member of the Synopsys HDL Compiler family, translates and optimizes a VHDL description to an internal gate-level equivalent. This representation is then compiled with

More information

FILTER SYNTHESIS USING FINE-GRAIN DATA-FLOW GRAPHS. Waqas Akram, Cirrus Logic Inc., Austin, Texas

FILTER SYNTHESIS USING FINE-GRAIN DATA-FLOW GRAPHS. Waqas Akram, Cirrus Logic Inc., Austin, Texas FILTER SYNTHESIS USING FINE-GRAIN DATA-FLOW GRAPHS Waqas Akram, Cirrus Logic Inc., Austin, Texas Abstract: This project is concerned with finding ways to synthesize hardware-efficient digital filters given

More information

The SOCks Design Platform. Johannes Grad

The SOCks Design Platform. Johannes Grad The SOCks Design Platform Johannes Grad System-on-Chip (SoC) Design Combines all elements of a computer onto a single chip Microprocessor Memory Address- and Databus Periphery Application specific logic

More information

System Level Design For Low Power. Yard. Doç. Dr. Berna Örs Yalçın

System Level Design For Low Power. Yard. Doç. Dr. Berna Örs Yalçın System Level Design For Low Power Yard. Doç. Dr. Berna Örs Yalçın References System-Level Design Methodology, Daniel D. Gajski Hardware-software co-design of embedded systems : the POLIS approach / by

More information

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

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997. Bibliography Books on software reuse: 1. 2. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, 1997. Practical Software Reuse, Donald J. Reifer, Wiley, 1997. Formal specification and verification:

More information

Managing Dynamic Reconfiguration Overhead in Systems-on-a-Chip Design Using Reconfigurable Datapaths and Optimized Interconnection Networks

Managing Dynamic Reconfiguration Overhead in Systems-on-a-Chip Design Using Reconfigurable Datapaths and Optimized Interconnection Networks Managing Dynamic Reconfiguration Overhead in Systems-on-a-Chip Design Using Reconfigurable Datapaths and Optimized Interconnection Networks Zhining Huang, Sharad Malik Electrical Engineering Department

More information

Computer-Aided Recoding for Multi-Core Systems

Computer-Aided Recoding for Multi-Core Systems Computer-Aided Recoding for Multi-Core Systems Rainer Dömer doemer@uci.edu With contributions by P. Chandraiah Center for Embedded Computer Systems University of California, Irvine Outline Embedded System

More information

Automatic Communication Refinement for System Level Design

Automatic Communication Refinement for System Level Design Automatic Communication Refinement for System Level Design Samar Abdi and Daniel Gajski Technical Report CECS-03-08 March 7, 2003 Center for Embedded Computer Systems University of California, Irvine Irvine,

More information

Optimal Implementation of Simulink Models on Multicore Architectures with Partitioned Fixed Priority Scheduling

Optimal Implementation of Simulink Models on Multicore Architectures with Partitioned Fixed Priority Scheduling The 39th IEEE Real-Time Systems Symposium (RTSS 18) Optimal Implementation of Simulink Models on Multicore Architectures with Partitioned Fixed Priority Scheduling Shamit Bansal, Yecheng Zhao, Haibo Zeng,

More information

Rapid-Prototyping Emulation System using a SystemC Control System Environment and Reconfigurable Multimedia Hardware Development Platform

Rapid-Prototyping Emulation System using a SystemC Control System Environment and Reconfigurable Multimedia Hardware Development Platform Rapid-Prototyping Emulation System using a SystemC System Environment and Reconfigurable Multimedia Development Platform DAVE CARROLL, RICHARD GALLERY School of Informatics and Engineering, Institute of

More information

Using SystemC for Hardware Design Comparison of results with VHDL, Cossap and CoCentric

Using SystemC for Hardware Design Comparison of results with VHDL, Cossap and CoCentric Comparison of results with VHDL, Cossap and CoCentric Mario Steinert, Steffen Buch, CPD AA, Infineon Technologies AG, David Slogsnat, University of Mannheim mario.steinert@infineon.com ABSTRACT This paper

More information

Node Prefetch Prediction in Dataflow Graphs

Node Prefetch Prediction in Dataflow Graphs Node Prefetch Prediction in Dataflow Graphs Newton G. Petersen Martin R. Wojcik The Department of Electrical and Computer Engineering The University of Texas at Austin newton.petersen@ni.com mrw325@yahoo.com

More information

System Level Design Technologies and System Level Design Languages

System Level Design Technologies and System Level Design Languages System Level Design Technologies and System Level Design Languages SLD Study Group EDA-TC, JEITA http://eda.ics.es.osaka-u.ac.jp/jeita/eda/english/project/sld/index.html Problems to Be Solved 1. Functional

More information

Algorithmic C synthesis (High-level synthesis)

Algorithmic C synthesis (High-level synthesis) Algorithmic C synthesis (High-level synthesis) Reminder System level design The complexity of digital systems grows exponentially because of technological improvements, and user demands. The design entries

More information

Next-generation Power Aware CDC Verification What have we learned?

Next-generation Power Aware CDC Verification What have we learned? Next-generation Power Aware CDC Verification What have we learned? Kurt Takara, Mentor Graphics, kurt_takara@mentor.com Chris Kwok, Mentor Graphics, chris_kwok@mentor.com Naman Jain, Mentor Graphics, naman_jain@mentor.com

More information

An Overview of a Compiler for Mapping MATLAB Programs onto FPGAs

An Overview of a Compiler for Mapping MATLAB Programs onto FPGAs An Overview of a Compiler for Mapping MATLAB Programs onto FPGAs P. Banerjee Department of Electrical and Computer Engineering Northwestern University 2145 Sheridan Road, Evanston, IL-60208 banerjee@ece.northwestern.edu

More information

TOOLS AND TECHNOLOGIES FOR DESIGNING CONTROL SYSTEMS USING PROGRAMMABLE LOGIC DEVICES. Adam MILIK, Mariusz DYKIEREK

TOOLS AND TECHNOLOGIES FOR DESIGNING CONTROL SYSTEMS USING PROGRAMMABLE LOGIC DEVICES. Adam MILIK, Mariusz DYKIEREK TOOLS AND TECHNOLOGIES FOR DESIGNING CONTROL SYSTEMS USING PROGRAMMABLE LOGIC DEVICES Adam MILIK, Mariusz DYKIEREK Aldec-ADT, Sp. z o.o., Widok 23, 40-118 Katowice, Poland adamm@aldec.com.pl, mariuszd@aldec.com.pl

More information

Hardware/Software Partitioning for SoCs. EECE Advanced Topics in VLSI Design Spring 2009 Brad Quinton

Hardware/Software Partitioning for SoCs. EECE Advanced Topics in VLSI Design Spring 2009 Brad Quinton Hardware/Software Partitioning for SoCs EECE 579 - Advanced Topics in VLSI Design Spring 2009 Brad Quinton Goals of this Lecture Automatic hardware/software partitioning is big topic... In this lecture,

More information

Introduction to Asynchronous Circuits and Systems

Introduction to Asynchronous Circuits and Systems RCIM Presentation Introduction to Asynchronous Circuits and Systems Kristofer Perta April 02 / 2004 University of Windsor Computer and Electrical Engineering Dept. Presentation Outline Section - Introduction

More information

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router Overview Implementing Gigabit Routers with NetFPGA Prof. Sasu Tarkoma The NetFPGA is a low-cost platform for teaching networking hardware and router design, and a tool for networking researchers. The NetFPGA

More information

Datapath Allocation. Zoltan Baruch. Computer Science Department, Technical University of Cluj-Napoca

Datapath Allocation. Zoltan Baruch. Computer Science Department, Technical University of Cluj-Napoca Datapath Allocation Zoltan Baruch Computer Science Department, Technical University of Cluj-Napoca e-mail: baruch@utcluj.ro Abstract. The datapath allocation is one of the basic operations executed in

More information

EEL 4783: HDL in Digital System Design

EEL 4783: HDL in Digital System Design EEL 4783: HDL in Digital System Design Lecture 9: Coding for Synthesis (cont.) Prof. Mingjie Lin 1 Code Principles Use blocking assignments to model combinatorial logic. Use nonblocking assignments to

More information

A Continuation based Programming Language for Embedded Systems

A Continuation based Programming Language for Embedded Systems e C U P A Continuation based Programming Language for Embedded Systems Shinji Kono E-Mail: kono@ie.u-ryukyu.ac.jp Information Engineering, University of the Ryukyus, PRESTO, Japan Science and Technology

More information

Embedded Software Generation from System Level Design Languages

Embedded Software Generation from System Level Design Languages Embedded Software Generation from System Level Design Languages Haobo Yu, Rainer Dömer, Daniel Gajski Center for Embedded Computer Systems University of California, Irvine, USA haoboy,doemer,gajski}@cecs.uci.edu

More information

Extending the SystemC Synthesis Subset by Object-Oriented Features

Extending the SystemC Synthesis Subset by Object-Oriented Features Extending the SystemC Synthesis Subset by Object-Oriented Features Eike Grimpe OFFIS Research Institute Escherweg 2 26121 Oldenburg, Germany grimpe@offis.de Frank Oppenheimer OFFIS Research Institute Escherweg

More information

I 3 I 2. ! Language of logic design " Logic optimization, state, timing, CAD tools

I 3 I 2. ! Language of logic design  Logic optimization, state, timing, CAD tools Course Wrap-up Let s Try the Priority Encoder One More Time = =! Priority Encoder Revisited! What (We Hope) You Learned I 3 O 3 I j O j! Design Methodology! I 2 O 2 I O I O Zero Oj Ij Ij CS 5 - Spring

More information

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments 8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments QII51017-9.0.0 Introduction The Quartus II incremental compilation feature allows you to partition a design, compile partitions

More information

VLSI Testing. Virendra Singh. Bangalore E0 286: Test & Verification of SoC Design Lecture - 7. Jan 27,

VLSI Testing. Virendra Singh. Bangalore E0 286: Test & Verification of SoC Design Lecture - 7. Jan 27, VLSI Testing Fault Simulation Virendra Singh Indian Institute t of Science Bangalore virendra@computer.org E 286: Test & Verification of SoC Design Lecture - 7 Jan 27, 2 E-286@SERC Fault Simulation Jan

More information

Why do we care about parallel?

Why do we care about parallel? Threads 11/15/16 CS31 teaches you How a computer runs a program. How the hardware performs computations How the compiler translates your code How the operating system connects hardware and software The

More information

Advanced Design System 1.5. DSP Synthesis

Advanced Design System 1.5. DSP Synthesis Advanced Design System 1.5 DSP Synthesis December 2000 Notice The information contained in this document is subject to change without notice. Agilent Technologies makes no warranty of any kind with regard

More information

Chapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel

Chapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel Chapter-6 SUBJECT:- Operating System TOPICS:- I/O Management Created by : - Sanjay Patel Disk Scheduling Algorithm 1) First-In-First-Out (FIFO) 2) Shortest Service Time First (SSTF) 3) SCAN 4) Circular-SCAN

More information

RTOS Scheduling in Transaction Level Models

RTOS Scheduling in Transaction Level Models RTOS Scheduling in Transaction Level Models Haobo Yu, Andreas Gerstlauer, Daniel Gajski Center for Embedded Computer Systems University of California, Irvine Irvine, CA 92697, USA {haoboy,gerstl,gajksi}@cecs.uci.edu

More information

A Generic RTOS Model for Real-time Systems Simulation with SystemC

A Generic RTOS Model for Real-time Systems Simulation with SystemC A Generic RTOS Model for Real-time Systems Simulation with SystemC R. Le Moigne, O. Pasquier, J-P. Calvez Polytech, University of Nantes, France rocco.lemoigne@polytech.univ-nantes.fr Abstract The main

More information

Heterogeneous Physical Modeling Jim Armstrong Professor, ECE, Va. Tech

Heterogeneous Physical Modeling Jim Armstrong Professor, ECE, Va. Tech Heterogeneous Physical Modeling Jim Armstrong Professor, ECE, Va. Tech 02-05-03 Modeling Goals Provide a library component based approach to the modeling of physical systems Employ principles of hierarchy

More information

Lab 7 (All Sections) Prelab: Introduction to Verilog

Lab 7 (All Sections) Prelab: Introduction to Verilog Lab 7 (All Sections) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The

More information

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001 K42 Team modified October 2001 This paper discusses how K42 uses Linux-kernel components to support a wide range of hardware, a full-featured TCP/IP stack and Linux file-systems. An examination of the

More information

Shared Address Space I/O: A Novel I/O Approach for System-on-a-Chip Networking

Shared Address Space I/O: A Novel I/O Approach for System-on-a-Chip Networking Shared Address Space I/O: A Novel I/O Approach for System-on-a-Chip Networking Di-Shi Sun and Douglas M. Blough School of Electrical and Computer Engineering Georgia Institute of Technology Atlanta, GA

More information

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

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips Overview CSE372 Digital Systems Organization and Design Lab Prof. Milo Martin Unit 5: Hardware Synthesis CAD (Computer Aided Design) Use computers to design computers Virtuous cycle Architectural-level,

More information

Controller Synthesis for Hardware Accelerator Design

Controller Synthesis for Hardware Accelerator Design ler Synthesis for Hardware Accelerator Design Jiang, Hongtu; Öwall, Viktor 2002 Link to publication Citation for published version (APA): Jiang, H., & Öwall, V. (2002). ler Synthesis for Hardware Accelerator

More information

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

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is

More information

CS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck

CS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck Main memory management CMSC 411 Computer Systems Architecture Lecture 16 Memory Hierarchy 3 (Main Memory & Memory) Questions: How big should main memory be? How to handle reads and writes? How to find

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

RTOS Modeling for System Level Design

RTOS Modeling for System Level Design RTOS Modeling for System Level Design Andreas Gerstlauer Haobo Yu Daniel D. Gajski Center for Embedded Computer Systems University of California, Irvine Irvine, CA 92697, USA E-mail: {gerstl,haoboy,gajski}@cecs.uci.edu

More information

Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog

Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Lab 7 (Sections 300, 301 and 302) Prelab: Introduction to Verilog Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work

More information

Generating Finite State Machines from SystemC

Generating Finite State Machines from SystemC Generating Finite State Machines from SystemC Ali Habibi, Haja Moinudeen, and Sofiène Tahar Department of Electrical and Computer Engineering Concordia University 1455 de Maisonneuve West Montréal, Québec,

More information

Automatic Generation of Communication Architectures

Automatic Generation of Communication Architectures i Topic: Network and communication system Automatic Generation of Communication Architectures Dongwan Shin, Andreas Gerstlauer, Rainer Dömer and Daniel Gajski Center for Embedded Computer Systems University

More information

VHDL simulation and synthesis

VHDL simulation and synthesis VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis

More information

Hardware Description Languages. Introduction to VHDL

Hardware Description Languages. Introduction to VHDL Hardware Description Languages Introduction to VHDL 1 What does VHDL stand for? VHSIC (= Very High Speed Integrated Circuit) Hardware Description Language 2 Others HDL VHDL IEEE Std 1076-1993 Verilog IEEE

More information

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State

More information

A Hybrid Instruction Set Simulator for System Level Design

A Hybrid Instruction Set Simulator for System Level Design Center for Embedded Computer Systems University of California, Irvine A Hybrid Instruction Set Simulator for System Level Design Yitao Guo, Rainer Doemer Technical Report CECS-10-06 June 11, 2010 Center

More information

101-1 Under-Graduate Project Digital IC Design Flow

101-1 Under-Graduate Project Digital IC Design Flow 101-1 Under-Graduate Project Digital IC Design Flow Speaker: Ming-Chun Hsiao Adviser: Prof. An-Yeu Wu Date: 2012/9/25 ACCESS IC LAB Outline Introduction to Integrated Circuit IC Design Flow Verilog HDL

More information

Timed Compiled-Code Functional Simulation of Embedded Software for Performance Analysis of SOC Design

Timed Compiled-Code Functional Simulation of Embedded Software for Performance Analysis of SOC Design IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 22, NO. 1, JANUARY 2003 1 Timed Compiled-Code Functional Simulation of Embedded Software for Performance Analysis of

More information

Course: Operating Systems Instructor: M Umair. M Umair

Course: Operating Systems Instructor: M Umair. M Umair Course: Operating Systems Instructor: M Umair Process The Process A process is a program in execution. A program is a passive entity, such as a file containing a list of instructions stored on disk (often

More information

Concepts for Model Compilation in Hardware/Software Codesign

Concepts for Model Compilation in Hardware/Software Codesign Concepts for Model Compilation in Hardware/Software Codesign S. Schulz, and J.W. Rozenblit Dept. of Electrical and Computer Engineering The University of Arizona Tucson, AZ 85721 USA sschulz@ece.arizona.edu

More information

Simulation Verification of multiple levels of constraints for system level designs in systemc

Simulation Verification of multiple levels of constraints for system level designs in systemc Simulation Verification of multiple levels of constraints for system level designs in systemc Piyush Ranjan Satapathy, Xi Chen and Harry C. Hsieh Department of Computer Science University of California,

More information

Hardware-Software Codesign. 1. Introduction

Hardware-Software Codesign. 1. Introduction Hardware-Software Codesign 1. Introduction Lothar Thiele 1-1 Contents What is an Embedded System? Levels of Abstraction in Electronic System Design Typical Design Flow of Hardware-Software Systems 1-2

More information

CMPE 415 Programmable Logic Devices Introduction

CMPE 415 Programmable Logic Devices Introduction Department of Computer Science and Electrical Engineering CMPE 415 Programmable Logic Devices Introduction Prof. Ryan Robucci What are FPGAs? Field programmable Gate Array Typically re programmable as

More information

Design methodology for multi processor systems design on regular platforms

Design methodology for multi processor systems design on regular platforms Design methodology for multi processor systems design on regular platforms Ph.D in Electronics, Computer Science and Telecommunications Ph.D Student: Davide Rossi Ph.D Tutor: Prof. Roberto Guerrieri Outline

More information

CS 31: Intro to Systems Threading & Parallel Applications. Kevin Webb Swarthmore College November 27, 2018

CS 31: Intro to Systems Threading & Parallel Applications. Kevin Webb Swarthmore College November 27, 2018 CS 31: Intro to Systems Threading & Parallel Applications Kevin Webb Swarthmore College November 27, 2018 Reading Quiz Making Programs Run Faster We all like how fast computers are In the old days (1980

More information

Co-synthesis and Accelerator based Embedded System Design

Co-synthesis and Accelerator based Embedded System Design Co-synthesis and Accelerator based Embedded System Design COE838: Embedded Computer System http://www.ee.ryerson.ca/~courses/coe838/ Dr. Gul N. Khan http://www.ee.ryerson.ca/~gnkhan Electrical and Computer

More information

Efficient Modeling of Embedded Systems using Designer-controlled Recoding. Rainer Dömer. With contributions by Pramod Chandraiah

Efficient Modeling of Embedded Systems using Designer-controlled Recoding. Rainer Dömer. With contributions by Pramod Chandraiah Efficient Modeling of Embedded Systems using Rainer Dömer With contributions by Pramod Chandraiah Center for Embedded Computer Systems University of California, Irvine Outline Introduction Designer-controlled

More information