Setup and Hold TIme

Every flip-flop has restrictive time regions around the active clock edge in which input should not change. We call them restrictive because any change in the input in this regions the output may be the expected one (*see below). It may be derived from either the old input, the new input, or even in between the two. Here we define, two very important terms in the digital clocking. Setup and Hold time.
• The setup time is the interval before the clock where the data must be held stable.
• The hold time is the interval after the clock where the data must be held stable. Hold time can be negative, which means the data can change slightly before the clock edge and still be properly captured. Most of the current day flip-flops has zero or negative hold time.

In the above figure, the shaded region is the restricted region. The shaded region is divided into two parts by the dashed line. The left hand side part of shaded region is the setup time period and the right hand side part is the hold time period. If the data changes in this region, as shown the figure. The output may, follow the input, or many not follow the input, or may go to metastable state (where output cannot be recognized as either logic low or logic high, the entire process is known as metastability).

The above figure shows the restricted region (shaded region) for a flip-flop whose hold time is negative. The following diagram illustrates the restricted region of a D flip-flop. D is the input, Q is the output, and clock is the clock signal. If D changes in the restricted region, the flip-flop may not behave as expected, means Q is unpredictable.

To avoid setup time violations:
• The combinational logic between the flip-flops should be optimized to get minimum delay.
• Redesign the flip-flops to get lesser setup time.
• 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.
• Play with clock skew (useful skews).
To avoid hold time violations:
• By adding delays (using buffers).
• One can add lockup-latches (in cases where the hold time requirement is very huge, basically to avoid data slip).
* may be expected one: which means output is not sure, it may be the one you expect. You can also say "may not be expected one". "may" implies uncertainty. Thanks for the readers for their comments.

Unknown said…
Nice information about VLSI Design.Thank you for sharing this information...
Interior Designers in Chennai
Interiors in Chennai
Good Interior Designers in Chennai
Unknown said…
Very informative blog.Nice.Keep update regularly...
Top Interior Decorators in Chennai
Top 10 Interior Decorators in Chennai
Amaya said…
The Explanation of JK Flip Flop with its truth table would be very much appreciable :)
Nicolebolton said…
I do trust all of the concepts you’ve presented on your post. They’re really convincing and will definitely work. Still, the posts are too brief for newbies. May you please extend them a little from subsequent time?Also, I’ve shared your website in my social networks.

Manufacturing ERP
ERP software companies
Best ERP software
ERP for the manufacturing industry
sofianan said…
Nice post,thanks for giving this post this is very useful to every one and like this types also good explanation.thank you
Education erp software in chennai
Unknown said…
Amazing Article ! I have bookmarked this article page as i received good information from this. All the best for the upcoming articles. I will be waiting for your new articles. Thank You ! Kindly Visit Us @ Coimbatore Travels | Ooty Travels | Coimbatore Airport Taxi | Coimbatore taxi | Coimbatore Taxi
afibiz said…
It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me...
interior designers in chennai
Given article is very helpful and very useful for my admin, and pardon me permission to share articles here hopefully helped:
Erp In Chennai
IT Infrastructure Services
ERP software company in India
Mobile Application Development Company in India
ERP in India
Web development company in chennai
Very interesting blog Thank you for sharing such a nice and interesting blog and really very helpful article.sap mm Training in Bangalore
Its really helpful for the users of this site. I am also searching about these type of sites now a days. So your site really helps me for searching the new and great stuff.sap basis Training in Bangalore
Very useful and information content has been shared out here, Thanks for sharing it.sap hr Training in Bangalore
I gathered a lot of information through this article.Every example is easy to undestandable and explaining the logic easily.sap sd Training in Bangalore
These provided information was really so nice,thanks for giving that post and the more skills to develop after refer that post.sap bw Training in Bangalore
Your articles really impressed for me,because of all information so nice.sap ehs Training in Bangalore
Linking is very useful thing.you have really helped lots of people who visit blog and provide them use full information.sap ehs Training in Bangalore
Being new to the blogging world I feel like there is still so much to learn. Your tips helped to clarify a few things for me as well as giving.sap bods Training in Bangalore
Really it was an awesome article,very interesting to read.You have provided an nice article,Thanks for sharing.sap abap Training in Bangalore
I know that it takes a lot of effort and hard work to write such an informative content like this.sap fico Training in Bangalore
saher said…
I recently came across your blog and have been reading along. I thought I would leave my first comment.
interior decorators in chennai
Modular kitchen in chennai

Popular posts from this blog

1. How do you convert a XOR gate into a buffer and a inverter (Use only one XOR gate for each)?

2. Implement an 2-input AND gate using a 2x1 mux.

3. What is a multiplexer?

A multiplexer is a combinational circuit which selects one of many input signals and directs to the only output.

4. What is a ring counter?

A ring counter is a type of counter composed of a circular shift register. The output of the last shift register is fed to the input of the first register. For example, in a 4-register counter, with initial register values of 1100, the repeating pattern is: 1100, 0110, 0011, 1001, 1100, so on.

5. Compare and Contrast Synchronous and Asynchronous reset.

Synchronous reset logic will synthesize to smaller flip-flops, particularly if the reset is gated with the logic generating the d-input. But in such a case, the combinational logic gate count grows, so the overall gate count savings may not be that significant. The clock works as a filter for small reset gl…

Gate-Level Modeling

>> Introduction
>> Gate Primitives
>> Delays
>> Examples

Introduction

In Verilog HDL a module can be defined using various levels of abstraction. There are four levels of abstraction in verilog. They are:
Behavioral or algorithmic level: This is the highest level of abstraction. A module can be implemented in terms of the design algorithm. The designer no need to have any knowledge of hardware implementation.Data flow level: In this level the module is designed by specifying the data flow. Designer must how data flows between various registers of the design.Gate level: The module is implemented in terms of logic gates and interconnections between these gates. Designer should know the gate-level diagram of the design.Switch level: This is the lowest level of abstraction. The design is implemented using switches/transistors. Designer requires the knowledge of switch-level implementation details.
Gate-level modeling is virtually the lowest-level of abstraction, because t…