Synchronous Digital Design Methodology and Guidelines Digital System






























![Example 2: Design for delay x=0; for (i=0; i<4; i++) x+= a[i]*b; Delay: 1*Mul Example 2: Design for delay x=0; for (i=0; i<4; i++) x+= a[i]*b; Delay: 1*Mul](https://slidetodoc.com/presentation_image_h/f6fca6b6eb6be1b6442d7e8f44ef5d14/image-31.jpg)



![Resource Sharing • Y= C 1* X[0] + C 2 *X[1] + C 3*X[2] Resource Sharing • Y= C 1* X[0] + C 2 *X[1] + C 3*X[2]](https://slidetodoc.com/presentation_image_h/f6fca6b6eb6be1b6442d7e8f44ef5d14/image-35.jpg)







- Slides: 42

Synchronous Digital Design Methodology and Guidelines Digital System Design

Synchronous Design • All flip-flops clocked by one common clock • Reset only used for initialization • Races and hazards are no problem

Why synchronous design? • Hazard – Problems due to timing that cannot be observed from functional analysis

Timing Hazard • Static hazard: possibility of a brief signal value change when the signal was expected to be stable, due to timing (glitch) • Dynamic hazard: possibility of multiple output transitions caused by a single input transition due to multiple signal paths with different delays

Static Hazard If d is the delay of each gate

Analyzing Static Hazards using Karnaugh maps A static hazard can occur when changing a single input variable causes a jump from one prime implicant to another Solution: include an additional prime implicant

Eliminating hazards using Flip. Flops

Synchronous Design • Three things must be ensured by the designer: – Minimize and determine clock skew – Account for flip-flop setup and hold times – Reliably synchronize asynchronous inputs

Timing Analysis >0 Setup time margin >0 Hold time margin

Clock skew

Example • Determine the maximum frequency of the following circuit with and without skew

Clock Jitter

Clock Gating • Clock gating is done to disable the clock for low power consumption using a clken signal • It is wrong to gate the clock in the following way, instead use a synchronous load (enable) signal

Asynchronous Inputs It is impossible to guarantee setup and hold timing constraints on inputs synchronized with a clock unrelated to the system clock

Asynchronous inputs • Synchronize only in one place


Metastability • Metastability is a phenomenon that may occur if the setup and hold time requirements of the FF are not met, leading in the output settling in an unknown value after unspecified time.

Reliable synchronizer design

Example • Design a synchronizer that synchronizes two inputs async 1 and async 2 generated with a 50 MHz clock CLK 1, to a system with a 33 MHz clock CLK 2 totally independent of CLK 1. Draw appropriate timing diagrams.

Mean-time between failures f: frequency of flip-flop clock a: number of asynchronous input changes per second in flipflop input To, τ: constants depending on flip-flop electrical characteristics Assume a 10 Mhz clock, ts = 20 ns, To = 0. 4 sec, τ = 1. 5 ns and that the asynchronous input can change 100, 000 times per second, then tr = 1/f – ts = 80 ns MTBF(80 ns) = exp(80/1. 5)/0. 4× 10^7× 10^5= 3. 6× 10^11 s

Cascaded synchronizer

Synchronizing bus transfers • Do not use dual f/f synchronizers in all bits, this will only increase the chances of metastability • Synchronize the control signals and read the input when safe to do so

Synchronization circuit

FIFO Synchronizer basic concept • On burst transfers, the receiver cannot afford to wait for the signal to settle. • Solution: A dual-port RAM FIFO • Problem: How do we synchronize the counters?

Summary • In order to avoid hazards and races, synchronous design is used • In synchronous design a single common clock is used and reset is only used for initialization • The only considerations in synchronous design are the flip-flop setup and hold times, clock skew and asynchronous input synchronization • Asynchronous inputs are commonly synchronized using 2 flip-flops clocked with the synchronous system clock • Synchronization should only be done in one place • In bus transfers, synchronize only the control signals or use a FIFO

Design trade-offs

Common design trade-offs • Performance – Latency – Throughput – Delay (timing) • Area – Gates (ASIC) – Flip-flops/LUTs (FPGA) • Power consumption – Dynamic – Static – Leakage

Design for Speed • Design for High Throughput – Definition: High data rate, acceptable latency – Technique: Pipelining • Design for Low Latency – Definition: Output available as soon as possible – Technique: Parallelism, Removal of pipelining • Design for Timing – Definition: High clock speed, low delay between registers – Technique: Add intermediate registers

Example 1: Design for low latency (parallelism) • X=a+b+c+d Delay = 3*add Latency = 1 cycle Throughput = X bits/clock Delay = 2*add Latency = 1 cycle Throughput = X bits/clock

Example 1: Design for delay • X=a+b+c+d Delay = 1*add + Reg Latency = 2 cycles Throughput = X bits/clock
![Example 2 Design for delay x0 for i0 i4 i x aib Delay 1Mul Example 2: Design for delay x=0; for (i=0; i<4; i++) x+= a[i]*b; Delay: 1*Mul](https://slidetodoc.com/presentation_image_h/f6fca6b6eb6be1b6442d7e8f44ef5d14/image-31.jpg)
Example 2: Design for delay x=0; for (i=0; i<4; i++) x+= a[i]*b; Delay: 1*Mul + 1 Add Latency: 4 cycles Throughput: X bits/4 cycles

Example 2: Design for latency

Example 2: Design for throughput

Design for Area • Resource (logic) sharing • Rolling up the pipeline
![Resource Sharing Y C 1 X0 C 2 X1 C 3X2 Resource Sharing • Y= C 1* X[0] + C 2 *X[1] + C 3*X[2]](https://slidetodoc.com/presentation_image_h/f6fca6b6eb6be1b6442d7e8f44ef5d14/image-35.jpg)
Resource Sharing • Y= C 1* X[0] + C 2 *X[1] + C 3*X[2] • Is it possible to perform all multiplications with a single multiplier? • Is it possible to perform all additions with a single accumulator?

Resource Sharing

Design for low-power • Power components: • Dynamic power consumption (switching): power consumed due to charging and discharging parasitic capacitances on gates and wires • Static power consumption: Power consumed when no switching • Leakage current power consumption:

Design for power • Clock Gating • Dual-edge triggered Flip-Flops • Lowering core voltage

Clock Gating • Clock gating is done to disable the clock for low power consumption using a clken signal • It is wrong to gate the clock in the following way, instead use a synchronous load (enable) signal or a global clock multiplexer (if available)

Dual-Edge Triggered Flip-Flops Single-edge triggered FF Dual-edge triggered FF (same data rate) • Dual-edge triggered flip-flops should only be used if available in the target technology • Otherwise, redundant flip-flops and gating will be used to emulate the desired functionality

Lowering core voltage • Only reduce core voltage within acceptable limits (5 to 10%) • Power consumption in a simple resistor is proportional to the square of the voltage • Keep in mind that performance will degrade too

Review questions/problems • Pipelining will make your circuit – – A. smaller B. exhibit lower latency C. Consume less power D. exhibit higher throughput • Parallelism creates a – – A. latency/throughput trade-off B. Performance/area trade-off C. Area/power consumption trade-off D. performance/power consumption trade-off • Pipeline the following datapath for a three-cycle latency so that you get the maximum operation frequency. How much is the maximum operation frequency?