STA Concepts and Interview Questions PDF
STA Concepts and Interview Questions PDF
Removal Time is the minimum required time after the clock edge after
which reset can be released.
Clock gating checks
A clock gating check occurs when a gating signal can control the path of
a clock signal at a logic cell. An example is shown in Figure 1. The pin of
logic cell connected to clock is called clock pin and pin where gating
signal is connected to is gating pin. Logic cell where clock gating occurs
is also referred to as gating cell.
Min max transition times
The transition time is the time needed for a signal to pass from 10% to
90% or from 20% to 80% of its final state.
Min/max fanout
How can I reduce my FPGA
power consumption?
One of the more powerful techniques is to maximize the use of hard IP
blocks available on chip, because FPGA vendors design the hard IP to
use only the exact resources required to achieve a given protocol or
architecture. Another technique is to simply suspend all or part of the
FPGA when it's not in use.
Describe a timing path
Timing path is defined as the path between start point and end
point where start point and end point is defined as follows: Start Point:
All input ports or clock pins of a sequential element are considered as
valid start point. End Point: All output port or D pin of sequential
element is considered as End point.
What is timing critical path?
The critical path is defined as the path between an input and an output
with the maximum delay.
http://www.vlsi-expert.com/2011/03/static-timing-analysis-sta-
basic-timing.html
Latch Time Borrowing
Time Borrowing is permitting the logic to automatically borrow time
from next cycle, thereby reducing the time available for data to arrive
for the following cycle OR permitting the logic to use slack from the
previous cycle, in the current cycle
Clock pulse width requirements
Minimum pulse width checks are done to ensure that width of the
clock signal is wide enough for the cell's internal operations to
complete. i.e. to get a stable output you need to ensure that the clock
signal at the clock pin of the flop is at least of a certain 'minimum' width
What does the setup/Hold time of a flop depend upon ?
Setup/Hold time of a flip-flop depends upon the Input data slope, Clock
slope and Output load.
Explain signal timing propagation from one flip-flop to
another flip-flop through combinational delay.
Explain setup failure to a flip-flop
if we reduce frequency, our cycle time increases and eventually FF2_in
will be able to make it in time and there will not be a setup failure. Also
notice that a clock skew is observed at the second flop. The clock to
second flop clk2 is not aligned with clk1 anymore and it arrives earlier,
which exacerbates the setup failure.
What is design sign off?
Sign off typically implies that the design is final and no further
revisions are possible.
If hold violation exists in design, is it OK to sign off
design? If not, why?
No you can not sign off the design if you have hold violations. Because
hold violations are functional failures. Setup violations are frequency
dependent. You can reduce frequency and prevent setup failures. Hold
violations stemming from the same clock edge race, are frequency
independent and are functional failures because you can end up
capturing unintended data, thus putting your state machine in an
unknown state.
What are setup and hold checks for clock gating and
why are they needed ?
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.
: Are clock domain crossing issues detected by STA tool
?
No clock Domain crossing issues are not detected by Static Timing
Analysis tool. As mentioned earlier, tool simply tries to find out the
worst case setup and hold checks between launch and capture edge.
Designer has to design for clock domain crossings.
What are these lockup latches?
Lockup latch is simply a transparent latch (D Latch). These lockup latches
are used in scan-based designs, i.e., in between to scan flip flops which
have large probability of hold failure. The lockup latches are used to
avoid large clock skew problems.
Difference between lockup latches and lockup
registers.
Both lockup latch and lockup register do serve the same purpose, but
they do have some differences. Due to which one is preferred among
the other one. Let see who wins the quiz.
Coming to the area perspective a lockup latch is half the size of a lockup
register. So, lockup latch is area efficient compared to the use of lockup
registers. Also, we can say that lockup latches are power efficient by
considering the same point.
Advantages of inserting lockup latches
First this by inserting lockup latches we can do timing closure for hold
failure during SCAN-SHIFT mode. That is the case when there is a large,
uncommon path between launch and capture flip flops.
This scenario is AREA efficient and POWER efficient when compared to
lockup registers, which will be discussed in the later section.
Does location of lockup latch matter ?
The location of lockup latch very much matters. When you introduce
lockup latch in between two flops, you are essentially breaking timing
path into two segments. One path from the original launch flop to the
lockup latch and other timing path from the lockup latch to the original
capture flop.
What are your options to fix a timing path ?
There are several different possibilities for fixing a timing path.
- Obvious logic optimization
- Better placement
- - More pipelining.
- Move logic to previous pipe stage ?
- Replicate drivers
- Parallelism in RTL
- Use of Macro.
- Synthesized if...elseif...elseif series.
- One Hot instead of Binary coded State Registers
- Physical design techniques.
- Power trade off techniques
What are multi cycle paths ?
Multicycle paths are data paths between two registers that operate at
a sample rate slower than the FPGA clock rate and therefore take
multiple clock cycles to complete their execution.
What is a false path?
False Paths are those timing arcs in design where changes in source
registers are not expected to get captured by the destination register
within a particular time interval.
What is signal integrity ?
Signal Integrity is the ability of an electrical signal to carry information
reliably and resist the effects of high-frequency electromagnetic
interference from nearby signals
What is crosstalk glitch and how do you fix it ?
Some questions about RTL coding for FPGA primitive components, what
are the primitive components and what have you used.
BUFGMUX, ibuff, obuff, etc
What is the difference between PAL and PLD?
PLD (programmable logis devices) has a programmable OR plane, and
fixed AND plae, PLA (programmable logis arrays) has programmable OR,
and programmable AND palne, PAL (programmable array logic) has fixed
OR, and programmable AND plane.
What do you understand by transport delay and
inertial delay?
Transport delay: Transport delay is a type of delay caused by the wires
that connect to the gates. Due to the wire's resistance and inductance, it
delays the signal.
Inertial delay: The inertial delay is the time it takes for a gate to change
its output.
Why might you choose to use an FPGA in your design?
PLL stand for Phase-locked loop and is commonly used inside FPGAs to
generate desired clock frequencies. PLLs are built-in to the FPGA fabric
and are able to take an input clock and derive a unique out-of-phase
clock from that input clock. They are very useful if your design requires
several unique clocks to be running internally.
Describe the difference between inference and
instantiation
Inference is when you write VHDL or Verilog to “infer” or tell the
synthesis tools to place some type of component down. For example, by
creating a large memory storage register, you might be inferring a Block
RAM. Instantiation is when you directly create the primitive component
for the Block RAM based on the particular vendor’s user guide for how
to instantiate primitive components. Inferrence is more portable across
FPGA technologies. Instantiation might be better if you need to be very
explicit about the primitive that you want to work with, or apply some
unique settings to it.
What is FIFO?
FIFO stands for First In First Out. It is a commonly used FPGA
component. A FIFO is a storage element, usually made of a Block RAM
for large FIFOs and registers for short FIFOs. They are used to buffer
data, for example when reading and writing to external memory, or for
when crossing clock domains, or for storing pixels coming out of a
camera. Further Reading
What is a Block RAM?
A Block RAM is a specific part of an FPGA that is usually a 16k or 32k bits
storage element. It can have dynamic width and depth and is useful for
many applications inside of an FPGA. They are used in Dual-port
memories, FIFOs, and LUTs to name a few.
What is a shift register in an FPGA?
The synthesis tools are provided by the FPGA vendor and are used to
translate your VHDL or Verilog code into logic that the FPGA is built from
(e.g. Flip-Flops, Look-Up Tables, Block RAMs, etc).
What happens during Place and Route?
Clock latency
The time taken by Clock signal to reach from clock source
to the clock pin of a particular flip flop is called as Clock
latency. Clock skew can also be termed as the difference
between the capture clock latency and the launch clock
latency for a set of flops.
False path and multicycle paths are the timing exceptions
in the design.
False paths:
Paths in the design which doesn't require timing analysis
are called False paths. These paths are timing
exceptions in the design. Which is commonly occured in
the blocks at which more than one clock is involving in the
functionality