Good Quality of RTL helps synthesis converge better
In this post, we are going to learn about the RTL Quality Effect on Synthesis. The quality of RTL depends on how the synthesized netlist will be, i.e., if the RTL codes are written in a good way and it has flexibility to change the circuit w.r.t the design requirement, then we will end up with a good synthesized netlist. Let’s understand this with examples.
Below there the two pieces of codes and their corresponding circuits:
SUM1 = A + B; SUM2 = C + D; if (SEL == 1’b1) SUM = SUM1; else SUM = SUM2; end
if (SEL == ‘1’) then SUM <= A + B; else SUM <= C + D; endif;
From the above two RTL coding styles, we have seen that the circuit resulted into two different form. In the first coding style, the SUM1 and SUM2 have been defined which will prevent the tool to map the circuit in other form when it comes to the optimization. SUM1 and SUM2 have been defined hardly.
In the second example, we can see that the conditions applied give flexibility to the tool to define the circuit as per optimization requirements. RTL coding style example 2 can be either of the circuits but being optimistic the second circuit is the best choice for the tool, hence it has taken this.
In this way we have saved high cell area and power consumption. Huge cells like Adder, subtractor might result into congestion in further stages if more cells are like this sitting in the same area. Flexible coding style gives a flexible option to the tool and hence that results into the best outcome of synthesis.