You are on page 1of 2

RTL Synthesis

1. To transform Verilog design descriptions expressed at the register-transfer level of abstraction


into implementations at the gate level.
2. We can perform operations on single-bit nets and variables for single-bit signals and vector nets
and variables for multibit signals, such as logical operations (&&, || and !), bit-wise operations
(&, |, ~ etc.), shift operations (<<, >> etc.), the conditional operator (... ?... : ...), concatenation
({..., ...}), bit select and part select. These operations can be implemented by synthesis tools.
3. Synthesis tools typically do not support use of real numeric values and operations, since the
hardware required to implement them is much more complex than that for integer types
4. Consider conditional statements in the always block implementing same logic
Case i: case statement
always @*
case (select-expression)
choice-1: target = expression-1;
choice-2: target = expression-2;
...
choice-n: target = expression-n;
endcase
A synthesis tool could infer a multiplexer, provided the choice values were distinct and included all
possible values of the select expression. The select inputs of the multiplexer are connected to the output of
the combinational logic inferred from the select expression.
Each of the assignment expressions would be synthesized to combinational logic connected to the
particular data input of the multiplexer identified by the corresponding choice value. The choice values
are expressions, but they must not involve any inputs. Usually, they are just literal values.

Case i: if statement, containing nested assignments.


always @*
if (condition-1) target = expression-1;
else if (condition-1) target = expression-1;
...
else target = expression-n;
Each of the expressions and conditions implies combinational logic. The outputs of the expression logic
are connected to decision logic driven by the condition logic, such as that shown in Figure C.3. Since the
conditions are tested one by one until a true condition is found, the decision logic is priority based, with
conditions appearing earlier in the conditional assignment having priority over those appearing later. As a
consequence, the propagation delay for the inferred logic may be as long as the sum of propagation delays
of the inferred decision component. Of course, a synthesis tool may optimize the circuit, and may be able
to implement the assignment as a single multiplexer if the conditions are mutually exclusive.

You might also like