Download presentation
Presentation is loading. Please wait.
1
State Encoding مرتضي صاحب الزماني
2
Gray Encoding Gray encoding reduces glitches in the combinational logic when moving from one value (state) to its successor. مرتضي صاحب الزماني
3
Random Encoding RANDOM encoding is interesting if you would like to see whether or not the circuit size or performance depends heavily on the state encoding. مرتضي صاحب الزماني
4
Two-Hot Encoding The twohot encoding can be very beneficial for some large FSMs where onehot uses too many flip flops, and binary requires too much decode logic. مرتضي صاحب الزماني
5
Variables The initial assignment to a variable in a process is usually ignored by synthesis. مرتضي صاحب الزماني
6
Variables the only time a variable generates a flip-flop is when the variable is used before it is assigned in a clocked process. generates a three-bit shift register. مرتضي صاحب الزماني
7
Variables a and b are assigned before used, and therefore do not generate flip-flops. Instead, they generate a single wire. Only one flip-flop remains in between input_foo and output_foo because of the signal assignment in the clocked process. مرتضي صاحب الزماني
8
Array, records and subtypes
No restriction on arrays (multi-dimensional, …), records, subtypes مرتضي صاحب الزماني
9
Std_logic Type Only the values ’0’,’1’,’X’,’-’ and ’Z’ have a well-described meaning for synthesis. مرتضي صاحب الزماني
10
Loop Variables For synthesis, the range specified for the loop variable must be a compile-time constant, otherwise the construct is not synthesizable. مرتضي صاحب الزماني
11
Generate LeonardoSpectrum does not have any synthesis restrictions for the generate statement. مرتضي صاحب الزماني
12
Resolution Function You can define a resolution function and attach it to a subtype, and LeonardoSpectrum will synthesize the circuitry it implies for each multiple assignment. مرتضي صاحب الزماني
13
Resolution Function (Example)
مرتضي صاحب الزماني
14
Resolution Function LeonardoSpectrum will synthesize this description and tmp becomes the AND of a and b. مرتضي صاحب الزماني
15
Operators If you use overloaded operators to calculate compile time constants, the synthesis tools will not generate any logic for them. does not result in logic, but assign a constant integer 13 to signal foo. مرتضي صاحب الزماني
16
Operators generates a 32-bit (signed) adder, but
generates an 8-bit (unsigned) adder. مرتضي صاحب الزماني
17
Operators If one of the operands is a constant, initially a full-sized adder is still generated but logic minimization eliminates much of the logic inside the adder. Only division by a power of two is supported. “**” exponentiation on integers is only supported if both operands are constant. Operations on integers are done in two-complement implementation if the integer range extends below 0. If the integer range is only positive, an unsigned implementation is used. مرتضي صاحب الزماني
18
Resource Sharing LeonardoSpectrum performs automatic common subexpression elimination for arithmetic and boolean expressions. The following example has two adders in the code, but they are adding the same numbers, a and b. But only one adder will be used in the final circuit. مرتضي صاحب الزماني
19
Resource Sharing would create the same logic as the following example.
مرتضي صاحب الزماني
20
Resource Sharing Proper use of parentheses guide the synthesis tools in eliminating common subexpressions. مرتضي صاحب الزماني
21
Advanced Design Optimization
Sometimes it is possible to change the functionality of the design slightly, without violating the design specification constraints. builds an incrementer and a full-size comparator. one decrementer is needed plus a comparison to a constant (0). مرتضي صاحب الزماني
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.