Interface Design of VHDL Simulation for Hardware-Software Cosimulation

Size: px
Start display at page:

Download "Interface Design of VHDL Simulation for Hardware-Software Cosimulation"

Transcription

1 Interface Design of Simulation for Hardware-Software Cosimulation Wonyong Sung, Moonwook Oh, Soonhoi Ha Seoul National University Codesign and Parallel Processing Laboratory Seoul, Korea TEL : , FAX : Abstract To perform cosimulation, an interface design of simulation is needed. This interface is responsible for communicating packets between any simulator and the cosimulation backplane, PeaCE, which is a Ptolemy extension as codesign environment. The interface also manages the simulation for correct timed cosimulation. By the automatic interface generation mechanism, the interface is generated without user intervention. The proposed interface mechanism is implemented for two simulators and verified by covalidation with a QAM-16 modulation example. The results and lessons from the experiment are described. 1 Introduction Cosimulation is a key facet of codesign methodology. Through cosimulation, we can validate the functional correctness of the hardware and software working together, ahead of the final synthesis step. Also, cosimulation allows us to evaluate each design decision such as partitioning or component selection. As codesign proceeds, the level of cosimulation evolves from the behavioral level to the implementation level in which timed cosimulation would be necessary to validate the timing requirements. It is unknown to us if there is a cosimulation environment which cooperates with various existing simulators in cosimulation from the behavioral level to the timed level. This paper will present an interface mechanism to combine any simulator in the proposed cosimulation environment. In most codesign systems, the software part is usually a C program and the hardware part is written in hardware description languages (HDLs) such as, Verilog, or Hardware-C. For hardware simulation, most people use a hardware simulator such as a simulator. For software simulation, however, there are various approaches from using the processor simulator to making stand-alone UNIX processes. We use the latter approach. To perform cosimulation, two simulators should be combined, which requires making interfaces for communication between them. To keep designer from the burden of making interfaces at each design iteration step, an automatic interface generation facility is devised in this paper. Since, the software part is running as a UNIX process, most of our efforts for interface design is focused on the interface for the simulation. In the next section, we will give a short introduction to our codesign workflow. The requirements and solutions for interface are described in section 3. The implementation details dependent on our environment are explained in section 4. Some experimental results and discussions are shown in section 5 and section 6 has a conclusion and future works. 2 Codesign Methodology The codesign workflow in PeaCE, a codesign framework we are developing, is represented in figure 1.!"##$%&'( )'*+ A dataflow graph is chosen as an initial specification model for a given application and simulated for algorithm validation. Dataflow models are very effective for specifying most types of DSP applications[2, 3]. During algorithm development and simulation, the use of dataflow specification allows to obtain measures of the algorithmic performance (e.g. bit error ratio) quickly, because there is no need to determine the timing of the operations [9]. Clock, reset and other implementation dependent signals are not required at this level of abstraction. The simulation efficiency is higher than that of discrete event simulation [4].

2 SDF or DDF Algorithm Simulation BP domain Partition CGC : interface node interface insertion topic of this paper The next step is to partition the initial dataflow graph into subgraphs; software graphs and hardware graphs. By cosimulation and evaluation, the feasibility and the cost effectiveness of a partition is examined. At each iteration of codesign process, a new partition is made, which requires the rebuilding of the interface between two subgraphs. Since making an interface is tedious and error-prone work, it is desirable to generate the interface automatically[10]. This is the main topic of this paper. After partitioning, each subgraph is modified in order to add interface nodes at the boundary. From the partitioned graphs, C and codes are generated. No user intervention is needed for the addition of interface node and code generation. The interface node to be added is chosen from the reusable interface node library according to the synthesis target and communication protocol. Through cosimulation, a designer can check the functional correctness ahead of the final synthesis step. Also, cosimulation is used to get the profiling information. As shown in [1], the profiling results help the designer partition the target system more efficiently. Another role is to identify the performance bottleneck. Moreover, by the timed cosimulation, the exact timing behavior of the whole system could be found. To be simulated, the generated C code is compiled into a UNIX process and the generated code from the hardware graph is passed to the simulator for hardware simulation. Back Plane Event Queue BP scheduler Dataflow in original design Dataflow in Backplane CGC test vector C Dataflow Visulaization using socket Code generation with interface C DSP compiler Unix Process DSP executable file compile with Unix CC cosimulation Evaluation Prototyping Board construction simulator O.K. simulator not satisfied Synthesize FPGA loadable file C Process simulator Figure 2. The cosimulation backplane and communication with client simulators Figure 1. Hardware Software Codesign Workflow $ # )'*+ + *+ % To combine two concurrent simulator (C process and simulator), PeaCE introduces and implements a backplane concept, which reduces the number of interface module from N(N-1) to N. In the backplane approach, a software or a hardware simulator interacts with PeaCE, the cosimulation backplane, not knowing the existence of the counterpart. The backplane monitors and manages all communication events between the software and the hardware simulators. On the other hand, Ptolemy group of U.C.Berkeley[8] devised a common interface mechanism between any pair of simulators so that they also achieve the same reduction of interface modules to N. Their approach is called heterogeneous simulation[12]. Therefore, as shown in figure 2, while the cosimulation is in progress, several UNIX processes are running concurrently and cooperatively: C processes, a simulator and PeaCE itself. In figure 2, a C process and a simulator communicate with each other through the cosimulation backplane, PeaCE. In the backplane, we can use simulation and visualization capability of Ptolemy. In figure 2, a dashed line represents a flow of data within the backplane through a function call and a solid line displays a data transmission through socket. The user specifies the dataflow with the dotted lines as shown in figure 4. The backplane supports an event-driven scheduling with an event queue, which holds future events sorted by time. Any data between processes is transferred through the cosimulation backplane, which makes the event queue in the backplane a global event queue. The backplane scheduler manages the event queue and transmits a packet to a client simulator in the order of event generation time. If

3 the destination is an external process like a C process or a simulator, the backplane scheduler calls the utility functions to send the packet via socket. The interface node, automatically inserted by PeaCE, receives the packets and transmits it to C or module. After transmitting packets to a client simulator, the backplane scheduler waits in a polling loop until it receives the results. To avoid deadlock, the client simulator should make it sure to send a response packet to the backplane even when there is no result data. #&+ + +$% +" Based on simulation results, the evaluation module makes a decision whether the current partition satisfies the system requirements. Unless they are satisfied, the codesign process continues to iterate from the partition stage to the evaluation stage. Otherwise, the codesign process reaches the synthesis and testing step. After validation check through timed cosimulation and evaluation step, C and codes are regenerated from the hardware and software subgraphs. In this stage, the generated code includes interface code suitable for the prototyping board, which consists of a DSP and a FPGA. 3 Design and generation of cosimulation interface In this paper, we use simulators and UNIX processes as concurrent processes communicating each other through BSD sockets. An alternative approach is to treat the entire system as a single process by making the C portions of the system as the procedures called from the modules[7]. A serious drawback of this approach is that not all software parts can be expressed as procedures. In our environment, the communication between the hardware and the software is modeled as a message passing system. We aim to design the flexible and extensible message passing interface for cosimulation. We first make the desired characteristics of the message passing interface for generic cosimulation. No modification of the initial specification : Generally, in the initial algorithm specification, there is no considerations for partitioning and interfacing. So, whenever the cosimulation is needed, interface code should be generated on every hardware-software partition automatically. By only adding new the interface, a cosimulation is constructed, without any modification of the user design. No modification of simulator : Since we will use existing simulators for HW simulation, this requirement is crucial. Many of problems we met in this paper are from this requirement. It is revealed that the interface design will be improved significantly if we can add some capabilities to the simulator. In section 4.3, the desirable capabilities will be described. No modification of module libraries : We will not change the code of modules but augment the interface code automatically without user s intervention. It distinguishes our approach from Sari s approach of Carnegie Mellon University[11]. No restriction on specification : A previous work from U.C.Berkeley restricted the program, which is generated from a program graph with SDF semantics, to a single thread of control [8]. Even though this approach schedules the communication statically for deadlock avoidance as well as runtime performance improvement, it is too restrictive for general applications. In [8], only one sequential process is running on the simulator. Our specification has no such restrictions on model. In fact, we add a new module as the interface module, which will run concurrently with the graph. Timed cosimulation : After functional correctness is validated, we also need to check the timing requirements of the system. Since the simulator has the notion of time, we can perform timed cosimulation if software processes are managed by an event-driven scheduling. Then, we need to define a synchronization protocol between two concurrent event-driven simulators. 4 Implementation *)' #)$ "! +$% Our codesign environment, PeaCE is based on the Ptolemy which is a framework for heterogeneous system specification, simulation and synthesis[6]. In Ptolemy, an application is represented as a block diagram which is given an appropriate semantics. For example, a DSP algorithm is represented as a block diagram with the dataflow graph semantics. Each block contains the code to be executed to make the coarse grain dataflow graph. In this paper, we consider a category of applications that can be represented with dataflow graphs, for example, DSP systems. Ptolemy generates C codes from the partitioned dataflow graphs for software and makes stand-alone C processes to be run on the host computer. And, from the partitioned dataflow graphs for hardware, Ptolemy generates codes that are passed to the simulator. Before C codes and codes are generated from the partitioned

4 graphs, communication blocks are automatically inserted at each partition boundary. The type and connectivity information of the communication block are decided by those of the partitioned arc. These communication blocks contain all communication and synchronization routines for cosimulation: they include socket establishment, socket termination, data communication, buffer management and synchronization by timestamp management. By the foreign interface mechanism according to the ANSI/IEEE std , the communication codes for are written in C and called by the code in the newly added communication modules. )" #)$ ' %& signal foreign interface M_1 wait for 1 ns; M_2 Master Receive Receive inf(1) object_time User s Design inf(2) Foreign Module (C) Figure 3. Function of three entities of interface Send Send For simulator we append three types of interface nodes; master node, send node, and receive node. For each partitioned arc, we add either a receive node for an input arc or a send node for an output arc. Send nodes and receive nodes are implemented separately for each data type: float or integer. A simulator schedules interface nodes when communication occurs. In case there are more than one input communication links between hardware and software, there exists a risk of deadlock unless we carefully manage the firing order of receiver modules. We solve this problem by adding one entity, called the master node, which serializes the firings of communication nodes. The architecture of interface simulation is depicted in figure 3. In the initialization stage, the master node establishes the socket connection and setups the input and output queues; one for each partitioned link. Also, the master node scans the output buffer of send blocks to export the new data to the outside. Even in case there is no output data, it generates the END signal to the outside to indicate that the partitioned graph has finished its execution. If we define a simulation loop as the duration between receiving input packets form the backplane and transmitting response packets, a simulation loop is divided into two parts: the interface time (inf(1) + inf(2) in figure 3) and user module time(object time in figure 3). At the beginning of a simulation loop, the master node calls the socket receive function, which scans all incoming channels to read all simultaneous data from the backplane until the GO control packet is received. Each packet from the outside contains an identification field to specify which receiver node it is transferred to. After transferring all received data to the input buffer, it generates an enable signal to each receive node to run the partitioned graph. The receive nodes get the data from the buffer, which defines the end point of inf(1) duration. If a send node is scheduled, it writes a result data into an output buffer in the foreign module. This is the beginning of inf(2) duration. After delta delay in the simulator, the master node scans the output buffer and transmit the data to the backplane through socket. The end of inf(2) is marked here. The time measurement is described in section 5.2. #+ )$%!$ %' # )'*+% To make the concurrent event-driven simulation, we use a conservative approach so that the clock of simulator may not be ahead of the global clock. In a conservative timed cosimulation, a client simulator can advance its local time only when it receives a packet which has a time stamp larger than its local time. Since we may not expect that the simulator has an interface for the external cosimulation engine to prevent the advancement of the local clock, we let the master node keeps the time advancement of the simulator from being ahead of the global clock. The master node plays a role of runtime manager of the simulator. For correct timed cosimulation, the behavior of the master node described in the previous subsection is divided into two parts. At each execution, the master node checks the input connection and send signals to wake up the receive nodes. After all events at the current time are processed in the simulator, the master node is scheduled again to check the output buffer and sends packets to the cosimulation backplane. Then, the master node goes into a wait loop to be excited from the outside. Figure 4 and figure 5 are screen dumps from QAM cosimulation in PeaCE. Figure 4 has a top view of QAM system which has two super nodes; one has a C subgraph and the other has a subgraph that is displayed in figure 5. The top view window also has two simulation support

5 Figure 4. A screen dump of top view window of QAM in PeaCE is scheduled and produces a output value when a packet is received from the backplane. If a ramp node is scheduled after the master node checks the output buffer and produces a result, then the result will be checked and sent out at the next time slot. The backplane will receive the packet after it advances to the next time slot. So, the packet will be an old packet and the conservative cosimulation will be broken. Another problem is that the value responded first is a glitch. Since it is usually not possible to schedule a certain process at the end of the current time wheel, as shown in figure 6, we advance the local time for delta delay before the master node checks the output buffer and sends response packets to the backplane of cosimulation. Although the master node is scheduled at the beginning of the next time slot rather than at the end of the current time slot, we can deliver the final results of the previous time slot to the backplane if we subtract the delta time from the time-stamp of the output packets. while(go packet is received) loop receive packet from socket; write data into input queue; end loop; Check timestamp of received packet; if (timestamp > simulator s time) advance time; Send ENABLE signal to receiver nodes; Advance local time for delta delay(1 NS); Check data in output queue; If data exists then send data to socket; Send END signal with next time; Figure 5. A screen dump of QAM cosimulation in PeaCE nodes; a clock node (a test pattern generation node) and a XGraph node (a visualization node) in the backplane. While the module graph has 8 nodes, 12 entities are simulated because of the insertion of a master node, two receive nodes, and a send node. Each of 12 entities has its own process. Thus 12 concurrent processes are running within the simulator. For the master node to check the output buffer, the master node should be scheduled only after all events in the same time wheel are processed. Or, the simulator may not produce the current output to the backplane on time. Recall that once the master node receives a packet from the backplane, even if there is no result data at that time, a response packet should be sent to the backplane for the backplane scheduler to exit from the wait loop. In the module graph shown in figure 5, there is a source node, a ramp node, which produces an incremented value whenever it is scheduled. The designers intention is that the ramp node Figure 6. Behavior of the master node The advancement of the local clock by delta delay is prohibited in conservative distributed simulation. To cure this problem, the duration of arbitrary time advancement should be small enough to be ignorable at the simulation interface. An easiest way is to use a very small time unit such as 1 femto second. Since the small unit of time makes the internal data structure of simulator inefficient, we use a SCALE parameter, which is a ratio between the time unit in the entire cosimulation and that within the simulator. When the master communicate with the backplane, the time-stamp of a packet is interpreted by multiplying or dividing the time-stamp with the SCALE value. The behavior of the master node is shown in figure 6. There are two points where the time advancement is occurred. After packets from the backplane are received, if the future time stamp is detected by calling check time advance() foreign procedure, the simulator advances its local time. The amount of time advancement is computed by multiplying the SCALE value with the time difference between the backplane and the simu-

6 lator. Another advancement is the delta delay advancement described earlier. This is used only once per each simulation cycle. If the SCALE is larger than 1, timed simulation works well. However, another problem is caused by using the SCALE parameter. If there is a module which uses a time unit smaller than SCALE, the module work differently from the designer s intention. In QAM, for example, a ramp node has a wait for 1ns; statement. After we replace the statement with wait for SCALE ns;, the system works correctly. We will construct a module library, a SCALE is used as one of its generic parameters. From the experiences of interface design and implementation, we make a list of facilities that simulators had better support for cosimulation. A callback function for hooking the scheduler: Before the simulator s scheduler advances to the next cycle, a function pointed by a pointer is called. In normal situation the pointer is pointed a null function. If a cosimulation environment designer wants to hook it up, he defines a function body and set the pointer to the new address. If the supported language is a C++, it will be done by a virtual function. By the callback mechanism, the master node can be executed at the end of the current wheel. Then, we will do without the delta delay management described above. The time of nearest future event: To perform more efficient cosimulation, the information of nearest future event is required. The current implementation of PeaCE uses the next time increment as a nearest future event and it is a major source of inefficiency of cosimulation time. The C language interface in the Synopsys simulator(vss) supports this facility with the cligetnexteventtime function. 5 Experiences of cosimulation with designed interface mechanism We implemented two sets of the proposed interface generation mechanism with QAM modulation example. One set of implementation is for Synopsys VSS simulator and the other is for IVSIM, which is developed in the same University[13]. Though both support the foreign interface, since the implementation details of the foreign interface are not specified in the standard, the interface mechanism in each simulator depends on the simulator implementation. + ) #$ &+ #)$ The fixed C module in table 1 is a foreign module which includes socket handling routine and interface routine. In VSS, a foreign module defines the body of a entity itself, thus needs more extra code to interface with the scheduler of the VSS simulator. On the other hand, the C modules in IVSIM are just procedure calls. As a result, the fixed C part in VSS is larger than that in IVSIM. In VSS, however, interface designer can exploit more facilities related with simulator kernel using CLI(C Level Interface) facility. The fixed module in VSS includes entity definitions of send, receive, and master node, while that in IVSIM has only a master node. On the contrary, the proportional parts in IVSIM are larger than those in VSS. The proportional part in VSS has only entity instantiation codes while, in IVSIM, the proportional part defines and instantiates entities of send or receive node. Although there are much differences in detailed implementation, the same interface mechanism using the master node is used for both simulators, and the size of interface part is about 10% of the whole simulated code for both VSS and IVSIM in the QAM example. Table 1. Interface code overhead in VSS and IVSIM simulators Fixed C Module (bytes) Fixed module (lines) lines per Receive lines per Send VSS IVSIM ' #$ & #)$ The result of runtime monitoring of simulator and interface module is presented in table 2. To measure the execution time of user design modules and that of interface modules, we use gettimeofday() UNIX system call. The current time is expressed in elapsed seconds and microseconds since 00:00 GMT, January 1,1970. We obtain the system time at four points as described in section 2.2. The time spent in interface modules means the duration between the UNIX socket to input/output buffers while the module time is the time duration between when the receive nodes get the input data from the input buffer and when the send nodes write the results into the output buffer. The time overhead of interface block is small enough to be ignored. 6 Conclusion We have presented a new interface mechanism for hardware-software cosimulation. We think that the approach, which satisfies all of the requirements in the wish-

7 Table 2. Interface time overhead in QAM cosimulation. (IVSIM simulator is used and all values are presented in micro seconds unit.) Simulation Loop User Module Interface Module 96 65,905 5, ,768 8, ,005 11, ,545 15, ,625 18,399 list, is applicable to all detailed levels of cosimulations and to various existing simulators. It is not known to us that there has been any cosimulation environment which works with any simulator and at the same time performs timed cosimulation. We implemented the interface mechanism both for VSS and IVSIM simulators and compared them. Also, we verified the feasibility of the proposed approach by conservative timed cosimulation with a QAM-16 modulation example. The implemented interface and lessons for more efficient timed cosimulation has been described. As a future work we will improve our cosimulation environment, construct a generic and parameterized module library, and make a smooth migration path to cosynthesis. Tool. IEEE International Conference on Acoustics, Speech, and Signal Processing, [9] Peter Zepter, Thorsten Grotker, and Heinrich Meyr. Digital Receiver Design Using Generation From Data Flow Graphs. Procedings of 34th DAC, June [10] S. Schemeler, et. al. A backplane approach for cosimulation in high-level system specification environments. European Design and Test Conference, [11] Sari L. Coumeri and Donald E. Thomas. A Simulation Environment for Hardware-Software Codesign. IEEE Design and Test of Computers, pages 16 28, September [12] Wayne Wolf. Hardware-software codesign of embedded systems. Proceedings of IEEE, 82: , July [13] Y.Kim, K. Kim, Y.Shin, T.Ahn, W.Sung, K.Choi, and S.Ha. An integrated hardware-software cosimulation environment for heterogeneous system prototyping. Proc. of ASPDAC, pages , August References [1] C. Passerone, et. al. Fast and accurate hardwaresoftware co-simulation using software timing estimates. CODE/CASHE96, [2] E. A. Lee. Recurrences, Iteration, and Conditionals in Statically Scheduled Block Diagram Language in VLSI Signal Processing III. IEEE Press, [3] E. A. Lee, and D. G. Messerschimitt. Synchronous data flow. IEEE Proceedings, September [4] G. Jennings. A case against event driven simulation of digital system design. The 24th Annual Simulation Symposium, pages , April [5] IEEE. IEEE Standard Language : Reference Manual. IEEE, Inc., 345 East 47th Street, New York, NY 10017, USA, [6] J. Buck, S. Ha, E. A. Lee, and D. G. Messerschimitt. Ptolemy: A framework for simulating and prototyping heterogeneous systems. International Journal of Computer Simulation, 4: , April [7] J. P. Soninen, et. al. Co-simulation of real-time control systems. IEEE/ACM Proc. of Euro-Dac 95, pages , [8] J. Pino, Michael C. Williamson, and Edward A. Lee. Interface Synthesis in Heterogeneous System-Level DSP Design

An Integrated Hardware-Software Cosimulation Environment for Heterogeneous Systems Prototyping

An Integrated Hardware-Software Cosimulation Environment for Heterogeneous Systems Prototyping An Integrated Hardware-Software Cosimulation Environment for Heterogeneous Systems Prototyping Yongjoo Kim*, Kyuseok Kim*, Youngsoo Shin*, Taekyoon Ahn*, Wonyong Sung', Kiyoung Choi*, Soonhoi Ha' * Dept.

More information

Hardware, Software and Mechanical Cosimulation for Automotive Applications

Hardware, Software and Mechanical Cosimulation for Automotive Applications Hardware, Software and Mechanical Cosimulation for Automotive Applications P. Le Marrec, C.A. Valderrama, F. Hessel, A.A. Jerraya TIMA Laboratory 46 Avenue Felix Viallet 38031 Grenoble France fphilippe.lemarrec,

More information

Code Generation for TMS320C6x in Ptolemy

Code Generation for TMS320C6x in Ptolemy Code Generation for TMS320C6x in Ptolemy Sresth Kumar, Vikram Sardesai and Hamid Rahim Sheikh EE382C-9 Embedded Software Systems Spring 2000 Abstract Most Electronic Design Automation (EDA) tool vendors

More information

EEL 5722C Field-Programmable Gate Array Design

EEL 5722C Field-Programmable Gate Array Design EEL 5722C Field-Programmable Gate Array Design Lecture 19: Hardware-Software Co-Simulation* Prof. Mingjie Lin * Rabi Mahapatra, CpSc489 1 How to cosimulate? How to simulate hardware components of a mixed

More information

Ptolemy Seamlessly Supports Heterogeneous Design 5 of 5

Ptolemy Seamlessly Supports Heterogeneous Design 5 of 5 In summary, the key idea in the Ptolemy project is to mix models of computation, rather than trying to develop one, all-encompassing model. The rationale is that specialized models of computation are (1)

More information

HDL Cosimulation August 2005

HDL Cosimulation August 2005 HDL Cosimulation August 2005 Notice The information contained in this document is subject to change without notice. Agilent Technologies makes no warranty of any kind with regard to this material, including,

More information

Cosimulation II. How to cosimulate?

Cosimulation II. How to cosimulate? Cosimulation II Cosimulation Approaches Mahapatra-Texas A&M-Fall 00 1 How to cosimulate? How to simulate hardware components of a mixed hardware-software system within a unified environment? This includes

More information

Cosimulation II. Cosimulation Approaches

Cosimulation II. Cosimulation Approaches Cosimulation II Cosimulation Approaches How to cosimulate? How to simulate hardware components of a mixed hardware-software system within a unified environment? This includes simulation of the hardware

More information

Advanced Design System HDL Cosimulation

Advanced Design System HDL Cosimulation Advanced Design System 2001 HDL Cosimulation August 2001 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

HDL Cosimulation September 2002

HDL Cosimulation September 2002 HDL Cosimulation September 2002 Notice The information contained in this document is subject to change without notice. Agilent Technologies makes no warranty of any kind with regard to this material, including,

More information

HDL Cosimulation May 2007

HDL Cosimulation May 2007 HDL Cosimulation May 2007 Notice The information contained in this document is subject to change without notice. Agilent Technologies makes no warranty of any kind with regard to this material, including,

More information

An Overview of the Ptolemy Project. Organizational

An Overview of the Ptolemy Project. Organizational An Overview of the Ptolemy Project Edward A. Lee Professor and Principal Investigator UC Berkeley Dept. of EECS Copyright 1997, The Regents of the University of California All rights reserved. Organizational

More information

DESIGN METHODOLOGY MANAGEMENT FOR SYSTEM-LEVEL DESIGN

DESIGN METHODOLOGY MANAGEMENT FOR SYSTEM-LEVEL DESIGN Abstract DESIGN METHODOOGY MANAGEMENT FOR SYSTEM-EVE DESIGN Asawaree Kalavade Edward A. ee Ptolemy Miniconference March 10, 1995. System-level design is characterized by a behavioral specification and

More information

Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers

Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers Addressing Verification Bottlenecks of Fully Synthesized Processor Cores using Equivalence Checkers Subash Chandar G (g-chandar1@ti.com), Vaideeswaran S (vaidee@ti.com) DSP Design, Texas Instruments India

More information

An Integrated Cosimulation Environment for Heterogeneous Systems Prototyping

An Integrated Cosimulation Environment for Heterogeneous Systems Prototyping An Integrated Cosimulation Environment for Heterogeneous Systems Prototyping Yongjoo Kim, Kyuseok Kim, Youngsoo Shin, Taekyoon Ahn, and Kiyoung Choi School of Electrical Engineering Seoul National University

More information

DISTRIBUTED CO-SIMULATION TOOL. F.Hessel, P.Le Marrec, C.A.Valderrama, M.Romdhani, A.A.Jerraya

DISTRIBUTED CO-SIMULATION TOOL. F.Hessel, P.Le Marrec, C.A.Valderrama, M.Romdhani, A.A.Jerraya 1 MCI MULTILANGUAGE DISTRIBUTED CO-SIMULATION TOOL F.Hessel, P.Le Marrec, C.A.Valderrama, M.Romdhani, A.A.Jerraya System-Level Synthesis Group TIMA Laboratory Grenoble, France Abstract Nowadays the design

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

An Empirical Performance Study of Connection Oriented Time Warp Parallel Simulation

An Empirical Performance Study of Connection Oriented Time Warp Parallel Simulation 230 The International Arab Journal of Information Technology, Vol. 6, No. 3, July 2009 An Empirical Performance Study of Connection Oriented Time Warp Parallel Simulation Ali Al-Humaimidi and Hussam Ramadan

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

Chapter 8. FSM Model Specification

Chapter 8. FSM Model Specification Chapter 8. FSM Model Specification Finite state machine (FSM) model is useful to express the behavior of a control (or reactive) system like a bending machine, a cruse control system of a car, a traffic

More information

A System-Level Co-Verification Environment for ATM Hardware Design

A System-Level Co-Verification Environment for ATM Hardware Design A System-Level Co-Verification Environment for ATM Hardware Design Guido Post, Andrea Müller and Thorsten Grötker Institute for Integrated Signal Processing Systems RWTH Aachen, University of Technology

More information

Efficient Code Synthesis from Extended Dataflow Graphs for Multimedia Applications

Efficient Code Synthesis from Extended Dataflow Graphs for Multimedia Applications Efficient Code Synthesis from Extended Dataflow Graphs for Multimedia Applications Hyunok Oh The School of Electrical Engineering and Computer Science Seoul National University Seoul 5-742, KOREA TEL :

More information

Dataflow Architectures. Karin Strauss

Dataflow Architectures. Karin Strauss Dataflow Architectures Karin Strauss Introduction Dataflow machines: programmable computers with hardware optimized for fine grain data-driven parallel computation fine grain: at the instruction granularity

More information

Using SystemC to Implement Embedded Software

Using SystemC to Implement Embedded Software 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

More information

Documentation Programmer-Oriented

Documentation Programmer-Oriented Documentation Programmer-Oriented Volume 3 Programmer s Manual software organization writing stars infrastructure data types Tcl/Tk domains code generation Volume 4 Kernel Manual detailed documentation

More information

Overview of Dataflow Languages. Waheed Ahmad

Overview of Dataflow Languages. Waheed Ahmad Overview of Dataflow Languages Waheed Ahmad w.ahmad@utwente.nl The purpose of models is not to fit the data but to sharpen the questions. Samuel Karlins 11 th R.A Fisher Memorial Lecture Royal Society

More information

Software Synthesis from Dataflow Models for G and LabVIEW

Software Synthesis from Dataflow Models for G and LabVIEW Software Synthesis from Dataflow Models for G and LabVIEW Hugo A. Andrade Scott Kovner Department of Electrical and Computer Engineering University of Texas at Austin Austin, TX 78712 andrade@mail.utexas.edu

More information

Software Synthesis Trade-offs in Dataflow Representations of DSP Applications

Software Synthesis Trade-offs in Dataflow Representations of DSP Applications in Dataflow Representations of DSP Applications Shuvra S. Bhattacharyya Department of Electrical and Computer Engineering, and Institute for Advanced Computer Studies University of Maryland, College Park

More information

High Data Rate Fully Flexible SDR Modem

High Data Rate Fully Flexible SDR Modem High Data Rate Fully Flexible SDR Modem Advanced configurable architecture & development methodology KASPERSKI F., PIERRELEE O., DOTTO F., SARLOTTE M. THALES Communication 160 bd de Valmy, 92704 Colombes,

More information

A Controller Testability Analysis and Enhancement Technique

A Controller Testability Analysis and Enhancement Technique A Controller Testability Analysis and Enhancement Technique Xinli Gu Erik Larsson, Krzysztof Kuchinski and Zebo Peng Synopsys, Inc. Dept. of Computer and Information Science 700 E. Middlefield Road Linköping

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

The Design of Mixed Hardware/Software Systems

The Design of Mixed Hardware/Software Systems The Design of Mixed Hardware/Software Systems Jay K. Adams Synopsys, Inc. 700 East Middlefield Road Mountain View, CA 94043 jka@synopsys.com Donald E. Thomas Deptartment of Electrical and Computer Engineering

More information

Software Pipelining for Coarse-Grained Reconfigurable Instruction Set Processors

Software Pipelining for Coarse-Grained Reconfigurable Instruction Set Processors Software Pipelining for Coarse-Grained Reconfigurable Instruction Set Processors Francisco Barat, Murali Jayapala, Pieter Op de Beeck and Geert Deconinck K.U.Leuven, Belgium. {f-barat, j4murali}@ieee.org,

More information

Chapter 4. Introduction to Domains, Targets, and Foreign Tool Interfaces

Chapter 4. Introduction to Domains, Targets, and Foreign Tool Interfaces Chapter 4. Introduction to Domains, Targets, and Foreign Tool Interfaces Authors: Joseph T. Buck Brian L. Evans Soonhoi Ha Asawaree Kalavade Edward A. Lee Thomas M. Parks Michael C. Williamson Other Contributors:

More information

Meta-Data-Enabled Reuse of Dataflow Intellectual Property for FPGAs

Meta-Data-Enabled Reuse of Dataflow Intellectual Property for FPGAs Meta-Data-Enabled Reuse of Dataflow Intellectual Property for FPGAs Adam Arnesen NSF Center for High-Performance Reconfigurable Computing (CHREC) Dept. of Electrical and Computer Engineering Brigham Young

More information

Renesting Single Appearance Schedules to Minimize Buffer Memory ABSTRACT

Renesting Single Appearance Schedules to Minimize Buffer Memory ABSTRACT UCB/ERL Technical Report, Memorandum No. UCB/ERL M95/43, Electronics Research Laboratory, College of Engineering, University of California, Berkeley, CA 94720 Renesting Single Appearance Schedules to Minimize

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

Hardware/Software Co-design

Hardware/Software Co-design Hardware/Software Co-design Zebo Peng, Department of Computer and Information Science (IDA) Linköping University Course page: http://www.ida.liu.se/~petel/codesign/ 1 of 52 Lecture 1/2: Outline : an Introduction

More information

Architecture choices. Functional specifications. expensive loop (in time and cost) Hardware and Software partitioning. Hardware synthesis

Architecture choices. Functional specifications. expensive loop (in time and cost) Hardware and Software partitioning. Hardware synthesis Introduction of co-simulation in the design cycle of the real- control for electrical systems R.RUELLAND, J.C.HAPIOT, G.GATEAU Laboratoire d'electrotechnique et d'electronique Industrielle Unité Mixte

More information

Dynamic Scheduling Implementation to Synchronous Data Flow Graph in DSP Networks

Dynamic Scheduling Implementation to Synchronous Data Flow Graph in DSP Networks Dynamic Scheduling Implementation to Synchronous Data Flow Graph in DSP Networks ENSC 833 Project Final Report Zhenhua Xiao (Max) zxiao@sfu.ca April 22, 2001 Department of Engineering Science, Simon Fraser

More information

Static Scheduling and Code Generation from Dynamic Dataflow Graphs With Integer- Valued Control Streams

Static Scheduling and Code Generation from Dynamic Dataflow Graphs With Integer- Valued Control Streams Presented at 28th Asilomar Conference on Signals, Systems, and Computers November, 994 Static Scheduling and Code Generation from Dynamic Dataflow Graphs With Integer- Valued Control Streams Joseph T.

More information

Verification and Validation of X-Sim: A Trace-Based Simulator

Verification and Validation of X-Sim: A Trace-Based Simulator http://www.cse.wustl.edu/~jain/cse567-06/ftp/xsim/index.html 1 of 11 Verification and Validation of X-Sim: A Trace-Based Simulator Saurabh Gayen, sg3@wustl.edu Abstract X-Sim is a trace-based simulator

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

The Ptolemy Project. Modeling and Design of Reactive Systems. Presenter: Praveen Murthy, PhD Postdoc and Presenter

The Ptolemy Project. Modeling and Design of Reactive Systems. Presenter: Praveen Murthy, PhD Postdoc and Presenter The Ptolemy Project Modeling and Design of Reactive Systems Presenter: Praveen Murthy, PhD Postdoc and Presenter Edward A. Lee Professor and PI UC Berkeley Dept. of EECS Copyright 1997, The Regents of

More information

Mapping real-life applications on run-time reconfigurable NoC-based MPSoC on FPGA. Singh, A.K.; Kumar, A.; Srikanthan, Th.; Ha, Y.

Mapping real-life applications on run-time reconfigurable NoC-based MPSoC on FPGA. Singh, A.K.; Kumar, A.; Srikanthan, Th.; Ha, Y. Mapping real-life applications on run-time reconfigurable NoC-based MPSoC on FPGA. Singh, A.K.; Kumar, A.; Srikanthan, Th.; Ha, Y. Published in: Proceedings of the 2010 International Conference on Field-programmable

More information

An Extension of the ASC Language Compiler to Support Multiple Instruction Streams in the MASC Model using the Manager-Worker Paradigm

An Extension of the ASC Language Compiler to Support Multiple Instruction Streams in the MASC Model using the Manager-Worker Paradigm An Extension of the ASC Language Compiler to Support Multiple s in the MASC Model using the Manager-Worker Paradigm Wittaya Chantamas, Johnnie Baker, and Michael Scherger Department of Computer Science

More information

Network Working Group Request for Comments # 107 NIC # Output of the Host-Host Protocol Glitch Cleaning Committee. UCLA 23 March 1971

Network Working Group Request for Comments # 107 NIC # Output of the Host-Host Protocol Glitch Cleaning Committee. UCLA 23 March 1971 Network Working Group Request for Comments # 107 NIC # 5806 Output of the Host-Host Protocol Glitch Cleaning Committee UCLA 23 March 1971 Robert Bressler Steve Crocker William Crowter Gary Grossman Ray

More information

ECE 477 Senior Design Project Group 12 Spring Homework 10 Software Design Considerations Group Number: 12 Phillip Boone

ECE 477 Senior Design Project Group 12 Spring Homework 10 Software Design Considerations Group Number: 12 Phillip Boone Homework 10 Software Design Considerations Group Number: 12 Phillip Boone Introduction The Digital Picture Box functionally is used to display to a VGA monitor a database of pictures stored remotely on

More information

System-Level Verification Platform using SystemVerilog Layered Testbench & SystemC OOP

System-Level Verification Platform using SystemVerilog Layered Testbench & SystemC OOP , pp.221-230 http://dx.doi.org/10.14257/ijca.2014.7.2.21 System-Level Verification Platform using SystemVerilog Layered Testbench & SystemC OOP Young-Jin Oh and Gi-Yong Song * Department of Electronics

More information

High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 18 Dynamic Instruction Scheduling with Branch Prediction

More information

The Ptolemy Kernel Supporting Heterogeneous Design

The Ptolemy Kernel Supporting Heterogeneous Design February 16, 1995 The Ptolemy Kernel Supporting Heterogeneous Design U N T H E I V E R S I T Y A O F LET THERE BE 1868 LIG HT C A L I A I F O R N by The Ptolemy Team 1 Proposed article for the RASSP Digest

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

Parallel and Distributed VHDL Simulation

Parallel and Distributed VHDL Simulation Parallel and Distributed VHDL Simulation Dragos Lungeanu Deptartment of Computer Science University of Iowa C.J. chard Shi Department of Electrical Engineering University of Washington Abstract This paper

More information

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected

More information

HARDWARE/SOFTWARE cosimulation is the key enabler

HARDWARE/SOFTWARE cosimulation is the key enabler 2186 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 26, NO. 12, DECEMBER 2007 Fast and Accurate Cosimulation of MPSoC Using Trace-Driven Virtual Synchronization Youngmin

More information

fakultät für informatik informatik 12 technische universität dortmund Data flow models Peter Marwedel TU Dortmund, Informatik /10/08

fakultät für informatik informatik 12 technische universität dortmund Data flow models Peter Marwedel TU Dortmund, Informatik /10/08 12 Data flow models Peter Marwedel TU Dortmund, Informatik 12 2009/10/08 Graphics: Alexandra Nolte, Gesine Marwedel, 2003 Models of computation considered in this course Communication/ local computations

More information

Portland State University ECE 588/688. Dataflow Architectures

Portland State University ECE 588/688. Dataflow Architectures Portland State University ECE 588/688 Dataflow Architectures Copyright by Alaa Alameldeen and Haitham Akkary 2018 Hazards in von Neumann Architectures Pipeline hazards limit performance Structural hazards

More information

A New Approach to Determining the Time-Stamping Counter's Overhead on the Pentium Pro Processors *

A New Approach to Determining the Time-Stamping Counter's Overhead on the Pentium Pro Processors * A New Approach to Determining the Time-Stamping Counter's Overhead on the Pentium Pro Processors * Hsin-Ta Chiao and Shyan-Ming Yuan Department of Computer and Information Science National Chiao Tung University

More information

A Matlab/Simulink Simulation Approach for Early Field-Programmable Gate Array Hardware Evaluation

A Matlab/Simulink Simulation Approach for Early Field-Programmable Gate Array Hardware Evaluation A Matlab/Simulink Simulation Approach for Early Field-Programmable Gate Array Hardware Evaluation Celso Coslop Barbante, José Raimundo de Oliveira Computing Laboratory (COMLAB) Department of Computer Engineering

More information

Contents Part I Basic Concepts The Nature of Hardware and Software Data Flow Modeling and Transformation

Contents Part I Basic Concepts The Nature of Hardware and Software Data Flow Modeling and Transformation Contents Part I Basic Concepts 1 The Nature of Hardware and Software... 3 1.1 Introducing Hardware/Software Codesign... 3 1.1.1 Hardware... 3 1.1.2 Software... 5 1.1.3 Hardware and Software... 7 1.1.4

More information

A framework for automatic generation of audio processing applications on a dual-core system

A framework for automatic generation of audio processing applications on a dual-core system A framework for automatic generation of audio processing applications on a dual-core system Etienne Cornu, Tina Soltani and Julie Johnson etienne_cornu@amis.com, tina_soltani@amis.com, julie_johnson@amis.com

More information

SDL. Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund, Informatik 年 10 月 18 日. technische universität dortmund

SDL. Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund, Informatik 年 10 月 18 日. technische universität dortmund 12 SDL Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund, Informatik 12 2017 年 10 月 18 日 Springer, 2010 These slides use Microsoft clip arts. Microsoft copyright restrictions apply. Models

More information

Optimal Architectures for Massively Parallel Implementation of Hard. Real-time Beamformers

Optimal Architectures for Massively Parallel Implementation of Hard. Real-time Beamformers Optimal Architectures for Massively Parallel Implementation of Hard Real-time Beamformers Final Report Thomas Holme and Karen P. Watkins 8 May 1998 EE 382C Embedded Software Systems Prof. Brian Evans 1

More information

A Transaction Processing Technique in Real-Time Object- Oriented Databases

A Transaction Processing Technique in Real-Time Object- Oriented Databases 122 IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.1, January 2008 A Transaction Processing Technique in Real-Time Object- Oriented Databases Woochun Jun Dept. of Computer

More information

A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis

A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis Bruno da Silva, Jan Lemeire, An Braeken, and Abdellah Touhafi Vrije Universiteit Brussel (VUB), INDI and ETRO department, Brussels,

More information

The Designer's Guide to VHDL Second Edition

The Designer's Guide to VHDL Second Edition The Designer's Guide to VHDL Second Edition Peter J. Ashenden EDA CONSULTANT, ASHENDEN DESIGNS PTY. VISITING RESEARCH FELLOW, ADELAIDE UNIVERSITY Cl MORGAN KAUFMANN PUBLISHERS An Imprint of Elsevier SAN

More information

Decoupled Software Pipelining in LLVM

Decoupled Software Pipelining in LLVM Decoupled Software Pipelining in LLVM 15-745 Final Project Fuyao Zhao, Mark Hahnenberg fuyaoz@cs.cmu.edu, mhahnenb@andrew.cmu.edu 1 Introduction 1.1 Problem Decoupled software pipelining [5] presents an

More information

CS 740, Fall 2000 Homework Assignment 1

CS 740, Fall 2000 Homework Assignment 1 CS 740, Fall 2000 Homework Assignment 1 Assigned: Wednesday, September 13 Due: Friday, September 22, 10:30AM The purpose of this assignment is to develop techniques for measuring code performance, to practice

More information

Petri Nets. Petri Nets. Petri Net Example. Systems are specified as a directed bipartite graph. The two kinds of nodes in the graph:

Petri Nets. Petri Nets. Petri Net Example. Systems are specified as a directed bipartite graph. The two kinds of nodes in the graph: System Design&Methodologies Fö - 1 System Design&Methodologies Fö - 2 Petri Nets 1. Basic Petri Net Model 2. Properties and Analysis of Petri Nets 3. Extended Petri Net Models Petri Nets Systems are specified

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

High-level Variable Selection for Partial-Scan Implementation

High-level Variable Selection for Partial-Scan Implementation High-level Variable Selection for Partial-Scan Implementation FrankF.Hsu JanakH.Patel Center for Reliable & High-Performance Computing University of Illinois, Urbana, IL Abstract In this paper, we propose

More information

LINDA. The eval operation resembles out, except that it creates an active tuple. For example, if fcn is a function, then

LINDA. The eval operation resembles out, except that it creates an active tuple. For example, if fcn is a function, then LINDA Linda is different, which is why we've put it into a separate chapter. Linda is not a programming language, but a way of extending ( in principle ) any language to include parallelism IMP13, IMP14.

More information

ESE532: System-on-a-Chip Architecture. Today. Programmable SoC. Message. Process. Reminder

ESE532: System-on-a-Chip Architecture. Today. Programmable SoC. Message. Process. Reminder ESE532: System-on-a-Chip Architecture Day 5: September 18, 2017 Dataflow Process Model Today Dataflow Process Model Motivation Issues Abstraction Basic Approach Dataflow variants Motivations/demands for

More information

Embedded Systems CS - ES

Embedded Systems CS - ES Embedded Systems - 1 - Synchronous dataflow REVIEW Multiple tokens consumed and produced per firing Synchronous dataflow model takes advantage of this Each edge labeled with number of tokens consumed/produced

More information

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Introduction All processors offer some form of instructions to add, subtract, and manipulate data.

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

Hierarchical FSMs with Multiple CMs

Hierarchical FSMs with Multiple CMs Hierarchical FSMs with Multiple CMs Manaloor Govindarajan Balasubramanian Manikantan Bharathwaj Muthuswamy (aka Bharath) Reference: Hierarchical FSMs with Multiple Concurrency Models. Alain Girault, Bilung

More information

Network-Adaptive Video Coding and Transmission

Network-Adaptive Video Coding and Transmission Header for SPIE use Network-Adaptive Video Coding and Transmission Kay Sripanidkulchai and Tsuhan Chen Department of Electrical and Computer Engineering, Carnegie Mellon University, Pittsburgh, PA 15213

More information

ESE532: System-on-a-Chip Architecture. Today. Process. Message FIFO. Thread. Dataflow Process Model Motivation Issues Abstraction Recommended Approach

ESE532: System-on-a-Chip Architecture. Today. Process. Message FIFO. Thread. Dataflow Process Model Motivation Issues Abstraction Recommended Approach ESE53: System-on-a-Chip Architecture Day 5: January 30, 07 Dataflow Process Model Today Dataflow Process Model Motivation Issues Abstraction Recommended Approach Message Parallelism can be natural Discipline

More information

Lecture 21: Reliable, High Performance Storage. CSC 469H1F Fall 2006 Angela Demke Brown

Lecture 21: Reliable, High Performance Storage. CSC 469H1F Fall 2006 Angela Demke Brown Lecture 21: Reliable, High Performance Storage CSC 469H1F Fall 2006 Angela Demke Brown 1 Review We ve looked at fault tolerance via server replication Continue operating with up to f failures Recovery

More information

MODELING OF BLOCK-BASED DSP SYSTEMS

MODELING OF BLOCK-BASED DSP SYSTEMS MODELING OF BLOCK-BASED DSP SYSTEMS Dong-Ik Ko and Shuvra S. Bhattacharyya Department of Electrical and Computer Engineering, and Institute for Advanced Computer Studies University of Maryland, College

More information

DIGITAL VS. ANALOG SIGNAL PROCESSING Digital signal processing (DSP) characterized by: OUTLINE APPLICATIONS OF DIGITAL SIGNAL PROCESSING

DIGITAL VS. ANALOG SIGNAL PROCESSING Digital signal processing (DSP) characterized by: OUTLINE APPLICATIONS OF DIGITAL SIGNAL PROCESSING 1 DSP applications DSP platforms The synthesis problem Models of computation OUTLINE 2 DIGITAL VS. ANALOG SIGNAL PROCESSING Digital signal processing (DSP) characterized by: Time-discrete representation

More information

Distributed Deadlock Detection for. Distributed Process Networks

Distributed Deadlock Detection for. Distributed Process Networks 0 Distributed Deadlock Detection for Distributed Process Networks Alex Olson Embedded Software Systems Abstract The distributed process network (DPN) model allows for greater scalability and performance

More information

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No # 09 Lecture No # 40 This is lecture forty of the course on

More information

Hardware Software Partitioning of Multifunction Systems

Hardware Software Partitioning of Multifunction Systems Hardware Software Partitioning of Multifunction Systems Abhijit Prasad Wangqi Qiu Rabi Mahapatra Department of Computer Science Texas A&M University College Station, TX 77843-3112 Email: {abhijitp,wangqiq,rabi}@cs.tamu.edu

More information

An Improved Data Flow Architecture for Logic

An Improved Data Flow Architecture for Logic VLSI Design 1994, Vol. 2, No. 3, pp. 259-265 Reprints available directly from the publisher Photocopying permitted by license only (C) 1994 Gordon and Breach Science Publishers S.A. Printed in the United

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

Applying Models of Computation to OpenCL Pipes for FPGA Computing. Nachiket Kapre + Hiren Patel

Applying Models of Computation to OpenCL Pipes for FPGA Computing. Nachiket Kapre + Hiren Patel Applying Models of Computation to OpenCL Pipes for FPGA Computing Nachiket Kapre + Hiren Patel nachiket@uwaterloo.ca Outline Models of Computation and Parallelism OpenCL code samples Synchronous Dataflow

More information

Compositionality in Synchronous Data Flow: Modular Code Generation from Hierarchical SDF Graphs

Compositionality in Synchronous Data Flow: Modular Code Generation from Hierarchical SDF Graphs Compositionality in Synchronous Data Flow: Modular Code Generation from Hierarchical SDF Graphs Stavros Tripakis Dai Bui Marc Geilen Bert Rodiers Edward A. Lee Electrical Engineering and Computer Sciences

More information

Short Term Courses (Including Project Work)

Short Term Courses (Including Project Work) Short Term Courses (Including Project Work) Courses: 1.) Microcontrollers and Embedded C Programming (8051, PIC & ARM, includes a project on Robotics) 2.) DSP (Code Composer Studio & MATLAB, includes Embedded

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

CS 31: Introduction to Computer Systems : Threads & Synchronization April 16-18, 2019

CS 31: Introduction to Computer Systems : Threads & Synchronization April 16-18, 2019 CS 31: Introduction to Computer Systems 22-23: Threads & Synchronization April 16-18, 2019 Making Programs Run Faster We all like how fast computers are In the old days (1980 s - 2005): Algorithm too slow?

More information

EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification

EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification PURPOSE: To use Formality and its formal techniques to prove or disprove the functional equivalence of two designs. Formality can be used

More information

Introduction to Parallel Performance Engineering

Introduction to Parallel Performance Engineering Introduction to Parallel Performance Engineering Markus Geimer, Brian Wylie Jülich Supercomputing Centre (with content used with permission from tutorials by Bernd Mohr/JSC and Luiz DeRose/Cray) Performance:

More information

Appointed BrOadcast (ABO): Reducing Routing Overhead in. IEEE Mobile Ad Hoc Networks

Appointed BrOadcast (ABO): Reducing Routing Overhead in. IEEE Mobile Ad Hoc Networks Appointed BrOadcast (ABO): Reducing Routing Overhead in IEEE 802.11 Mobile Ad Hoc Networks Chun-Yen Hsu and Shun-Te Wang Computer Network Lab., Department of Electronic Engineering National Taiwan University

More information

Lock vs. Lock-free Memory Project proposal

Lock vs. Lock-free Memory Project proposal Lock vs. Lock-free Memory Project proposal Fahad Alduraibi Aws Ahmad Eman Elrifaei Electrical and Computer Engineering Southern Illinois University 1. Introduction The CPU performance development history

More information

YOUNGMIN YI. B.S. in Computer Engineering, 2000 Seoul National University (SNU), Seoul, Korea

YOUNGMIN YI. B.S. in Computer Engineering, 2000 Seoul National University (SNU), Seoul, Korea YOUNGMIN YI Parallel Computing Lab Phone: +1 (925) 348-1095 573 Soda Hall Email: ymyi@eecs.berkeley.edu Electrical Engineering and Computer Science Web: http://eecs.berkeley.edu/~ymyi University of California,

More information

Interval Algorithms for Coin Flipping

Interval Algorithms for Coin Flipping IJCSNS International Journal of Computer Science and Network Security, VOL.10 No.2, February 2010 55 Interval Algorithms for Coin Flipping Sung-il Pae, Hongik University, Seoul, Korea Summary We discuss

More information

A Heterogeneous and Distributed Co-Simulation Environment

A Heterogeneous and Distributed Co-Simulation Environment XVII SIM - South Symposium on Microelectronics 1 A Heterogeneous and Distributed Co-Simulation Environment Alexandre Amory, Leandro Oliveira, Fernando Moraes {amory, laugusto, moraes}@inf.pucrs.br Abstract

More information

LabVIEW Based Embedded Design [First Report]

LabVIEW Based Embedded Design [First Report] LabVIEW Based Embedded Design [First Report] Sadia Malik Ram Rajagopal Department of Electrical and Computer Engineering University of Texas at Austin Austin, TX 78712 malik@ece.utexas.edu ram.rajagopal@ni.com

More information