Professional Documents
Culture Documents
In back-end design, hold violation has more priority than Setup Violation. Because hold violation
is related to data path and not depends on clock. Setup violation can be eliminated by slowing
down the clock (Increasing time of the clock).
What Is Slack?
The difference between Required Arrival Time and Actual Arrival Time is called as Slack. The
amount of time by which a violation (Either setup or Hold) is avoided is called the slack.
2. By adding lockup-latches
Static timing analysis is a method for determining if a circuit meets timing constraints without
having to simulate. So, it validates the design for desired frequency of operation, without
checking the functionality of the design
Setup time is the amount of time before the clock edge that the input signal needs to stable to
guarantee it is properly accepted on the clock edge.
What Is Hold Time
Hold time is the amount of time after the clock edge that the input should be stable to
guarantee it is properly accepted on the clock edge.
Violating above setup and hold time requirements is called setup and hold time violations. If
there is setup and hold time violations in the design does not meet the timing requirements and
the functionality of the design is not reliable. STA checks this setup and hold violations.
3. The combo logic between flip flops should be optimized to get minimum delay
4. Tweak launch flip-flop to have better slew at the clock pin, this will make launch
flip-flop to be fast there by helping fixing setup violations.
What are all the items that are checked by static time analysis?
Static timing analysis is used to check mainly the setup time and hold time checks
For standard cell-based designs, following figure illustrates basic timing path. Timing path
typically starts at one of the sequential (storage element) which could be either a flip-flop or a
latch. The timing path starts at the clock pin of the flip-flop/latch. Active clock edge on this
element triggers the data at the output of such element to change. This is the first stage delay
which is also called clock -> data out(Q) delay. Then data goes through stages of combinational
delay and interconnect wires. Each of such stage has its own timing delay
What determines the max frequency a digital design will work on. Why hold time is not
included in the calculation for the above?
Worst max margin will decide the max frequency a design will work on. As setup failure is
frequency dependent. Hold failure is not frequency dependent hence it is not factored into the
frequency calculation.
One chip which came back after being manufactured fails setup test and another one fails a
hold test. Which one may still be used how and why?
Setup failure is frequency dependent. If certain path fails setup requirement, you can reduce
frequency and eventually setup will pass. This is because when you reduce frequency you
provide more time for the flop/latch input data to meet setup. Hence, we call setup failure a
frequency dependent failure. While hold failure is not frequency dependent. Hold failure is
functional failure. Following figure shows frequency dependence of setup failure.
FPGA
What is FPGA?
FPGA:
A) SRAM based technology.
B) Segmented connection between elements.
C) Usually used for complex logic circuits.
D) Must be reprogrammed once the power is off.
E) Costly
CPLD:
A) Flash or EPROM based technology.
B) Continuous connection between elements.
C) Usually used for simpler or moderately complex logic circuits.
D) Need not be reprogrammed once the power is off.
E) Cheaper
The Configurable Logic Blocks (CLBs) constitute the main logic resource for implementing
synchronous as well as combinatorial circuits. CLB are configurable logic blocks and can be
configured to combo, ram or rom depending on coding style CLB consist of 4 slices and each
slice consist of two 4-input LUT (look up table) F-LUT and G-LUT. The memory assignment is a
clocked behavioural assignment, reads from the memory are asynchronous, and all the address
lines are shared by the read and write statements.
1. Static timing: 2. Dynamic timing:
a. The delays over all paths are added up. a. The design is simulated in full timing mode.
b. All possibilities, including false paths, b. Not all possibilities tested as it is dependent on
verified without the need for test vectors. the input test vectors.
c. Much faster than simulations, hours as c. Simulations in full timing mode are slow and
opposed to days. require a lot of memory.
d. Not good with asynchronous interfaces d. Best method to check asynchronous interfaces
or interfaces between different timing or interfaces between different timing domains.
domains.
Distributed RAM
inferring is the logic which tool generate automatically which you don’t describe....
E.g. gate
Instantiation?
Components of a slice?
1.LUT (look up table)
2.wide MUX
3.4 FF/L
4.4FF
5.4 bit carry chain
STA
Doesn’t depend on test vector
STA check the timing
Faster
Suitable for sync design
Suitable for FPGA &ASIC semi-custom flow
It will show every path does not depend upon i/p vector.
DTA
It requires a test vector
Check for functionality & timing
Slower
Suitable for sync & async
ASIC full custom flow
Module pipelining
(input clk,
Input [7:0] a, b, c, d, e,
Output reg [16:0]y); // reg [15:0]y1,y2
always@(posedge clk) //reg [16:0]y3
y<=a*b+c*d+e; //y1<=a*b, y2<=c*d, y3<=y1+y2, y=y3+e;
end module
RESULT
Pipelining reduce data path delay.
But it increase area.
The set_max_delay command set a maximum delay target for timing paths
The set_min_delay command set a minimum delay target for timing paths