Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Multicycle Paths in digital sequential circuits, Summaries of Digital Electronics

This covers the topic of multicycle paths and flase paths in digital sequential circuits.

Typology: Summaries

2019/2020

Uploaded on 09/21/2020

suraj-prakash-pandey
suraj-prakash-pandey 🇮🇳

1 document

1 / 5

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
MULTICYCLE PATH
Definition of multicycle paths: By definition, a multi-cycle path is one in
which data launched from one flop is allowed (through architecture definition)
to take more than one clock cycle to reach to the destination flop. And it is
architecturally ensured either by gating the data or clock from reaching the
destination flops. There can be many such scenarios inside a System on Chip
where we can apply multi-cycle paths as discussed later. In this post, we
discuss architectural aspects of multicycle paths. For timing aspects like
application, analysis etc, please refer Multicycle paths handling in STA.
Why multi-cycle paths are introduced in designs: A typical System on Chip
consists of many components working in tandem. Each of these works on
different frequencies depending upon performance and other requirements.
Ideally, the designer would want the maximum throughput possible from each
component in design with paying proper respect to power, timing and area
constraints. The designer may think to introduce multi-cycle paths in the
design in one of the following scenarios:
1) Very large data-path limiting the frequency of entire component: Let
us take a hypothetical case in which one of the components is to be designed
to work at 500 MHz; however, one of the data-paths is too large to work at this
frequency. Let us say, minimum the data-path under consideration can take is
3 ns. Thus, if we assume all the paths as single cycle, the component cannot
work at more than 333 MHz; however, if we ignore this path, the rest of the
design can attain 500 MHz without much difficulty. Thus, we can sacrifice this
path only so that the rest of the component will work at 500 MHz. In that case,
we can make that particular path as a multi-cycle path so that it will work at
250 MHz sacrificing the performance for that one path only.
2) Paths starting from slow clock and ending at fast clock: For simplicity,
let us suppose there is a data-path involving one start-point and one end point
with the start-point receiving clock that is half in frequency to that of the end
point. Now, the start-point can only send the data at half the rate than the end
point can receive. Therefore, there is no gain in running the end-point at
pf3
pf4
pf5

Partial preview of the text

Download Multicycle Paths in digital sequential circuits and more Summaries Digital Electronics in PDF only on Docsity!

MULTICYCLE PATH

Definition of multicycle paths : By definition, a multi-cycle path is one in which data launched from one flop is allowed (through architecture definition) to take more than one clock cycle to reach to the destination flop. And it is architecturally ensured either by gating the data or clock from reaching the destination flops. There can be many such scenarios inside a System on Chip where we can apply multi-cycle paths as discussed later. In this post, we discuss architectural aspects of multicycle paths. For timing aspects like application, analysis etc, please refer Multicycle paths handling in STA. Why multi-cycle paths are introduced in designs : A typical System on Chip consists of many components working in tandem. Each of these works on different frequencies depending upon performance and other requirements. Ideally, the designer would want the maximum throughput possible from each component in design with paying proper respect to power, timing and area constraints. The designer may think to introduce multi-cycle paths in the design in one of the following scenarios:

  1. Very large data-path limiting the frequency of entire component : Let us take a hypothetical case in which one of the components is to be designed to work at 500 MHz; however, one of the data-paths is too large to work at this frequency. Let us say, minimum the data-path under consideration can take is 3 ns. Thus, if we assume all the paths as single cycle, the component cannot work at more than 333 MHz; however, if we ignore this path, the rest of the design can attain 500 MHz without much difficulty. Thus, we can sacrifice this path only so that the rest of the component will work at 500 MHz. In that case, we can make that particular path as a multi-cycle path so that it will work at 250 MHz sacrificing the performance for that one path only.
  2. Paths starting from slow clock and ending at fast clock : For simplicity, let us suppose there is a data-path involving one start-point and one end point with the start-point receiving clock that is half in frequency to that of the end point. Now, the start-point can only send the data at half the rate than the end point can receive. Therefore, there is no gain in running the end-point at

double the clock frequency. Also, since, the data is launched once only two cycles, we can modify the architecture such that the data is received after a gap of one cycle. In other words, instead of single cycle data-path, we can afford a two cycle data-path in such a case. This will actually save power as the data-path now has two cycles to traverse to the endpoint. So, less drive strength cells with less area and power can be used. Also, if the multi-cycle has been implemented through clock enable (discussed later), clock power will also be saved. Implementation of multi-cycle paths in architecture : Let us discuss some of the ways of introducing multi-cycle paths in the design:

  1. Through gating in data-path : Refer to figure 1 below, wherein ‘Enable’ signal gates the data-path towards the capturing flip-flop. Now, by controlling the waveform at enable signal, we can make the signal multi-cycle. As is shown in the waveform, if the enable signal toggles once every three cycles, the data at the end-point toggles after three cycles. Hence, the data launched at edge ‘1’ can arrive at capturing flop only at edge ‘4’. Thus, we can have a multi-cycle of 3 in this case getting a total of 3 cycles for data to traverse to capture flop. Thus, in this case, the setup check is of 3 cycles and hold check is 0 cycle. Figure 1: Introducing multicycle paths in design by gating data path Now let us extend this discussion to the case wherein the launch clock is half in frequency to the capture clock. Let us say, Enable changes once every two cycles. Here, the intention is to make the data-path a multi-cycle of 2 relative to faster clock (capture clock here). As is evident from the figure below, it is
  1. The setup check will be a 4 cycle check, whereas hold check will be a zero cycle check. Pipelining v/s introducing multi-cycle paths : Making a long data-path to get to destination in two cycles can alternatively be implemented through pipelining the logic. This is much simpler approach in most of the cases than making the path multi-cycle. Pipelining means splitting the data-path into two halves and putting a flop between them, essentially making the data-path two cycles. This approach also eases the timing at the cost of performance of the data-path. However, looking at the whole component level, we can afford to run the whole component at higher frequency. But in some situations, it is not economical to insert pipelined flops as there may not be suitable points available. In such a scenario, we have to go with the approach of making the path multi-cycle.

FALSE PATHS

False path is a very common term used in STA. It refers to a timing path which is not required to be optimized for timing as it will never be required to get captured in a limited time when excited in normal working situation of the chip. In normal scenario, the signal launched from a flip-flop has to get captured at another flip-flop in only one clock cycle. However, there are certain scenarios where it does not matter at what time the signal originating from the transmitting flop arrives at the receiving flop. The timing path resulting in such scenarios is labeled as false path and is not optimized for timing by the optimization tool. Definition of false path : A timing path, which can get captured even after a very large interval of time has passes, and still, can produce the required output is termed as a false path. A false path, thus, does not need to get timed and can be ignored while doing timing analysis. Common false path scenarios : Below, we list some of the examples , where false paths can be applied: Synchronized signals : Let us say we have a two flop synchronizer placed between a sending and receiving flop (The sending and receiving flops may be working on different clocks or same clock). In this scenario, it is not required to meet timing from

launching flop to first stage of synchronizer. Figure 1 below shows a two-flop synchronizer. We can consider the signal coming to flop1 as false, since, even if the signal causes flop1 to be metastable, it will get resolved before next clock edge arrives with the success rate governed by MTBF of the synchronizer. This kind of false path is also known as Clock domain crossing (CDC). Figure1: A two flop synchronizer However, this does not mean that wherever you see a chain of two flops, there is a false path to first flop. The two flops may be for pipelining the logic. So, once it is confirmed that there is a synchronizer, you can specify the signal as false. Similarly, for other types of synchronizers as well, you can specify false paths.