Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to use set_false_path and set_clock_groups

2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)06/01 Report--

This article mainly explains "how to use set_false_path and set_clock_groups". The content in the article is simple and clear, and it is easy to learn and understand. Please follow the editor's train of thought to study and learn how to use set_false_path and set_clock_groups.

This paper explains why asynchronous circuits must use set_clock_groups from the back end of digital IC design, and then use the command set_false_path if synchronous circuits. The two methods for calculating crossstalk are different.

1. Why not set false path for asynchronous clock

For beginners, it is often considered that asynchronous circuits should be set with false path. Even many veterans think so.

In fact, for asynchronous circuits, there are special sdc commands to complete this task.

In terms of effect, set_clock_groups-asynchronous seems to have the same effect as false path. Then why is there such an order?

Imagine that there are two clock, clka and clkb, which are asynchronous. How should you set them up?

Using clock group's method:

Set_clock_groups-asynchronous-group clka-group clkb [Command 1]

Using false path's method:

Set_false_path-from [get_clock clka]-to [get_clock clkb] [Command 2] set_false_path-from [get_clock clkb]-to [get_clock clka]

By comparison, it seems that clock group's approach is more intuitive, but there is not much difference.

So what is the real reason for designing this asynchronous command? What is the fundamental difference between it and the role of false path?

In set_false_path 's manual, there is a sentence that explains the real difference between the two.

To sum up, if asynchronous circuits, be sure to use set_clock_groups, synchronous circuits, then use the command set_false_path. The two methods for calculating crossstalk are different.

The author has encountered this problem in the project, should have set the asynchronous case, set up false path. Since the problem was discovered after timing clean, it is easy to compare the difference between the two after modification.

The result is that after changing to the setting of set_clock_groups, timing has become much worse, and some path even have as many as hundreds of ps.

If you are interested, you can use your own design to do an experiment, there may be surprises.

two。 So what's the difference between the crosstalk analysis in manual?

Basic concepts:

As shown in the figure, in crosstalk analysis, when signal An and signal B jump at the same time, then signal B will produce a delta delay due to the influence of signal A. If signal A jumps too early or too late, it has no effect on the delay of signal B.

So which of the two net is aggressor and which is victim? It depends on which net we are analyzing. Since we are analyzing the influence of signal An on signal B, the signal A here is aggressor and signal B is victim. And vice versa. Usually in the actual design, there is more than one victim,aggressor, and similarly, for an aggressor, there will be multiple victim.

When doing on-chip-variation mode analysis. For every jump of aggressor and victim, there will be the earliest arrival time and the latest arrival time. This window, which is between the earliest and latest arrival times, is called timing window. Delta delay is generated only when the timing window of aggressor and victim overlap, that is, aggressor has an impact on victim.

If set_false_path is set, the tool continues to calculate the timing window according to the synchronization relationship.

We know that in the case where aggressor and victim belong to two clock with asynchronous relationship, the jump of aggressor can occur at any time in the entire clock cycle of victim. Not just in the timing windlow calculated according to the synchronous clock.

In terms of synchronization, the tool ignores the impact of aggressor on jumps outside of victim's timing window. This can lead to serious consequences, ranging from performance degradation (setup) to chip fail (hold).

Thank you for your reading, the above is the content of "how to use set_false_path and set_clock_groups". After the study of this article, I believe you have a deeper understanding of how to use set_false_path and set_clock_groups, and the specific use needs to be verified in practice. Here is, the editor will push for you more related knowledge points of the article, welcome to follow!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report