2IN35 VLSI Programming Lab Work Communication Protocols: A Synchronous and an Asynchronous One

Size: px
Start display at page:

Download "2IN35 VLSI Programming Lab Work Communication Protocols: A Synchronous and an Asynchronous One"

Transcription

1 2IN35 VLSI Programming Lab Work Communication Protocols: A Synchronous and an Asynchronous One René Gabriëls, r.gabriels@student.tue.nl July 1,

2 Contents 1 Introduction 3 2 Problem Description 3 3 Synchronous solution Protocol Composition Verilog implementation Asynchronous solution Protocol Composition Verilog implementation A Verilog code listings 8 A.1 Synchronous protocol A.2 Asynchronous protocol

3 1 Introduction This document describes the problem of communication between two hardware components, and how to solve it using a communication protocol. Two solutions are presented: a synchronous method (i.e. using shared clocks) and using an asynchronous method (i.e. using a handshake protocol). 2 Problem Description Imagine a situation in which there are two hardware components: a producer P and a consumer C, connected together by a wire (see figure 1). P sends data to C over this wire. But how does C know when to look for a data item, and how does P know when C has received the data item and is ready for the next one? This problem will be tackled in the next two sections by a synchronous and an asynchronous approach. P data C Figure 1: Producer P and consumer C with shared communication wire data 3 Synchronous solution 3.1 Protocol The first solution is introducing a shared notion of time between the sender and receiver, known as a clock (hence the name synchronous ), plus a set of conventions to indicate when data items have to be sent and received. A clock can be any periodic signal, but a square wave with equal low and high periods is most common. For such a clock, a communication convention might be that one data item has to be send and received every clock cycle. The number of values exchanged per second then equals the frequency of the clock. This scheme works, except when the sender cannot send a data item every clock cycle, or the receiver cannot receive a data item every clock cycle. This can be solved by introducing signaling wires, where the sender and receiver can notify each other whether they are ready to communicate or not. When both are ready during the same clock cycle, communication can proceed according to the protocol outlined above. Each side in the communication can be either active or passive. An active side signals that it is ready, no matter what the state of the other side is, while a passive side only signals readyness whenever the other side has already signaled readyness. A communication channel always has a passive and an active component connected to it. This gives rise to 2 possible 3

4 clock ready P enabled data C Figure 2: Producer P and consumer C with communication wire data, signaling wires ready and enabled, and a shared clock. configurations: a pull configuration, where the consumer is active and the producer is passive, and a push configuration, where the producer is active and consumer is passive. A pull configuration is shown in figure 2. Whenever C is ready to accept new data in this configuration, it signals this by making the ready wire high. If C is ready, P can signal that it has data available by making the enabled wire high. Every clock cycle in which enabled is high, one data item is send over the wire. Such a system can be in four states: ready enabled meaning 0 0 P and C are both busy. 0 1 Forbidden! No data items may be send when ready is low. 1 0 C is ready to accept a value, P is busy. 1 1 C is ready to accept a value, P sends a value. Figure 3 shows an example of this scheme in action between a producer P and consumer C. Every clock cycle in which both ready and enabled are high, one data item is exchanged. So in this example, 4 data items are exchanged between P and C in total. clock ready enabled data item 1? item 2 item 3? item 4 Figure 3: Operation of a synchronous protocol with a shared clock, signaling wires ready and enabled and data wire data. 3.2 Composition The disadvantage of a pull or push configuration is that one side must always be passive (P in the pull configuratin above), while the other side must always be active (C in the pull configuration above). To prevent mismatching components, one could choose to adopt a convention that everything should be constructed in a pull or push configuration. However, it is more 4

5 attractive to choose the third option: make both sides active. So in every clock cycle when both sides are ready, a data item is exchanged. This can be implemented straightforwardly by using an AND-gate to combine the ready signals, and feed those back as enabled signals. Figure 4 shows a pipeline consisting of a producer, a combined producer/consumer and a consumer connected together using this scheme. clock ready ready ready ready P enabled & enabled C & P enabled & enabled C data data Figure 4: Sequential composition of three active synchronous components P, C&P and C, interconnected by passivators. 3.3 Verilog implementation A skeleton verilog implementation for the pipeline shown in figure 4 is listed in appendix A.1. It consists of 4 components: a producer prod, a producer and consumer prodcons, a consumer cons, a passivator passivator. These components are instantiated in the top-level module pipeline. The components cons and prodcons have an input port consisting of the wires in ready, in enabled and in data. Conversely, the component prod and prodcons have an output port consisting of the wires out ready, out enabled and out data. Additionaly, each component has a parameter to specify the data width of the data wires. In each component, a buffer is provided for every output wire to keep it stable (see figure 5. Implementing the protocol amounts to controlling these buffers in the behavioral section (the statements in The behavior is a state machine that alternates between computation and communication. clock in_ready in_enabled in_data buf logic buf buf out_ready out_enabled out_data Figure 5: Generic synchronous producer/consumer component. 5

6 4 Asynchronous solution 4.1 Protocol The other solution uses the signaling wires such that a global clock isn t needed, and hence an absence of a shared notion of time. This opens the door to components that work at different clock speeds internally, but can still communicate with each other. Components might even be asynchronous internally. Such a design is shown in figure 6. request P acknowledge data C Figure 6: Producer P and consumer C with communication wire data, and signaling wires request and acknowledge. The most common asynchronous protocols are a 2-phase or 4-phase handshake protocol. We will describe a 4-phase protocol, as illustrated in figure 7. The four phases of the protocol are: 1. Whenever C is ready to receive a value, it sends a request to P (by making the request wire high). 2. If C has send a request, the sender can send an acknowledge back to C (by making the acknowledge wire high) as soon as it has data available. 3. When C receives an acknowledge, it will read the data item, and signal that it is ready reading the data item by making the request wire low again. 4. Whenever the request wire becomes low, the sender will respond by making the acknowledge wire low as well, ending the 4 phase handshake. Note that after a cycle of this protocol, the system is in the same state as before. The four phases are (in order): request acknowledge meaning 0 0 P and C are both busy. 1 0 C has requested a data item, P is busy. 1 1 C has requested a data item, P has send and acknowledged it. 0 1 C has received a data item, P is waiting to for acknowledge low. Note that although the synchronous and asynchronous solution both use two signaling wires, they are not the same! The asynchronous protocol always needs to go through the four phases in order, and thereby exchange one data item. The synchronous protocol on the other hand does not have to do a complete cycle to exchange one data item: if both signaling wires are high during n consecutive clock cycles, n data items are exchanged. The clock signal is used to separate consecutive data items, which is impossible in an asynchronous system. 6

7 request acknowledge data? item 1? item 2? item 3? item 4? Figure 7: Operation of an asynchronous protocol with signaling wires request and acknowledge and data wire data. 4.2 Composition As was the case for the synchronous solution, this solution also has an active and a passive side: the consumer is active (because it controls the request wire), and the sender is passive (because it controls the acknowledge wire). This is again a pull configuration. Reversing the roles of the producer and consumer, would result in a push configuration. In both cases, an active side and a passive side have to be matched. In order to prevent mismatches, we could standardize on one of these two approaches. But again, another solution is more attractive: make all components active, and insert a simple two port passive component in between them, known as a passivator. This device may seem more complex than it actually is. Instead of an AND-gate (which worked for the synchronous solution), we need a symmetric Muller-C element. A Muller-C element can be implemented with a 3-input majority gate, with one feedback wire. In the case of an FPGA this gate can be mapped onto 1 LUT. A composition of three components in a pipeline using the asynchronous protocol to communicate is shown in figure 8. Note the similarity to the synchronous solution. The differences are the absense of a global clock signal (although there might be one) and the Muller-C element instead of the AND-gate to connect the signaling wires. request request request request P acknowledge C acknowledge C & P acknowledge C acknowledge C data data Figure 8: An active producer P and consumer C with a passivator in between. 4.3 Verilog implementation The verilog implementation of the asynchronous protocol for the pipeline of figure 8 is very similar to implementation of the synchronous pipeline. Only the names of the registers and wires, and the guards of the conditionals have changed. See appendix A.2 for a complete listing. Note that this implementation still uses a global clock, but in principle each component can have its own clock. This is what is called a globally asynchronous, locally synchronous (GALS) design. 7

8 A Verilog code listings A.1 Synchronous protocol 1 module prod #(parameter DWIDTH = 8) 3 input r e s e t, 4 output o u t r e a d y, 5 input o u t e n a b l e d, 6 output [ 0 : DWIDTH 1] o u t d a t a ) ; 7 8 // R e g i s t e r f o r output r e a d y s i g n a l 9 reg o u t r e a d y b u f ; 10 a s s i g n o u t r e a d y = o u t r e a d y b u f ; // R e g i s t e r f o r output data 13 reg [ 0 : DWIDTH 1] o u t d a t a b u f ; 14 a s s i g n o u t d a t a = o u t d a t a b u f ; posedge c l o c k ) begin 17 // C l e a r a l l r e g i s t e r s on r e s e t 18 i f ( r e s e t ) begin 19 o u t r e a d y b u f <= 0 ; 20 o u t d a t a b u f <= 0 ; 21 end 22 e l s e begin 23 // Stop p r o v i d i n g data i f output r e q u e s t was acknowledged 24 i f ( o u t e n a b l e d ) begin 25 o u t r e a d y b u f <= 0 ; 26 end 27 // Compute i f no output r e q u e s t i s open 28 i f (! o u t r e a d y ) begin 29 i f output r e a d y n e x t c y c l e begin 30 o u t r e a d y b u f <= 1 ; 31 o u t d a t a b u f <= output ; 32 end 33 compute ; 34 end 35 end 36 end endmodule 8

9 1 module c o n s #(parameter DWIDTH = 8) 3 input r e s e t, 4 output i n r e a d y, 5 input i n e n a b l e d, 6 input [ 0 : DWIDTH 1] i n d a t a ) ; 7 8 // R e g i s t e r f o r i n p u t r e a d y s i g n a l 9 reg i n r e a d y b u f ; 10 a s s i g n i n r e a d y = i n r e a d y b u f ; // B u f f e r to s t o r e incoming v a l u e s 13 reg [ 0 : DWIDTH 1] b u f f e r ; posedge c l o c k ) begin 16 // C l e a r a l l r e g i s t e r s on r e s e t 17 i f ( r e s e t ) begin 18 i n r e a d y b u f <= 0 ; 19 b u f f e r <= 0 ; 20 end 21 e l s e begin 22 // Take data i f i n p u t r e q u e s t was acknowledged 23 i f ( i n e n a b l e d ) begin 24 b u f f e r <= i n d a t a ; 25 i n r e a d y b u f <= 0 ; 26 end 27 // Compute i f no i n p u t r e q u e s t i s open 28 i f (! i n r e a d y ) begin 29 i f i n p u t r e q u i r e d n e x t c y c l e begin 30 i n r e a d y b u f <= 1 ; 31 end 32 compute ; 33 end 34 end 35 end endmodule 9

10 1 module prodcons #(parameter DWIDTH = 8) 3 input r e s e t, 4 output i n r e a d y, 5 input i n e n a b l e d, 6 input [ 0 : DWIDTH 1] i n d a t a, 7 output o u t r e a d y, 8 input o u t e n a b l e d, 9 output [ 0 : DWIDTH 1] o u t d a t a ) ; // R e g i s t e r f o r i n p u t r e a d y s i g n a l 12 reg i n r e a d y b u f ; 13 a s s i g n i n r e a d y = i n r e a d y b u f ; // R e g i s t e r f o r output r e a d y s i g n a l 16 reg o u t r e a d y b u f ; 17 a s s i g n o u t r e a d y = o u t r e a d y b u f ; // R e g i s t e r f o r output data 20 reg [ 0 : DWIDTH 1] o u t d a t a b u f ; 21 a s s i g n o u t d a t a = o u t d a t a b u f ; // B u f f e r to s t o r e incoming v a l u e s 24 reg [ 0 : DWIDTH 1] b u f f e r ; posedge c l o c k ) begin 27 // C l e a r a l l r e g i s t e r s on r e s e t 28 i f ( r e s e t ) begin 29 i n r e a d y b u f <= 0 ; 30 o u t r e a d y b u f <= 0 ; 31 o u t d a t a b u f <= 0 ; 32 b u f f e r <= 0 ; 33 end 34 e l s e begin 35 // Take data i f i n p u t r e q u e s t was acknowledged 36 i f ( i n e n a b l e d ) begin 37 b u f f e r <= i n d a t a ; 38 i n r e a d y b u f <= 0 ; 39 end 40 // Stop p r o v i d i n g data i f output r e q u e s t was acknowledged 41 i f ( o u t e n a b l e d ) begin 42 o u t r e a d y b u f <= 0 ; 43 end 44 // Compute i f no r e q u e s t s a r e open 45 i f (! i n r e a d y &&! o u t r e a d y ) begin 46 i f output r e a d y n e x t c y c l e begin 47 o u t r e a d y b u f <= 1 ; 48 o u t d a t a b u f <= output ; 49 end 50 i f i n p u t r e q u i r e d n e x t c y c l e begin 51 i n r e a d y b u f <= 1 ; 52 end 53 compute ; 54 end 55 end 56 end 57 endmodule 10

11 1 module p a s s i v a t o r #(parameter DWIDTH = 8) 2 ( input i n r e a d y, 3 output i n e n a b l e d, 4 input [ 0 : DWIDTH 1] i n d a t a, 5 input o u t r e a d y, 6 output o u t e n a b l e d, 7 output [ 0 : DWIDTH 1] o u t d a t a ) ; 8 9 // P a s s i v a t o r b e h a v i o u r (AND gate, 1 LUT) 10 a s s i g n i n e n a b l e d = i n r e a d y & o u t r e a d y ; 11 a s s i g n o u t e n a b l e d = i n e n a b l e d ; // Data p a s s t h r o u g h 14 a s s i g n o u t d a t a = i n d a t a ; endmodule 1 module p i p e l i n e #(parameter DWIDTH = 8) 3 input r e s e t ) ; 4 5 // I n t e r c o n n e c t s 6 wire rdy1, rdy2, rdy3, rdy4 ; 7 wire ena1, ena2, ena3, ena4 ; 8 wire [ 0 : DWIDTH 1] data1, data2, data3, data4 ; 9 10 // I n s t a n t i a t e the p i p e l i n e 11 prod #(DWIDTH) s t a g e 1 ( c l o c k, r e s e t, rdy1, ena1, data1 ) ; 12 p a s s i v a t o r #(DWIDTH) p a s s 1 ( rdy1, ena1, data1, rdy2, ena2, data2 ) ; 13 prodcons #(DWIDTH) s t a g e 2 ( c l o c k, r e s e t, rdy2, ena2, data2, rdy3, ena3, data3 ) ; 14 p a s s i v a t o r #(DWIDTH) p a s s 2 ( rdy3, ena3, data3, rdy4, ena4, data4 ) ; 15 cons #(DWIDTH) s t a g e 3 ( c l o c k, r e s e t, rdy4, ena4, data4 ) ; endmodule 11

12 A.2 Asynchronous protocol 1 module prod #(parameter DWIDTH = 8) 3 input r e s e t, 4 output o u t r e q u e s t, 5 input out acknowledge, 6 output [ 0 : DWIDTH 1] o u t d a t a ) ; 7 8 // R e g i s t e r f o r output r e q u e s t s i g n a l 9 reg o u t r e q u e s t b u f ; 10 a s s i g n o u t r e q u e s t = o u t r e q u e s t b u f ; // R e g i s t e r f o r output data 13 reg [ 0 : DWIDTH 1] o u t d a t a b u f ; 14 a s s i g n o u t d a t a = o u t d a t a b u f ; posedge c l o c k ) begin 17 // C l e a r a l l r e g i s t e r s on r e s e t 18 i f ( r e s e t ) begin 19 o u t r e q u e s t b u f <= 0 ; 20 o u t d a t a b u f <= 0 ; 21 end 22 e l s e begin 23 // Stop p r o v i d i n g data i f output r e q u e s t was acknowledged 24 i f ( o u t r e q u e s t && o u t a c k n o w l e d g e ) begin 25 o u t r e q u e s t b u f <= 0 ; 26 end 27 // Compute i f no r e q u e s t s a r e open 28 i f (! o u t r e q u e s t &&! o u t a c k n o w l e d g e ) begin 29 i f output r e a d y n e x t c y c l e begin 30 o u t r e q u e s t b u f <= 1 ; 31 o u t d a t a b u f <= output ; 32 end 33 compute ; 34 end 35 end 36 end endmodule 12

13 1 module c o n s #(parameter DWIDTH = 8) 3 input r e s e t, 4 output i n r e q u e s t, 5 input i n a c k n o w l e d g e, 6 input [ 0 : DWIDTH 1] i n d a t a ) ; 7 8 // R e g i s t e r f o r i n p u t r e q u e s t s i g n a l 9 reg i n r e q u e s t b u f ; 10 a s s i g n i n r e q u e s t = i n r e q u e s t b u f ; // B u f f e r to s t o r e incoming v a l u e s 13 reg [ 0 : DWIDTH 1] b u f f e r ; posedge c l o c k ) begin 16 // C l e a r a l l r e g i s t e r s on r e s e t 17 i f ( r e s e t ) begin 18 i n r e q u e s t b u f <= 0 ; 19 b u f f e r <= 0 ; 20 end 21 e l s e begin 22 // Take data i f i n p u t r e q u e s t was acknowledged 23 i f ( i n r e q u e s t && i n a c k n o w l e d g e ) begin 24 b u f f e r <= i n d a t a ; 25 i n r e q u e s t b u f <= 0 ; 26 end 27 // Compute i f no r e q u e s t s a r e open 28 i f (! i n r e q u e s t &&! i n a c k n o w l e d g e ) begin 29 i f i n p u t r e q u i r e d n e x t c y c l e begin 30 i n r e q u e s t b u f <= 1 ; 31 end 32 compute ; 33 end 34 end 35 end endmodule 13

14 1 module prodcons #(parameter DWIDTH = 8) 3 input r e s e t, 4 output i n r e q u e s t, 5 input i n a c k n o w l e d g e, 6 input [ 0 : DWIDTH 1] i n d a t a, 7 output o u t r e q u e s t, 8 input out acknowledge, 9 output [ 0 : DWIDTH 1] o u t d a t a ) ; // R e g i s t e r f o r i n p u t r e q u e s t s i g n a l 12 reg i n r e q u e s t b u f ; 13 a s s i g n i n r e q u e s t = i n r e q u e s t b u f ; // R e g i s t e r f o r output r e q u e s t s i g n a l 16 reg o u t r e q u e s t b u f ; 17 a s s i g n o u t r e q u e s t = o u t r e q u e s t b u f ; // R e g i s t e r f o r output data 20 reg [ 0 : DWIDTH 1] o u t d a t a b u f ; 21 a s s i g n o u t d a t a = o u t d a t a b u f ; // B u f f e r to s t o r e incoming v a l u e s 24 reg [ 0 : DWIDTH 1] b u f f e r ; posedge c l o c k ) begin 27 // C l e a r a l l r e g i s t e r s on r e s e t 28 i f ( r e s e t ) begin 29 i n r e q u e s t b u f <= 0 ; 30 o u t r e q u e s t b u f <= 0 ; 31 o u t d a t a b u f <= 0 ; 32 b u f f e r <= 0 ; 33 end 34 e l s e begin 35 // Take data i f i n p u t r e q u e s t was acknowledged 36 i f ( i n r e q u e s t && i n a c k n o w l e d g e ) begin 37 b u f f e r <= i n d a t a ; 38 i n r e q u e s t b u f <= 0 ; 39 end 40 // Stop p r o v i d i n g data i f output r e q u e s t was acknowledged 41 i f ( o u t r e q u e s t && o u t a c k n o w l e d g e ) begin 42 o u t r e q u e s t b u f <= 0 ; 43 end 44 // Compute i f no r e q u e s t s a r e open 45 i f (! i n r e q u e s t &&! i n a c k n o w l e d g e &&! o u t r e q u e s t &&! o u t a c k n o w l e d g e ) begin 46 i f output r e a d y n e x t c y c l e begin 47 o u t r e q u e s t b u f <= 1 ; 48 o u t d a t a b u f <= output ; 49 end 50 i f i n p u t r e q u i r e d n e x t c y c l e begin 51 i n r e q u e s t b u f <= 1 ; 52 end 53 compute ; 54 end 55 end 56 end 57 endmodule 14

15 1 module p a s s i v a t o r #(parameter DWIDTH = 8) 2 ( input i n r e q, 3 output i n a c k, 4 input [ 0 : DWIDTH 1] i n d a t a, 5 input o u t r e q, 6 output out ack, 7 output [ 0 : DWIDTH 1] o u t d a t a ) ; 8 9 // P a s s i v a t o r b e h a v i o u r ( m a j o r i t y gate, 1 LUT) 10 a s s i g n i n a c k = ( i n r e q & o u t r e q ) ( i n r e q & i n a c k ) ( o u t r e q & i n a c k ) ; 11 a s s i g n o u t a c k = i n a c k ; // Data p a s s t h r o u g h 14 a s s i g n o u t d a t a = i n d a t a ; endmodule 1 module p i p e l i n e #(parameter DWIDTH = 8) 3 input r e s e t ) ; 4 5 // I n t e r c o n n e c t s 6 wire req1, req2, req3, req4 ; 7 wire ack1, ack2, ack3, ack4 ; 8 wire [ 0 : DWIDTH 1] data1, data2, data3, data4 ; 9 10 // I n s t a n t i a t e the p i p e l i n e 11 prod #(DWIDTH) s t a g e 1 ( c l o c k, r e s e t, req1, ack1, data1 ) ; 12 p a s s i v a t o r #(DWIDTH) p a s s 1 ( req1, ack1, data1, req2, ack2, data2 ) ; 13 prodcons #(DWIDTH) s t a g e 2 ( c l o c k, r e s e t, req2, ack2, data2, req3, ack3, data3 ) ; 14 p a s s i v a t o r #(DWIDTH) p a s s 2 ( req3, ack3, data3, req4, ack4, data4 ) ; 15 cons #(DWIDTH) s t a g e 3 ( c l o c k, r e s e t, req4, ack4, data4 ) ; endmodule 15

Models for representing sequential circuits

Models for representing sequential circuits Sequential Circuits Models for representing sequential circuits Finite-state machines (Moore and Mealy) Representation of memory (states) Changes in state (transitions) Design procedure State diagrams

More information

EECS Components and Design Techniques for Digital Systems. FSMs 9/11/2007

EECS Components and Design Techniques for Digital Systems. FSMs 9/11/2007 EECS 150 - Components and Design Techniques for Digital Systems FSMs 9/11/2007 Sarah Bird Electrical Engineering and Computer Sciences University of California, Berkeley Slides borrowed from David Culler

More information

Example: vending machine

Example: vending machine Example: vending machine Release item after 15 cents are deposited Single coin slot for dimes, nickels o change Reset Coin Sensor Vending Machine FSM Open Release Mechanism Clock Spring 2005 CSE370 - guest

More information

FSM Examples. Young Won Lim 11/6/15

FSM Examples. Young Won Lim 11/6/15 /6/5 Copyright (c) 2 25 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version.2 or any later version published

More information

Appendix B. Review of Digital Logic. Baback Izadi Division of Engineering Programs

Appendix B. Review of Digital Logic. Baback Izadi Division of Engineering Programs Appendix B Review of Digital Logic Baback Izadi Division of Engineering Programs bai@engr.newpaltz.edu Elect. & Comp. Eng. 2 DeMorgan Symbols NAND (A.B) = A +B NOR (A+B) = A.B AND A.B = A.B = (A +B ) OR

More information

Laboratory Exercise #8 Introduction to Sequential Logic

Laboratory Exercise #8 Introduction to Sequential Logic Laboratory Exercise #8 Introduction to Sequential Logic ECEN 248: Introduction to Digital Design Department of Electrical and Computer Engineering Texas A&M University 2 Laboratory Exercise #8 1 Introduction

More information

GMU, ECE 680 Physical VLSI Design 1

GMU, ECE 680 Physical VLSI Design 1 ECE680: Physical VLSI Design Chapter VII Timing Issues in Digital Circuits (chapter 10 in textbook) GMU, ECE 680 Physical VLSI Design 1 Synchronous Timing (Fig. 10 1) CLK In R Combinational 1 R Logic 2

More information

Timing Issues. Digital Integrated Circuits A Design Perspective. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolić. January 2003

Timing Issues. Digital Integrated Circuits A Design Perspective. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolić. January 2003 Digital Integrated Circuits A Design Perspective Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolić Timing Issues January 2003 1 Synchronous Timing CLK In R Combinational 1 R Logic 2 C in C out Out 2

More information

Using Global Clock Networks

Using Global Clock Networks Using Global Clock Networks Introduction Virtex-II devices support very high frequency designs and thus require low-skew advanced clock distribution. With device density up to 0 million system gates, numerous

More information

Ch 7. Finite State Machines. VII - Finite State Machines Contemporary Logic Design 1

Ch 7. Finite State Machines. VII - Finite State Machines Contemporary Logic Design 1 Ch 7. Finite State Machines VII - Finite State Machines Contemporary Logic esign 1 Finite State Machines Sequential circuits primitive sequential elements combinational logic Models for representing sequential

More information

Laboratory Exercise #11 A Simple Digital Combination Lock

Laboratory Exercise #11 A Simple Digital Combination Lock Laboratory Exercise #11 A Simple Digital Combination Lock ECEN 248: Introduction to Digital Design Department of Electrical and Computer Engineering Texas A&M University 2 Laboratory Exercise #11 1 Introduction

More information

CSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Instructor: Mohsen Imani. Slides from Tajana Simunic Rosing

CSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Instructor: Mohsen Imani. Slides from Tajana Simunic Rosing CSE140L: Components and Design Techniques for Digital Systems Lab FSMs Instructor: Mohsen Imani Slides from Tajana Simunic Rosing Source: Vahid, Katz 1 FSM design example Moore vs. Mealy Remove one 1 from

More information

Chapter 6. Synchronous Sequential Circuits

Chapter 6. Synchronous Sequential Circuits Chapter 6 Synchronous Sequential Circuits In a combinational circuit, the values of the outputs are determined solely by the present values of its inputs. In a sequential circuit, the values of the outputs

More information

Review: Designing with FSM. EECS Components and Design Techniques for Digital Systems. Lec09 Counters Outline.

Review: Designing with FSM. EECS Components and Design Techniques for Digital Systems. Lec09 Counters Outline. Review: Designing with FSM EECS 150 - Components and Design Techniques for Digital Systems Lec09 Counters 9-28-04 David Culler Electrical Engineering and Computer Sciences University of California, Berkeley

More information

EE241 - Spring 2006 Advanced Digital Integrated Circuits

EE241 - Spring 2006 Advanced Digital Integrated Circuits EE241 - Spring 2006 Advanced Digital Integrated Circuits Lecture 20: Asynchronous & Synchronization Self-timed and Asynchronous Design Functions of clock in synchronous design 1) Acts as completion signal

More information

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering Final Examination ECE 241F - Digital Systems Examiners: S. Brown,

More information

High Performance Computing

High Performance Computing Master Degree Program in Computer Science and Networking, 2014-15 High Performance Computing 2 nd appello February 11, 2015 Write your name, surname, student identification number (numero di matricola),

More information

Design of Datapath Controllers

Design of Datapath Controllers Design of Datapath Controllers Speaker: 俞子豪 Adviser: Prof. An-Yeu Wu ACCESS IC LAB Outline vsequential Circuit Model vfinite State Machines vuseful Modeling Techniques P. 2 Model of Sequential Circuits

More information

CSE 320: Spartan3 I/O Peripheral Testing

CSE 320: Spartan3 I/O Peripheral Testing CSE 320: Spartan3 I/O Peripheral Testing Ujjwal Gupta, Kyle Gilsdorf Arizona State University Version 1.1 October 2, 2012 Contents 1 Introduction 2 2 Test code description and procedure 2 2.1 Modes...............................

More information

EXPERIMENT Traffic Light Controller

EXPERIMENT Traffic Light Controller 11.1 Objectives EXPERIMENT 11 11. Traffic Light Controller Practice on the design of clocked sequential circuits. Applications of sequential circuits. 11.2 Overview In this lab you are going to develop

More information

Review Problem 1. should be on. door state, false if light should be on when a door is open. v Describe when the dome/interior light of the car

Review Problem 1. should be on. door state, false if light should be on when a door is open. v Describe when the dome/interior light of the car Review Problem 1 v Describe when the dome/interior light of the car should be on. v DriverDoorOpen = true if lefthand door open v PassDoorOpen = true if righthand door open v LightSwitch = true if light

More information

Ch 9. Sequential Logic Technologies. IX - Sequential Logic Technology Contemporary Logic Design 1

Ch 9. Sequential Logic Technologies. IX - Sequential Logic Technology Contemporary Logic Design 1 Ch 9. Sequential Logic Technologies Technology Contemporary Logic Design Overview Basic Sequential Logic Components FSM Design with Counters FSM Design with Programmable Logic FSM Design with More Sophisticated

More information

June 8 th Riga, Latvia

June 8 th Riga, Latvia Laurent Fesquet Taha.Beyrouthy@imag.fr Laurent.Fesquet@imag.fr June 8 th 2010- Riga, Latvia Outline Asynchronous logic Non uniform sampling Asynchronous convolution product Asynchronous FIR filter Conclusion

More information

ECE/Comp Sci 352 Digital Systems Fundamentals. Charles R. Kime Section 2 Fall Logic and Computer Design Fundamentals

ECE/Comp Sci 352 Digital Systems Fundamentals. Charles R. Kime Section 2 Fall Logic and Computer Design Fundamentals University of Wisconsin - Madison ECE/Comp Sci 352 Digital Systems Fundamentals Charles R. Kime Section 2 Fall 2001 Lecture 5 Registers & Counters Part 2 Charles Kime Counters Counters are sequential circuits

More information

Chapter 7. Sequential Circuits Registers, Counters, RAM

Chapter 7. Sequential Circuits Registers, Counters, RAM Chapter 7. Sequential Circuits Registers, Counters, RAM Register - a group of binary storage elements suitable for holding binary info A group of FFs constitutes a register Commonly used as temporary storage

More information

Sequential Circuit Timing. Young Won Lim 11/6/15

Sequential Circuit Timing. Young Won Lim 11/6/15 Copyright (c) 2011 2015 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published

More information

Chapter 5 Synchronous Sequential Logic

Chapter 5 Synchronous Sequential Logic Chapter 5 Synchronous Sequential Logic Sequential Circuits Latches and Flip Flops Analysis of Clocked Sequential Circuits HDL Optimization Design Procedure Sequential Circuits Various definitions Combinational

More information

Distributed Algorithms Time, clocks and the ordering of events

Distributed Algorithms Time, clocks and the ordering of events Distributed Algorithms Time, clocks and the ordering of events Alberto Montresor University of Trento, Italy 2016/04/26 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International

More information

Present Next state Output state w = 0 w = 1 z A A B 0 B A C 0 C A C 1

Present Next state Output state w = 0 w = 1 z A A B 0 B A C 0 C A C 1 W Combinational circuit Flip-flops Combinational circuit Z cycle: t t t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t : : Figure 8.. The general form of a sequential circuit. Figure 8.2. Sequences of input and output

More information

CSC 322: Computer Organization Lab

CSC 322: Computer Organization Lab CSC 322: Computer Organization Lab Lecture 3: Logic Design Dr. Haidar M. Harmanani CSC 322: Computer Organization Lab Part I: Combinational Logic Dr. Haidar M. Harmanani Logical Design of Digital Systems

More information

Review: Designing with FSM. EECS Components and Design Techniques for Digital Systems. Lec 09 Counters Outline.

Review: Designing with FSM. EECS Components and Design Techniques for Digital Systems. Lec 09 Counters Outline. Review: esigning with FSM EECS 150 - Components and esign Techniques for igital Systems Lec 09 Counters 9-28-0 avid Culler Electrical Engineering and Computer Sciences University of California, Berkeley

More information

Issues on Timing and Clocking

Issues on Timing and Clocking ECE152B TC 1 Issues on Timing and Clocking X Combinational Logic Z... clock clock clock period ECE152B TC 2 Latch and Flip-Flop L CK CK 1 L1 1 L2 2 CK CK CK ECE152B TC 3 Clocking X Combinational Logic...

More information

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI 6 DEPARTMENT: EEE QUESTION BANK SUBJECT NAME: DIGITAL LOGIC CIRCUITS SUBJECT CODE: EE55 SEMESTER IV UNIT : Design of Synchronous Sequential Circuits PART

More information

Chapter 4 (Lect 4) Encoders Multiplexers Three-State Gates More Verilog

Chapter 4 (Lect 4) Encoders Multiplexers Three-State Gates More Verilog Chapter 4 (Lect 4) Encoders Multiplexers Three-State Gates More Verilog Encoder: an encoder is the inverse of a decoder, it has 2 n or fewer input lines and n output lines Recall: 2 4 line decoder Inputs

More information

Finite State Machines CS 64: Computer Organization and Design Logic Lecture #15 Fall 2018

Finite State Machines CS 64: Computer Organization and Design Logic Lecture #15 Fall 2018 Finite State Machines CS 64: Computer Organization and Design Logic Lecture #15 Fall 2018 Ziad Matni, Ph.D. Dept. of Computer Science, UCSB Administrative The Last 2 Weeks of CS 64: Date L # Topic Lab

More information

Working with combinational logic

Working with combinational logic Working with combinational logic Simplification two-level simplification exploiting don t cares algorithm for simplification Logic realization two-level logic and canonical forms realized with NNs and

More information

14:332:231 DIGITAL LOGIC DESIGN

14:332:231 DIGITAL LOGIC DESIGN 14:332:231 IGITL LOGI ESIGN Ivan Marsic, Rutgers University Electrical & omputer Engineering all 2013 Lecture #17: locked Synchronous -Machine nalysis locked Synchronous Sequential ircuits lso known as

More information

EECS 270 Midterm 2 Exam Answer Key Winter 2017

EECS 270 Midterm 2 Exam Answer Key Winter 2017 EES 270 Midterm 2 Exam nswer Key Winter 2017 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. NOTES: 1. This part of the exam

More information

EECS150 - Digital Design Lecture 23 - FSMs & Counters

EECS150 - Digital Design Lecture 23 - FSMs & Counters EECS150 - Digital Design Lecture 23 - FSMs & Counters April 8, 2010 John Wawrzynek Spring 2010 EECS150 - Lec22-counters Page 1 One-hot encoding of states. One FF per state. State Encoding Why one-hot encoding?

More information

EECS150 - Digital Design Lecture 11 - Shifters & Counters. Register Summary

EECS150 - Digital Design Lecture 11 - Shifters & Counters. Register Summary EECS50 - Digital Design Lecture - Shifters & Counters February 24, 2003 John Wawrzynek Spring 2005 EECS50 - Lec-counters Page Register Summary All registers (this semester) based on Flip-flops: q 3 q 2

More information

CPE100: Digital Logic Design I

CPE100: Digital Logic Design I Chapter 3 Professor Brendan Morris, SEB 3216, brendan.morris@unlv.edu http://www.ee.unlv.edu/~b1morris/cpe1/ CPE1: Digital Logic Design I Section 14: Dr. Morris Sequential Logic Design Chapter 3 Chapter

More information

Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanisms. CS 249 Project Fall 2005 Wing Wong

Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanisms. CS 249 Project Fall 2005 Wing Wong Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanisms CS 249 Project Fall 2005 Wing Wong Outline Introduction Asynchronous distributed systems, distributed computations,

More information

Problem 10. Minimization of Incompletely Specified Finite State Machines.

Problem 10. Minimization of Incompletely Specified Finite State Machines. a b c d e f g h Problem 10. Minimization of Incompletely Specified Finite State Machines. d/ f/0 c/1 h/0 d/0 h/0 c/0 a/0 / f/0 e/0 a/0 c/1 / b/1 a/1 Machine M Given is Machine M (a) Find the minimal machine

More information

ELCT201: DIGITAL LOGIC DESIGN

ELCT201: DIGITAL LOGIC DESIGN ELCT201: DIGITAL LOGIC DESIGN Dr. Eng. Haitham Omran, haitham.omran@guc.edu.eg Dr. Eng. Wassim Alexan, wassim.joseph@guc.edu.eg Lecture 6 Following the slides of Dr. Ahmed H. Madian محرم 1439 ه Winter

More information

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences EECS151/251A V. Stojanovic, J. Wawrzynek Fall 2015 10/13/15 Midterm Exam Name: ID

More information

Shared Memory vs Message Passing

Shared Memory vs Message Passing Shared Memory vs Message Passing Carole Delporte-Gallet Hugues Fauconnier Rachid Guerraoui Revised: 15 February 2004 Abstract This paper determines the computational strength of the shared memory abstraction

More information

Data Synchronization Issues in GALS SoCs

Data Synchronization Issues in GALS SoCs Data Synchronization Issues in GALS SoCs Rostislav (Reuven) Dobkin 1, Ran Ginosar 1 and Christos P. Sotiriou 1 VLSI Systems Research Center, Technion Israel Institute of Technology, Haifa 3000, Israel

More information

ELEVATOR CONTROL CIRCUIT. Project No: PRJ045 Presented by; Masila Jane Mwelu. Supervisor: Prof. Mwangi Examiner: Dr. Mang oli

ELEVATOR CONTROL CIRCUIT. Project No: PRJ045 Presented by; Masila Jane Mwelu. Supervisor: Prof. Mwangi Examiner: Dr. Mang oli ELEVATOR CONTROL CIRCUIT Project No: PRJ045 Presented by; Masila Jane Mwelu Supervisor: Prof. Mwangi Examiner: Dr. Mang oli Presentation Outline Project objectives Design approach Implementation Results

More information

Last lecture Counter design Finite state machine started vending machine example. Today Continue on the vending machine example Moore/Mealy machines

Last lecture Counter design Finite state machine started vending machine example. Today Continue on the vending machine example Moore/Mealy machines Lecture 2 Logistics HW6 due Wednesday Lab 7 this week (Tuesday exception) Midterm 2 Friday (covers material up to simple FSM (today)) Review on Thursday Yoky office hour on Friday moved to Thursday 2-:2pm

More information

Operating Systems. VII. Synchronization

Operating Systems. VII. Synchronization Operating Systems VII. Synchronization Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline Synchronization issues 2/22 Fall 2017 Institut

More information

Chapter 3. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 3 <1>

Chapter 3. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 3 <1> Chapter 3 Digital Design and Computer Architecture, 2 nd Edition David Money Harris and Sarah L. Harris Chapter 3 Chapter 3 :: Topics Introduction Latches and Flip-Flops Synchronous Logic Design Finite

More information

ECEN 468 Advanced Logic Design

ECEN 468 Advanced Logic Design ECEN 468 Advanced Logic Design Lecture 27: Verilog Delay Models Inertial Delay v Delay is caused by charging and discharging node capacitors in circuit B v Gate delay and wire delay v Pulse rejection o

More information

LOGIC CIRCUITS. Basic Experiment and Design of Electronics

LOGIC CIRCUITS. Basic Experiment and Design of Electronics Basic Experiment and Design of Electronics LOGIC CIRCUITS Ho Kyung Kim, Ph.D. hokyung@pusan.ac.kr School of Mechanical Engineering Pusan National University Outline Combinational logic circuits Output

More information

Sequential Circuits Sequential circuits combinational circuits state gate delay

Sequential Circuits Sequential circuits combinational circuits state gate delay Sequential Circuits Sequential circuits are those with memory, also called feedback. In this, they differ from combinational circuits, which have no memory. The stable output of a combinational circuit

More information

Pipelined Viterbi Decoder Using FPGA

Pipelined Viterbi Decoder Using FPGA Research Journal of Applied Sciences, Engineering and Technology 5(4): 1362-1372, 2013 ISSN: 2040-7459; e-issn: 2040-7467 Maxwell Scientific Organization, 2013 Submitted: July 05, 2012 Accepted: August

More information

Lab Course: distributed data analytics

Lab Course: distributed data analytics Lab Course: distributed data analytics 01. Threading and Parallelism Nghia Duong-Trung, Mohsan Jameel Information Systems and Machine Learning Lab (ISMLL) University of Hildesheim, Germany International

More information

CSE 123: Computer Networks

CSE 123: Computer Networks CSE 123: Computer Networks Total points: 40 Homework 1 - Solutions Out: 10/4, Due: 10/11 Solutions 1. Two-dimensional parity Given below is a series of 7 7-bit items of data, with an additional bit each

More information

Lecture 14: State Tables, Diagrams, Latches, and Flip Flop

Lecture 14: State Tables, Diagrams, Latches, and Flip Flop EE210: Switching Systems Lecture 14: State Tables, Diagrams, Latches, and Flip Flop Prof. YingLi Tian Nov. 6, 2017 Department of Electrical Engineering The City College of New York The City University

More information

A Formal Model of Clock Domain Crossing and Automated Verification of Time-Triggered Hardware

A Formal Model of Clock Domain Crossing and Automated Verification of Time-Triggered Hardware A Formal Model of Clock Domain Crossing and Automated Verification of Time-Triggered Hardware Julien Schmaltz Institute for Computing and Information Sciences Radboud University Nijmegen The Netherlands

More information

Agreement Protocols. CS60002: Distributed Systems. Pallab Dasgupta Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur

Agreement Protocols. CS60002: Distributed Systems. Pallab Dasgupta Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Agreement Protocols CS60002: Distributed Systems Pallab Dasgupta Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Classification of Faults Based on components that failed Program

More information

COE 202: Digital Logic Design Sequential Circuits Part 4. Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:

COE 202: Digital Logic Design Sequential Circuits Part 4. Dr. Ahmad Almulhem   ahmadsm AT kfupm Phone: Office: COE 202: Digital Logic Design Sequential Circuits Part 4 Dr. Ahmad Almulhem Email: ahmadsm AT kfupm Phone: 860-7554 Office: 22-324 Objectives Registers Counters Registers 0 1 n-1 A register is a group

More information

International Journal of Combined Research & Development (IJCRD) eissn: x;pissn: Volume: 7; Issue: 7; July -2018

International Journal of Combined Research & Development (IJCRD) eissn: x;pissn: Volume: 7; Issue: 7; July -2018 XOR Gate Design Using Reversible Logic in QCA and Verilog Code Yeshwanth GR BE Final Year Department of ECE, The Oxford College of Engineering Bommanahalli, Hosur Road, Bangalore -560068 yeshwath.g13@gmail.com

More information

Outline F eria AADL behavior 1/ 78

Outline F eria AADL behavior 1/ 78 Outline AADL behavior Annex Jean-Paul Bodeveix 2 Pierre Dissaux 3 Mamoun Filali 2 Pierre Gaufillet 1 François Vernadat 2 1 AIRBUS-FRANCE 2 FéRIA 3 ELLIDIS SAE AS2C Detroit Michigan April 2006 FéRIA AADL

More information

Experiment 9 Sequential Circuits

Experiment 9 Sequential Circuits Introduction to Counters Experiment 9 Sequential Circuits The aim of this experiment is to familiarize you, frst with the basic sequential circuit device called a fip fop, and then, with the design and

More information

Metastability. Introduction. Metastability. in Altera Devices

Metastability. Introduction. Metastability. in Altera Devices in Altera Devices May 1999, ver. 4 Application Note 42 Introduction The output of an edge-triggered flipflop has two valid states: high and low. To ensure reliable operation, designs must meet the flipflop

More information

S No. Questions Bloom s Taxonomy Level UNIT-I

S No. Questions Bloom s Taxonomy Level UNIT-I GROUP-A (SHORT ANSWER QUESTIONS) S No. Questions Bloom s UNIT-I 1 Define oxidation & Classify different types of oxidation Remember 1 2 Explain about Ion implantation Understand 1 3 Describe lithography

More information

Design for Testability

Design for Testability Design for Testability Outline Ad Hoc Design for Testability Techniques Method of test points Multiplexing and demultiplexing of test points Time sharing of I/O for normal working and testing modes Partitioning

More information

Chapter 3. Chapter 3 :: Topics. Introduction. Sequential Circuits

Chapter 3. Chapter 3 :: Topics. Introduction. Sequential Circuits Chapter 3 Chapter 3 :: Topics igital esign and Computer Architecture, 2 nd Edition avid Money Harris and Sarah L. Harris Introduction Latches and Flip Flops Synchronous Logic esign Finite State Machines

More information

Laboratory Exercise #10 An Introduction to High-Speed Addition

Laboratory Exercise #10 An Introduction to High-Speed Addition Laboratory Exercise #10 An Introduction to High-Speed Addition ECEN 248: Introduction to Digital Design Department of Electrical and Computer Engineering Texas A&M University 2 Laboratory Exercise #10

More information

Register Transfer Level

Register Transfer Level Register Transfer Level CSE3201 RTL A digital system is represented at the register transfer level by these three components 1. The set of registers in the system 2. The operation that are performed on

More information

Analysis of clocked sequential networks

Analysis of clocked sequential networks Analysis of clocked sequential networks keywords: Mealy, Moore Consider : a sequential parity checker an 8th bit is added to each group of 7 bits such that the total # of 1 bits is odd for odd parity if

More information

Design for Testability

Design for Testability Design for Testability Outline Ad Hoc Design for Testability Techniques Method of test points Multiplexing and demultiplexing of test points Time sharing of I/O for normal working and testing modes Partitioning

More information

Agreement. Today. l Coordination and agreement in group communication. l Consensus

Agreement. Today. l Coordination and agreement in group communication. l Consensus Agreement Today l Coordination and agreement in group communication l Consensus Events and process states " A distributed system a collection P of N singlethreaded processes w/o shared memory Each process

More information

Parity Checker Example. EECS150 - Digital Design Lecture 9 - Finite State Machines 1. Formal Design Process. Formal Design Process

Parity Checker Example. EECS150 - Digital Design Lecture 9 - Finite State Machines 1. Formal Design Process. Formal Design Process Parity Checker Example A string of bits has even parity if the number of 1 s in the string is even. Design a circuit that accepts a bit-serial stream of bits and outputs a 0 if the parity thus far is even

More information

SMV the Symbolic Model Verifier. Example: the alternating bit protocol. LTL Linear Time temporal Logic

SMV the Symbolic Model Verifier. Example: the alternating bit protocol. LTL Linear Time temporal Logic Model Checking (I) SMV the Symbolic Model Verifier Example: the alternating bit protocol LTL Linear Time temporal Logic CTL Fixed Points Correctness Slide 1 SMV - Symbolic Model Verifier SMV - Symbolic

More information

A subtle problem. An obvious problem. An obvious problem. An obvious problem. No!

A subtle problem. An obvious problem. An obvious problem. An obvious problem. No! A subtle problem An obvious problem when LC = t do S doesn t make sense for Lamport clocks! there is no guarantee that LC will ever be S is anyway executed after LC = t Fixes: if e is internal/send and

More information

Cuts. Cuts. Consistent cuts and consistent global states. Global states and cuts. A cut C is a subset of the global history of H

Cuts. Cuts. Consistent cuts and consistent global states. Global states and cuts. A cut C is a subset of the global history of H Cuts Cuts A cut C is a subset of the global history of H C = h c 1 1 hc 2 2...hc n n A cut C is a subset of the global history of H The frontier of C is the set of events e c 1 1,ec 2 2,...ec n n C = h

More information

Lecture 7: Logic design. Combinational logic circuits

Lecture 7: Logic design. Combinational logic circuits /24/28 Lecture 7: Logic design Binary digital circuits: Two voltage levels: and (ground and supply voltage) Built from transistors used as on/off switches Analog circuits not very suitable for generic

More information

King Fahd University of Petroleum and Minerals College of Computer Science and Engineering Computer Engineering Department

King Fahd University of Petroleum and Minerals College of Computer Science and Engineering Computer Engineering Department King Fahd University of Petroleum and Minerals College of Computer Science and Engineering Computer Engineering Department Page 1 of 13 COE 202: Digital Logic Design (3-0-3) Term 112 (Spring 2012) Final

More information

PERFORMANCE ANALYSIS OF SYNCHRONIZATION CIRCUITS

PERFORMANCE ANALYSIS OF SYNCHRONIZATION CIRCUITS PERFORMANCE ANALYSIS OF SYNCHRONIZATION CIRCUITS A thesis submitted to the University of Manchester for the degree of Master of Philosophy in the Faculty of Engineering and Physical Sciences 2010 By Zhen

More information

TECHNICAL REPORT YL DISSECTING ZAB

TECHNICAL REPORT YL DISSECTING ZAB TECHNICAL REPORT YL-2010-0007 DISSECTING ZAB Flavio Junqueira, Benjamin Reed, and Marco Serafini Yahoo! Labs 701 First Ave Sunnyvale, CA 94089 {fpj,breed,serafini@yahoo-inc.com} Bangalore Barcelona Haifa

More information

ENGG 1203 Tutorial _03 Laboratory 3 Build a ball counter. Lab 3. Lab 3 Gate Timing. Lab 3 Steps in designing a State Machine. Timing diagram of a DFF

ENGG 1203 Tutorial _03 Laboratory 3 Build a ball counter. Lab 3. Lab 3 Gate Timing. Lab 3 Steps in designing a State Machine. Timing diagram of a DFF ENGG 1203 Tutorial _03 Laboratory 3 Build a ball counter Timing diagram of a DFF Lab 3 Gate Timing difference timing for difference kind of gate, cost dependence (1) Setup Time = t2-t1 (2) Propagation

More information

And Inverter Graphs. and and nand. inverter or nor xor

And Inverter Graphs. and and nand. inverter or nor xor And Inverter Graphs and and nand inverter or nor xor And Inverter Graphs A B gate 1 u gate 4 X C w gate 3 v gate 2 gate 5 Y A u B X w Y C v And Inverter Graphs Can represent any Boolean function: v i+1

More information

Implementation of Clock Network Based on Clock Mesh

Implementation of Clock Network Based on Clock Mesh International Conference on Information Technology and Management Innovation (ICITMI 2015) Implementation of Clock Network Based on Clock Mesh He Xin 1, a *, Huang Xu 2,b and Li Yujing 3,c 1 Sichuan Institute

More information

A Random Walk from Async to Sync. Paul Cunningham & Steev Wilcox

A Random Walk from Async to Sync. Paul Cunningham & Steev Wilcox A Random Walk from Async to Sync Paul Cunningham & Steev Wilcox Thank You Ivan In the Beginning March 2002 Azuro Day 1 Some money in the bank from Angel Investors 2 employees Small Office rented from Cambridge

More information

University of Minnesota Department of Electrical and Computer Engineering

University of Minnesota Department of Electrical and Computer Engineering University of Minnesota Department of Electrical and Computer Engineering EE2301 Fall 2008 Introduction to Digital System Design L. L. Kinney Final Eam (Closed Book) Solutions Please enter your name, ID

More information

Formal Verification of Systems-on-Chip

Formal Verification of Systems-on-Chip Formal Verification of Systems-on-Chip Wolfgang Kunz Department of Electrical & Computer Engineering University of Kaiserslautern, Germany Slide 1 Industrial Experiences Formal verification of Systems-on-Chip

More information

Designing Sequential Logic Circuits

Designing Sequential Logic Circuits igital Integrated Circuits (83-313) Lecture 5: esigning Sequential Logic Circuits Semester B, 2016-17 Lecturer: r. Adam Teman TAs: Itamar Levi, Robert Giterman 26 April 2017 isclaimer: This course was

More information

FSM Optimization. Counter Logic Diagram Q1 Q2 Q3. Counter Implementation using RS FF 10/13/2015

FSM Optimization. Counter Logic Diagram Q1 Q2 Q3. Counter Implementation using RS FF 10/13/2015 /3/5 CS: Digital Design http://jatinga.iitg.ernet.in/~asahu/cs FSM Optimization A. Sahu Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati Outline Last Class: Comb. Cirt. Complexity (CCC)

More information

Digital Electronics Sequential Logic

Digital Electronics Sequential Logic /5/27 igital Electronics Sequential Logic r. I. J. Wassell Sequential Logic The logic circuits discussed previously are known as combinational, in that the output depends only on the condition of the latest

More information

Synchronous Sequential Circuit Design. Digital Computer Design

Synchronous Sequential Circuit Design. Digital Computer Design Synchronous Sequential Circuit Design Digital Computer Design Races and Instability Combinational logic has no cyclic paths and no races If inputs are applied to combinational logic, the outputs will always

More information

Our Problem. Model. Clock Synchronization. Global Predicate Detection and Event Ordering

Our Problem. Model. Clock Synchronization. Global Predicate Detection and Event Ordering Our Problem Global Predicate Detection and Event Ordering To compute predicates over the state of a distributed application Model Clock Synchronization Message passing No failures Two possible timing assumptions:

More information

Checking Behavioral Conformance of Artifacts

Checking Behavioral Conformance of Artifacts Checking Behavioral Conformance of Artifacts Dirk Fahland Massimiliano de Leoni Boudewijn F. van Dongen Wil M.P. van der Aalst, Eindhoven University of Technology, The Netherlands (d.fahland m.d.leoni

More information

EECS150 - Digital Design Lecture 23 - FFs revisited, FIFOs, ECCs, LSFRs. Cross-coupled NOR gates

EECS150 - Digital Design Lecture 23 - FFs revisited, FIFOs, ECCs, LSFRs. Cross-coupled NOR gates EECS150 - Digital Design Lecture 23 - FFs revisited, FIFOs, ECCs, LSFRs April 16, 2009 John Wawrzynek Spring 2009 EECS150 - Lec24-blocks Page 1 Cross-coupled NOR gates remember, If both R=0 & S=0, then

More information

Slides for Chapter 14: Time and Global States

Slides for Chapter 14: Time and Global States Slides for Chapter 14: Time and Global States From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, Addison-Wesley 2012 Overview of Chapter Introduction Clocks,

More information

Lecture 4 Event Systems

Lecture 4 Event Systems Lecture 4 Event Systems This lecture is based on work done with Mark Bickford. Marktoberdorf Summer School, 2003 Formal Methods One of the major research challenges faced by computer science is providing

More information

LOGIC CIRCUITS. Basic Experiment and Design of Electronics. Ho Kyung Kim, Ph.D.

LOGIC CIRCUITS. Basic Experiment and Design of Electronics. Ho Kyung Kim, Ph.D. Basic Experiment and Design of Electronics LOGIC CIRCUITS Ho Kyung Kim, Ph.D. hokyung@pusan.ac.kr School of Mechanical Engineering Pusan National University Digital IC packages TTL (transistor-transistor

More information

Synchronizers, Arbiters, GALS and Metastability

Synchronizers, Arbiters, GALS and Metastability Synchronizers, Arbiters, GALS and Metastability David Kinniment University of Newcastle, UK Based on contributions from: Alex Bystrov, Keith Heron, Nikolaos Minas, Gordon Russell, Alex Yakovlev, and Jun

More information

EE115C Winter 2017 Digital Electronic Circuits. Lecture 19: Timing Analysis

EE115C Winter 2017 Digital Electronic Circuits. Lecture 19: Timing Analysis EE115C Winter 2017 Digital Electronic Circuits Lecture 19: Timing Analysis Outline Timing parameters Clock nonidealities (skew and jitter) Impact of Clk skew on timing Impact of Clk jitter on timing Flip-flop-

More information

VLSI Physical Design Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

VLSI Physical Design Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur VLSI Physical Design Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 54 Design for Testability So, in the last lecture we talked

More information