Reg2Reg Synthesis
Reg2Reg Synthesis
SYNTHESIS:
• It is the process of converting RTL code (high level description language) into gate level
netlist (circuit in terms of logic gates) with all constrains (sdc) as specified by the
designer.
• Synopsys:
• Cadence:
• SDC
• ScanDEF
• SDC
• UPF
• ScanDEF
PROJECT:
• By giving paths of input files needed for synthesis the tool can take direct file name in
the Target library, Link library and while loading RTL design
• While searching for references, after searching in the link_library, Tool searches in the
path provided here.
• If we don not give search path, we give have to mention filename along with path in
target library and link library and we lose the edge on solving references through search
path.
command :
• Tool during mapping selects the cells and it's timing data from the library provided in this
command.
• If we do not give target_library we can not map design with technology dependant
library.
command :
• link_library is a predefined variable, where it's purpose is to store Standard Cell libraries,
Macro Libraries etc.
• For unresolved references in the design we use link library. All the references in the
design must be linked.
• While resolving Tool resolves from left to right. The aesterisk in the Link library
searches for references in the memory of tool and then searches by the libraries provided
in the command.
• Even after this if there are still unresolved libraries, the tool searches for references from
the search_path.
• If we do not give Link Library the unresolved references in the design cannot be
resolved.
command :
• This command loads the RTL design and checks for any syntax errors in it.
• First we need to know the top module name. For that we need to check the design file.
The command then goes as elaborate reg2reg
• This command translates the design with Gtech Libraries, SymbolWare libraries and
HDL operators with Design Ware components.
compile
• This is first stage compilation. We compile our design based on Target and Link
Libraries.
• During this stage the design gets mapped with Technolnogy dependant libraries.
current_design
• By this command we can check the Name of the design.
FIND CLOCK PORTS
report_clocks
• Gives detailed information of created clocks.
command :
check_timing
• This command updates design information, checks generated clocks, checks loops,checks
whether input delays and output delays given or not etc inforamtion is given.
command :
set_input_delay <delay> <based on clock> <To required ports>
• We need to give input delay so as to calculate timing at capture flop. We are giving some
delay at input ports so as to mention that it is taking that much time to enter capture flop.
• We give 60% of Time period of the clock as the we are taking 60% as worst case.
• we need to remove clock ports from the inputs as we don't want delay for our clocks. For
this wee use the command remove_from_collection [all_inputs] [get_ports clk].
get_ports : gives ports in the design. get_ports clk : This command specifically gives
clk port.
command :
set_output_delay <delay> <based on clock> <To required ports>
• We need to give output delay so as to calculate timing at capture flop. We are giving
some delay at output ports so as to mention that it is taking that much time to enter
capture flop.
• We give 60% of Time period of the clock as the we are taking 60% as worst case.
• Unlike set_input_delay we need not remove clock ports as there will be no clock ports in
output ports. If at all there is clock ports we need to remove clock ports.
command :
check_timing
command :
• By the above command we wanted to see any ports that are directly connected to inputs
or outputs. Apparently we don't have such type in our design. So wee need not give input
delay based on virtual clock.
group_path <name> <from> <to> <weight>
• This command groups the path from a point to another point
• We can give weight to the path so that the tool optimizes the path better. The
optimization depends on the weight that is given.
• -name : Gives the name of the path.
• -from : Specifies from where the path should start
• -to : Specifies to where the path should end
• -weight : valued from 1 to 100. The value determines the optimization. Greater the value
better the optimization.
command :
• -no_design_rule : This switch can be used to apply only timing attributes rather than all
the attributes of cell.
• The value above is the max capacitance of the driving cell we have taken.
2nd compilation
• Report timing command gives the report based on start and endpoints.
• Report timing gives the worst path report. It gives the complete timing information of the
path.
• There are multiple switches in this command some frequently used are
• -significant_digits : We specify the number so that the report gives numbers in order of
provided digits.
• In the report, startpoint and endpoint is mentioned and Path group is also mentioned. If
we did not give Group path, The path group is taken by capture clock name.
• Arrival Time in the report should be read from start of the report to till data arrival time.
• Required Time in the report should be read from after data arrival time to data required
time.
• As Required time is greater than Arrival time the setup slack is met.
• As the slack is more we can decrease the Required time for this path as a result the path
operates at higher frequency.
report_qor
• Here we can see that at the end of Timing report, The slack is VIOLATED.
• In the report, startpoint and endpoint is mentioned and Path group is also mentioned. If
we did not give Group path, The path group is taken by capture clock name.
• Arrival Time in the report should be read from start of the report to till data arrival time.
• Required Time in the report should be read from after data arrival time to data required
time.
• As Required time is greater than Arrival time the setup slack is violated.
write_sdc <filename.extension>
• Writes out a file containing sdc constraints that were given in the design.
command :
write_file <switches> <filename.extension>
• This command is used to write the gated level netlist into a file.
• -format : Specifies in which format we need to write the file.
• -output : Specifying the output file.
command: