Wednesday, October 23, 2024

Advance SDC Techniques for Efficient Timing Closure - Part 1

Introduction to Advanced SDC Techniques

SDC is an industry-standard format used to specify the timing, design, and operational constraints for ASIC and FPGA designs. It’s crucial for various EDA tools like synthesis, static timing analysis (STA), and place-and-route.

Note:- Basic Of SDC (Our Previous Blog)

Key Concepts:
  • Clock Definition: Specifies the clock waveforms and timing characteristics.
  • Input/Output Delays: Defines constraints for signal arrival and output times.
  • Timing Exceptions: Includes paths that need special treatment (e.g., false paths, multi-cycle paths).
  • Design Rules: Set up max fanout, transition times, and other physical rules.
Usage in Physical Design SDC files guides the timing closure process by helping tools optimize the layout and logic to meet the defined timing requirements. Accurate SDC constraints ensure designs meet performance specs and are manufacturable. 
This is all we have covered in the previous articles. Now, it's time to dive into advanced techniques for handling more complex designs and optimizing timing closure. There may be a few places, where you might be thinking that it's advanced and you ned more clarity of topics, in that case, drop me an email or comment - I will try to add those on priority

1. Multi-Mode Multi-Corner (MMMC) Constraints 

In real-world designs, chips operate in various modes (e.g., functional mode, test mode, high-performance mode and low-power modes etc) and under different conditions (process, voltage, temperature). SDC must account for these variables simultaneously, which is managed through MMMC constraints. We have to make sure that the design meets timing in all such modes. 
Tools like Synopsys PrimeTime allow for multiple scenarios to be loaded, helping analyze the timing across different modes and corners. 

Attention:- If you are not aware of "Functional and Test Mode" and what are these "different conditions - process, voltage, and temperature" - Wait for some time, and I will explain it to you in another article. 

Command Pointer (for Synopsys tools):- set_operating_conditions and set_mode commands can be used to switch between these modes. 

Note:- Detailing for this topic is in next article

2. Clock Grouping and Complex Clock Relationships 

Many designs have multiple clocks running at different frequencies or phases, which makes timing analysis complex. And as we know that clock is very crucial part of the design and register to register timing analysis depends on clock definition itself. Now, assume that one set of data is travelling from 1 flipflop (triggered by 1 clock) and captured by other flipflop (triggered by other clock), then how will you do the timing analysis between them. If need to handle the constraint between them properly.
Similary, when clocks are asynchronous, you can specify them as "logically exclusive," meaning no paths are analyzed between them, thus simplifying timing. 

SDC provides commands like set_clock_groups to define relationships between clocks. In multi-clock systems like SoCs, the set_false_path command can be used for paths between clocks that don't need timing analysis. Defining proper clock domains with create_clock and grouping them helps avoid unnecessary timing violations. 

Attention:- If you are not aware of "clock domain", "asynchronous clocks", "register to register timing analysis", "basic clock constraints" - read my previous articles or wait for upcoming articles.

Command Pointer:- set_clock_groups, set_false_path

Note:- Detailing for this topic is in next article

3. Handling Advanced Timing Exceptions 

Designers often apply multi-cycle paths or min/max delay constraints when some paths can take more than one clock cycle to complete. These exceptions help optimize timing and reduce pessimism in the analysis. as per your circuit requirement, a path between two low-speed components may have relaxed timing because data does not need to be transferred every clock cycle. In such scenario,  using set_multicycle_path, we specify how many cycles a path can take, and set_min_delay or set_max_delay helps control specific delays between launch and capture registers. 

Pointer:  May be you thinking what's the big deal if it's taking more than1 cycle and you are right but problem is how tool will come to know that it's taking more than 1 cycle. We as a designer have to inform the tool that it will take more than 1 cycle to give me correct data. Remember - correct data is important at this point because capture flipflop will receive some data at the end of the 1 cycle but as a timing analysis tool, it don't know what is correct and wrong data. For the tool it's a data but Designer only know what's correct and wrong. So, designer has to inform the tool when the correct data will reach - after 1 cycle or 2 cycle or more then that. And this information we provide as part of Timing Exception using Multicycle path. We will discuss more about this in other article.

Attention:- If you are not aware of "Multi-cycle paths", "min/max delay constraints" or "Timing Exceptions" - read my previous articles or wait for upcoming articles.

Command Pointer:- set_multicycle_path, set_min_delay, set_max_delay

Note:- Detailing for this topic is in next articles

4. Power-Aware SDC for Low-Power 

Designs Low-power constraints are essential in designs where energy efficiency is a priority. Power-aware SDC integrates power domains with timing constraints. You can define power gating, multi-voltage islands, and clock gating effects through SDC to define how signals interact between different power domains. 
Tools like Synopsys PrimeTime PX use these constraints to perform power-aware timing analysis. 

Attention:- If you are not aware of "Low Power", "power gating" or "Multivoltage islands", "clock gating" - read my previous articles or wait for upcoming articles.

Command Pointer:- set_isolation, set_level_shifter, set_power_domain

Note:- Detailing for this topic is in next articles

5. Automating SDC Generation and Validation 

Managing SDC for complex designs requires automation to reduce errors. Custom scripts can help generate SDC files for different blocks or modes automatically. Automation scripts can extract timing requirements from RTL or netlists and generate appropriate SDC constraints, saving time during design iterations.
Tools like Synopsys Design Compiler provide utilities to validate and automate SDC generation, ensuring that constraints are consistent and correct throughout the design flow. 

Note:- Detailing for this topic is in next articles


This article is setting a base for future articles related to SDC (Synopsys Design Constraints). We will discuss in upcoming articles the advanced part of SDC from the SOC point of view.

Stay Tune.

Wednesday, March 20, 2024

Semiconductor Physics: Electron Spinning in an ATOM

Electron Spinning in an ATOM

We have discussed in our previous article (Semiconductor Physics:- Electron Configuration In Atom, about the atoms (and analogy) and the basic idea of electron movement. If you remember, we have finished our article just introducing the spining of electrons in 3D dimensions and about the quantum numbers

  • n - principal quantum number – This is same number as we know orbital no. 

  • l - azimuthal quantum number – This is same as we know s,p,d,f 

  • m - magnetic quantum number.

"Among the three quantum numbers, there is another quantization condition called spin (s) that electrons should fulfill. Every electron has its angular momentum or spin and can be expressed as..."

Before going through the periodic table, there is the Pauli exclusion principle which stated that no two electrons have the same quantum numbers (n, l, m, and s). In other words, two electrons may have the same quantum number n, l, and m states but the spin states must be +1/2 and -1/2.

The configuration of electrons in different energy states is summarized in Table 1.

 

Table 1 The allowed energy states and the occupation of maximum number of electrons according to quantum rules.


       As an example, for the 3rd electronic orbit (n=3), l should be 0, 1, and 2 followed by equation 14. Similarly, m should be -l to +l including zero for each l value. Electrons can occupy each m value with a spin +/-1/2.

The different notations for different l values are used to express the electronic configuration 

l = 0,1,2,3,4,5 .......

l = s, p, d, f, g, h, .....

The electron state can be represented as

 

I think now you are able to understand whole electron configuration which you have studied in your college days. Let’s talk about few more examples, so that you can be familiar with Semiconductor and Physics very well.

 

For example, Si (Atomic No=14) and Ge (Atomic No= 32), the electronic configuration is

Si         1s22s22p63s23p2

Figure 5 Electronic configuration of Silicon

 

Ge         1s22s22p63s23p64s23d104p2

Figure 6 Electronic configuration of germanium

 

The electronic arrangements are shown in figure1

 

Electronic Configuation

Figure 7 Electron’s configuration rule

In the next article, we will discuss the different type of bonding between the ATOMS and the formation of energy bands which will help us to understand the Semiconductor Physics more deeply and later semiconductor Devices like PN Diode, MOSFETs and all.


By - 

First Author - Dr. Bhaskar Patnayak

Second Author (Editor) - Mr. Puneet Mittal 

Saturday, March 16, 2024

Semiconductor Physics:- Electrons configuration in Atom

Electrons configuration in Atom as per Quantum Mechanics

 To understand the movement of electrons in a semiconductor device, we need to understand the electronic configuration of an atom and how it interacts with the crystal lattice. We already know that atom consists of Neutrons (neutral charge) and Protons (positive charge) inside a nucleus &  Electrons (negative charge) revolved around the nucleus (Figure 1).

Figure 1 Atomic structure

 

Note: (Just for your information) If you remember in the intermediate level or BTech 1st year, we have studied in quantum mechanics that these electrons are restricted to certain energy levels (quantized). In this regard, Plank’s blackbody radiation and Einstein’s photoelectric effect established the discrete nature of light (quantization). In the late 1920s, quantum mechanics had developed in which Heisenberg developed matrix mechanics and Schrödinger developed wave mechanics at the same time. Although the mathematical formulations are quite different, the basic principles are identical.

Although The Schrödinger equation describes the interaction between particles (e.g. electrons) and potential field, it’s enormously difficult to solve the Schrödinger equation in the case of complicated atoms (Atomic number greater than 1 or you can say the total no. of electrons in a neutral atom). Therefore, the solution of the hydrogen atom (atomic number 1) is significant to understand the permissible energy states for electron arrangements.

It is well known that a hydrogen atom consists of a single electron and a proton system. We can call this system a two-particle system. In some circumstances, the two-particle system's motion can be described as the motion of a single particle with respect to a center of mass. The mass of the particle is referred to as a reduced mass with respect to the center of the mass system. In this consideration, we’ll assume that the electron is relatively moved around the proton, and the proton is located at the center (in this case at the origin). Since protons have higher mass with respect to the electron, therefore we will consider the reduced mass is equal to the electron mass, and the proton is located at the origin.

 

Figure 2 (a) Center of mass concept. (b) Position of an electron with respect to proton (Origin)

 Note: - I know you may be thinking what is this. Why are we assuming so many things and nothing is fixed? Basially, in an atom when we say that Proton is in center, then its important to understand which center are we talking about! 

Let me explain you in my (Puneet's way) and you try to visualise it. (People or scientist may not like it but at least you can understand it. From analogy point of view you can consider it's a cloud system. When we see a cloud can we say that it's a 1 cloud of this size, this is the boundry and this is center of cloud. but still we see that whole piece of cloud moving together and merging with other piece of cloud and they have center also and outer periphery also. So this ATOM structure is like that. Now, Try to understand.

  • A Cloud system having more denser at the center (which is also moving) or say that become center of whole cloud (center of the mass system).
  • This cloud portion which is present in the center we are saying it's Proton.
  • Rest of the portion of cloud, you can say it's electron. (remember this I am trying to explain you for Hydrogen atom)
  • Now, you can say that if these are 2 things, can we separate out but that's not going to happen or I say if it will separate out then whole system collapse, so I (scientist) said that both are related to each other (one as positive and other as negative). if you seperate out these 2, whole cloud system collapse. So, when these 2 are together then we say it's an ATOM.
  • But still outer part of Cloud can be separate out from Center part and someother part can come and replace it. So, with respect to center part, outer part (electron) is tied with center part (proton).
Now, Read once again the above one and then below one. You will get more clearity.

The electrons and nucleus (especially protons) are interacted with by the Coulombic potential

Figure 3 Spherical polar co-ordinate system

 

Let’s try to understand a few key points/equations of Quantum mechanics. If you are interested, you can go into detail by referring to the standard textbooks. Here we are just capturing for reference purposes.

Note:- If you want to skip, go to equation no 11 directly but I will recommend to read it once.

Assume that the potential distribution is spherically symmetric, a time-independent three-dimensional Schrödinger equation in spherical coordinates can be written as

 

Note:- Hold ON - If you are thinking about so many equations - It's okay. All these are important (may be not today but it will be one day). I will explain you. Just read it once. 

The negative expression specifies that the electrons are bound with the nucleus and the energy is quantized. It should be noted that the value of n should not be zero as the energy expression become invalid. Therefore, n should be an integer.

Note:- Puneet's Way: - 
When Scientist studied it further they come to know the cloud is not in 2D and presence of outer area of cloud has some pattern in 3D (Dimensional). Also they figured out that outer surface have some motion and usually this motion is around the inner surface (neculus system - dense part) and this moment is not in X, Y, Z direction only but it's in angular form also. Remember - Whole Cloud system is moving but we are talking about the relative motion of outer cloud with respect to inner cloud (mass). and that's the reason of "Spherical polar co-ordinate system" come into the picture to correctly captured this whole system.

Among the three quantum numbers, there is another quantization condition called spin (s) that electrons should fulfill. Every electron has its angular momentum or spin and can be expressed as

So, you might be thinking why all this??

I will say, have patience and we will explain all this to you in coming articles. This is an intro article. This will help you to understand the moment of electrons in the other orbits (also in outer most orbit, which is very important to understand as we always talk about Valency electron and Valence Band).

By - 

First Author - Dr. Bhaskar Patnayak

Second Author (Editor) - Mr. Puneet Mittal