Advanced Digital Design

Slides:



Advertisements
Similar presentations
Self-Timed Logic Timing complexity growing in digital design -Wiring delays can dominate timing analysis (increasing interdependence between logical and.
Advertisements

Reading1: An Introduction to Asynchronous Circuit Design Al Davis Steve Nowick University of Utah Columbia University.
ELEC 256 / Saif Zahir UBC / 2000 Timing Methodology Overview Set of rules for interconnecting components and clocks When followed, guarantee proper operation.
Lecture 11: Sequential Circuit Design. CMOS VLSI DesignCMOS VLSI Design 4th Ed. 11: Sequential Circuits2 Outline  Sequencing  Sequencing Element Design.
Penn ESE370 Fall DeHon 1 ESE370: Circuit-Level Modeling, Design, and Optimization for Digital Systems Day 24: November 4, 2011 Synchronous Circuits.
Advanced Digital Design The Synchronous Design Paradigm A. Steininger Vienna University of Technology.
Z. Feng MTU EE4800 CMOS Digital IC Design & Analysis EE4800 CMOS Digital IC Design & Analysis Lecture 11 Sequential Circuit Design Zhuo Feng.
Synchronous Digital Design Methodology and Guidelines
1 Clockless Logic Montek Singh Thu, Jan 13, 2004.
1 Clockless Logic Montek Singh Tue, Mar 23, 2004.
ELEC 6200, Fall 07, Oct 24 Jiang: Async. Processor 1 Asynchronous Processor Design for ELEC 6200 by Wei Jiang.
Embedded Systems Hardware:
Advanced Digital Design Asynchronous Design: DI Methods by A. Steininger and M. Delvai Vienna University of Technology.
11/10/2004EE 42 fall 2004 lecture 301 Lecture #30 Finite State Machines Last lecture: –CMOS fabrication –Clocked and latched circuits This lecture: –Finite.
1 Advanced Digital Design Asynchronous Design: Research Concept by A. Steininger and M. Delvai Vienna University of Technology.
Embedded Systems Hardware: Storage Elements; Finite State Machines; Sequential Logic.
Lecture 11 MOUSETRAP: Ultra-High-Speed Transition-Signaling Asynchronous Pipelines.
Fall 2007 L16: Memory Elements LECTURE 16: Clocks Sequential circuit design The basic memory element: a latch Flip Flops.
Lecture 10 Topics: Sequential circuits Basic concepts Clocks
CS3350B Computer Architecture Winter 2015 Lecture 5.2: State Circuits: Circuits that Remember Marc Moreno Maza [Adapted.
1 COMP541 State Machines Montek Singh Feb 8, 2012.
CS1Q Computer Systems Lecture 11 Simon Gay. Lecture 11CS1Q Computer Systems - Simon Gay2 The D FlipFlop A 1-bit register is called a D flipflop. When.
Sequential Logic Materials taken from: Digital Design and Computer Architecture by David and Sarah Harris & The Essentials of Computer Organization and.
Reading Assignment: Rabaey: Chapter 9
Digital System Design using VHDL
Lecture 5. Sequential Logic 1 Prof. Taeweon Suh Computer Science Education Korea University 2010 R&E Computer System Education & Research.
Advanced Digital Design Asynchronous Design: Principles by A. Steininger and M. Delvai Vienna University of Technology.
Advanced Digital Design
Lecture #17: Clocked Synchronous State-Machine Analysis
Digital Design - Sequential Logic Design
Lecture 4. Sequential Logic #1
Lecture 4. Sequential Logic #2
Other Approaches.
Chapter #6: Sequential Logic Design
Advanced Digital Design
Flip Flops Lecture 10 CAP
Recap: Lecture 1 What is asynchronous design? Why do we want to study it? What is pipelining? How can it be used to design really fast hardware?
Basic Delay in Gates Definitions
Advanced Digital Design
332:437 Lecture 12 Finite State Machine Design
Sequential Circuits: Latches
Inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #21 State Elements: Circuits that Remember Hello to James Muerle in the.
CPE/EE 422/522 Advanced Logic Design L02
COMP541 Sequential Circuits
Sequential Circuits: Latches
触发器 Flip-Flops 刘鹏 浙江大学信息与电子工程学院 March 27, 2018
Day 26: November 1, 2013 Synchronous Circuits
Advanced Digital Design
CSE 370 – Winter Sequential Logic - 1
332:578 Deep Submicron VLSI Design Lecture 14 Design for Clock Skew
Lecture 17 Logistics Last lecture Today HW5 due on Wednesday
Sequential Circuits: Latches
Day 21: October 29, 2010 Registers Dynamic Logic
Finite State Machines (FSMs)
Sequential Circuit Analysis & Design
De-synchronization: from synchronous to asynchronous
Clockless Logic: Asynchronous Pipelines
ECE 352 Digital System Fundamentals
Flip-Flops.
Advanced Digital Design
Lecture 19 Logistics Last lecture Today
Lecture 20 Logistics Last lecture Today HW6 due Wednesday
Lecture 17 Logistics Last lecture Today HW5 due on Wednesday
Lecture 22 Logistics Last lecture Today HW7 is due on Friday
SEQUENTIAL CIRCUITS __________________________________________________
Lecture 22 Logistics Last lecture Today HW7 is due on Friday
Lecture 4 Sequential units. Registers
Early output logic and Anti-Tokens
Instructor: Michael Greenbaum
Lecture 3: Timing & Sequential Circuits
Presentation transcript:

Advanced Digital Design Asynchronous Design: Principles by A. Steininger and M. Delvai Vienna University of Technology

© A. Steininger & M. Delvai / TU Vienna recall Previous Conclusion The purpose of a design style is to provide information for flow control. Boolean Logic alone cannot provide this information. Severe technological problems force us to question the current (synchronous) design practice. We shall focus on that. Alternatives must be evaluated very critically with respect to improvements concerning power, area, robustness, ease of composition, testability and performance. Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna recall What we actually need When can SNK use its input? When it is valid and consistent f(x) SRC SNK When can SRC apply the next input? When SNK has consumed the previous one Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna recall Ideal Design Method An ideal design method … minimizes power consumption miminizes circuit overhead naturally supports composability naturally aids testability yields robust circuits yields fast circuits. Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Outline The Handshake Principle Sutherland‘s Micropipeline Transition Signaling & Muller C-Element The Bounded Delay Approach Other Delay Models Huffmann Circuits Asynchronous State Machines Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna recall Our Options We must only use consistent input vectors How can we tell an input vector is consistent? (1) use TIME to mark consistent phases synchronous approach / global time base asynchronous/bounded delay (2) use CODING to add information asynchronous/delay insensitive Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Asynchronous Philosophy „The control flow requires agreement between source and sink. For this purpose they need to communicate“ Source indicates capture condition for sink. Sink indicates issue condition for source. „HANDSHAKE“ Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Handshake Principle REQ: „Data word valid, you can use it“ When can SNK use its input? When it is valid and consistent f(x) SRC SNK When can SRC apply the next input? When SNK has consumed the previous one ACK: „Data word consumed, send the next“ Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Micropipeline: Principle ACKn REQn-1 ACKn+1 C C REQn f(x) R1 R2 Tclk so bemessen, dass F(x) einschwingen können und sicher den Wert angenommen haben. capture „bundled data“ (handshake performed for „bundle“ of data) Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

A very Important Detail The handshake establishes a closed-loop control for the data flow between sender and receiver This makes operation more robust than in the synchronous (= open-loop) case The art of asynchronous design is to make many of these closed loops interoperate properly This is much more complicated than a synchronous design. Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Micropipe: Capturing capture data if predecessor has new data available (REQn-1) and successor is ready to accept new data (ACKn+1) produce  at capture (output) after  of REQ and  of ACK Muller C-Element REQn-1 ACKn+1 C Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Muller C-Element IF a = = b THEN y = a ELSE hold y a b C y reset a a C RS y y b b set Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Muller C-Element: Circuit [Martin] [Sutherland] [van Berkel] Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline „FIFO for transitions“ C RIN AOUT ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline initial state C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline request (rising edge) C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline request passes stage 1 C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline request passes stage 2 C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline request passes stage 3 => output C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline further request (falling edge) C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline new request passes stage 1 C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline new request passes stage 2 C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline new request blocked for stage 3 C C RIN AOUT Req 1 remains „stored“ C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline one more request … C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline … passes stage 1 only … C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline ... ands remains stored there C C RIN AOUT Req 3 stored here Req 2 stored here Req 1 stored here C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline acknowledge from output (rising edge) C C RIN AOUT Req 3 Req 2 Req 1 C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline ack passes stage 3 C C RIN AOUT C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline stage 2 is now free for… C C RIN AOUT Req 3 Req 2 C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline … request from stage 1 C C RIN AOUT Req 3 Req 2 C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline new ack (falling edge) … C C RIN AOUT Req 3 Req 2 C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline ... allows remaining request to move up to stage 3 C C RIN AOUT Req 3 C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Elastic Pipeline ready for new req or ack C C RIN AOUT Req 3 C ROUT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Micropipe: Implementation Capture/Pass Register ACK comb comb comb REQ Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Capture/Pass Register must react to both edges („two phase handshake“) has dedicated input for both, „capture“ and „pass“ has delayed output for both control inputs („capture done“, „pass done“ to make sure capture occurs before „capture done“ is output c pD cD p Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Transition Signaling Information conveyed by edges, not by state Advantage: edges also contain time information Drawback: need two rails per bit 1 1 1 A0 A1 Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna recall Terminology consistent DW: all bits belong to the same context valid signal: result of function applied to consistent DW Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Trans. Signaling - Example B=1 B0 B=0 B1 Y = A or B Y0 Y=1 Y1 Y=1 Lecture "Advanced Digital Design" A © A. Steininger & M. Delvai / TU Vienna

Closed loop vs. open loop Previous example assumed a certain procedure: one input changes (once!) other input changes (once!) then output changes (once!) Is this realistic? NO, if inputs are not correlated with output („open loop operation“) YES, in case of synchronization by means of handshake, i.e. in Micropipeline („closed loop operation“) Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna 2 Phase vs. 4 Phase 2 phase protocol: 4 phase protocol REQ REQ ACK ACK REQ REQ ACK ACK Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Micropipe: Implementation comb comb comb DELAY ELEMENT Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna The need for a delay REQ: „Data word valid, you can use it“ event = issue of data word ! race condition ! f(x) SRC SNK ACK: „Data word consumed, send the next“ event = latching of data word safe (?) Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Example: Centronix Data „REQ“ „ACK“ [Centronix Spec for ETRAX100LX, „Fastbyte Mode“] Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Bounded Delay approach TRGSNK (REQ) tSRC tSNK Timer SRC Timer SNK TRGSRC (ACK) coordinate SNK & SRC by a handshake This works (quite) well for „ACK“, but still requires a timer-solution for REQ So what have we actually gained? Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Softening the restrictions synchronous model known bounds for delays, global timing bounded delay model (fundamental) known bounds for absolute delays, local timing scalable-delay-insensitive model bounds for relative deviation between delays known quasi-delay-insensitive output paths of a fork have same delay delay insensitive no restrictions on delays (just finite) syn: optimistisch, immer schwieriger zu erfüllen Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna recall The Issue Condition tSNK Control TRGSRC: Have SRC issue the next data word such that the current one can still be safely consumed by SNK. Formal Condition: tinvalid,x > tsafe,x msrc > - Dinvalid Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Bundled Data: Issue Cond. Delay source trigger by tsnk = Dsnktrg + Dcons+ msrc This is the delay between „capture“ and „capture done“ in the micropipeline. For tsnk = 0 we end up like in the synchronous case: msrc = -(Dsnktrg + Dcons) this is not safe, but works Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna recall The Capture Condition tSRC Control TRGSNK: Have SNK capture data only after it has become consistent. Formal Condition: tcons,x > tsnkrdy,x msnk > - Dsnktrg Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Bundled Data: Capture Cond. Delay source trigger by tsrc = Dsrc + Dproc + Dsnk + msnk This definitely requires a delay element. like in the synchronous case we end up estimating the involved delays Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Drawback of the delay the skew problem still exists (!) need to determine suitable value for D need to make worst case assumptions for determination of D does not work without constraints on the individual path delays „Bounded Delay Model“ Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna recall What we actually need When can SNK use its input? When it is valid and consistent f(x) SRC SNK „completion detection“: When are computation & transmission complete and data actually stable? Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Current Sensing: Idea Transitions on data rails cause dynamic current In the absence of dynamic current data must be stable current sensor can be used for completion detection Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Current Sensing: Problems inversion of causality is not safe: What if bit changes after circuit has been considered stable? leakage dominates – proportion of dynamic current is decreasing current sensor is undesired analog circuitry Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Gain of Bounded Delay timer settings need to determine clock period circuit functionality is technology dependent considerable design efforts, large design loops need to make worst-case assumptions necessarily pessimistic no robustness wrt. exceeding them need to maintain global synchrony clock distribution problems power consumption problems  Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Why not avoid Skew? Just change a single bit at a time, then skew does not take effect Data permanently consistent Skew REALLY? Lecture "Advanced Digital Design" A © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Still glitches… 1 1 1   Glitch!  single transition Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Huffman Circuits „glitch free“ logic circuits add redundant P-terms to minimized representation problems: not all glitches can be avoided severe restrictions for inputs redundant terms not testable Startzustand und Endzustand müssen auf einer gemeinsamen Rechteck-Fläche (all1 or all0) im KV-Diagramm liegen Delay für feedback stellt sicher, dass Schaltung nach Änderung von 1 Input-Bit eingeschwungen ist, bevor ein evtl. Feedback-Input sich ändert Einschwingvorgang: Input change => Durchlaufzeit => state change => delay => feedback change => Durchlaufzeit danach erst weiterer Input change zulässig ! Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna KV Diagram extension WX W WX W 00 01 11 10 YZ YZ 00 01 11 10 00 1 1 00 1 1 1 1 01 01 1 1 Z Z 11 1 1 1 1 11 1 1 1 1 Y Y 10 1 1 10 1 1 X X F = (X  Y  Z)  (W  Z)  (W  Y) F = (X  Y  Z)  (W  Z)  (W  Y)  (W  X  Y)  (W  X  Z)  (Y  Z) Lecture "Advanced Digital Design" A © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Input Restrictions Fundamental Mode („Grey-Coding“) only one input-bit changes at a time  delay in feedbacks required  difficult state coding  not suitable for data path elements Burst Mode groups of inputs may change  requires local clock Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Delayed Feedback Outputs Inputs x1 Z1 xn Zm Combinational logic y1 Next State Current State yk Delay Elements Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

Huffman Circuits: Problems feedback delay implies timing-assumptions („Bounded Delay“) considerably slows down operation complicated design state coding, data path localen clock for burst mode testing of redundant terms cumbersome no structuring not suitable as a stand-alone solution Lecture "Advanced Digital Design" A © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Asynchronous FSM transition between states triggered by input edge rather than by synchronous clock need delay to separate transitions in feedback from (primary) input transitions restrictions for inputs and feedback apply Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna FSM versus AFSM Mealy f(x) f(x) input output t Reg clk Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna State Diagram AFSM ab/xy ab/xy s0 s0 00/00 b-/x- 10/10 a+/x+ s1 s3 s1 s3 00/11 a-/y+ 01/10 b+/y- s2 s2 Burst Mode Diagram [Chris Myers, Asynchronous Circuit Design. Wiley 2001] Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Huffmann Flow Table input [Chris Myers, Asynchronous Circuit Design. Wiley 2001] a,b state 00 01 11 10 s0 s0,00 – s1,10 s1 s2,11 s2 s3,10 s3 next state output stable Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Conclusion Alternatively to a global time base a handshake can establish the required synchronization between source and sink: The source issues a REQ to signal that new data are valid, and the sink issues ACK when it is ready for the next data. In principle the handshake can establish a closed control loop for data flow, which yields higher robustness but variable timing. The micropipeline is the basic approach for structuring asynchronous circuits. It couüples individual source/sink pairs Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna

© A. Steininger & M. Delvai / TU Vienna Conclusion The bundled data approach utilizes coupled timers for the control of REQ and ACK. This saves the need for a clock tree, but does not solve the conceptual problem of coupling validity to time. Huffman circuits are useful for designing small sub-circuits and state machines in a glitch-free manner. They do, however not provide a generally applicable design solution. Lecture "Advanced Digital Design" © A. Steininger & M. Delvai / TU Vienna