0% found this document useful (0 votes)
45 views1 page

Guidelines For Improving The Performance of Synthesis

The document provides guidelines for improving the performance of synthesized logic designs. It recommends: 1) Keeping clock and reset logic in a single module to avoid resynthesis and allow for clean clock constraints. 2) Avoiding glue logic at the top module, which should only connect components. 3) Naming modules the same as files and avoiding multiple modules per file for clarity. 4) Using enumerated types for FSM state names and separating state registers from combinational next state logic with a case statement to optimize logic.

Uploaded by

vimal_raj205
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views1 page

Guidelines For Improving The Performance of Synthesis

The document provides guidelines for improving the performance of synthesized logic designs. It recommends: 1) Keeping clock and reset logic in a single module to avoid resynthesis and allow for clean clock constraints. 2) Avoiding glue logic at the top module, which should only connect components. 3) Naming modules the same as files and avoiding multiple modules per file for clarity. 4) Using enumerated types for FSM state names and separating state registers from combinational next state logic with a case statement to optimize logic.

Uploaded by

vimal_raj205
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 1

Guidelines for improving the performance of synthesis

Following are some of the important guidelines to improve the performance of synthesized logic and produce the clean design. Clock and Reset logic Clock and Reset generation logic for the modules should be kept in one module - Synthesis only once and do not touch. This helps in a clean clock constraints specifications. Another advantage is, the modules which are using these clocks and resets can be constrained using the ideal clock specification. No glue logic at the top The top module should be used only for connecting various components (modules) together. It should not contain any glue logic. Module name Module name should be same as the file name and one should avoid describing more than one module or entity in a single file. This avoids any confusion while compiling the files and during the synthesis. FSM Coding While coding FSMs, the state names should be described using the enumerated types.

The combinational logic for computing the next state should be in its own process, separate from the state registers. Implement the next-state combinational logic with a case statement. This helps in optimizing the logic much better and results in a clean design.

Multiplexer Inference A case statement is used for implementing multiplexers. To prevent latch inferences in case statements, the default part of the case statement should always be specified. On the other hand an if statement is used for writing priority encoders. Multiple if statements with multiple branches result in the creation of a priority encoder structure. Tri-state buffers A tri-state buffer is inferred when a high impedance (Z) is assigned to an output. Tri-state logic is generally not always recommended because it reduces testability and is difficult to optimize, since it cannot be buffered.

You might also like