RTL Synthesis1
RTL Synthesis1
ca/rtl-compiler/
Note that after sourcing “underg_install.csh” some folders and a “.csh” file will be
created in the “Cadence_StudentNumber”. In your future use for any of the
Cadence tools you will descend into the corresponding folder and in all cases you
will source the same “.csh” file.
1 of 6 1/14/20, 11:06 PM
Cadence Encounter RTL Compiler | Sudip Shekhar https://sudip.ece.ubc.ca/rtl-compiler/
#current_design module_name
#create_clock [get_ports {clk_name }] -name clk_name -period clk_period(ns)
-waveform {rise fall}
current_design up_counter
create_clock [get_ports {clk}] -name clk -period 100 -waveform {0 50}
After generating the .sdc save it along with the .v file in “in” folder in the RTL
Compiler working directory.
#Start###################################################################
#’puts’ command just prints what is in its argument.
puts “=================”
puts “Synthesis Started”
date
puts “=================”
#Include TCL utility scripts.
include load_etc.tcl
#Set up variables.
#set DESIGN <Your_module_name>
##A CHANGE HERE IS REQUIRED##
set DESIGN UP_COUNTER
#set SYN_EFF <Required_synthesis_effort>
set SYN_EFF medium
#set MAP_EFF <Required_mapping_effort>
set MAP_EFF medium
#set SYN_PATH <Required_working_directory>
set SYN_PATH “.”
#set the PDK’s path as a variable ‘PDKDIR’
set PDKDIR $::env(PDKDIR)
######################################################################
#set the search path for the “.lib’ files provided with the PDK.
set_attribute lib_search_path $PDKDIR/gsclib045_all_v4.4/gsclib045/timing
#select the needed .lib files.
2 of 6 1/14/20, 11:06 PM
Cadence Encounter RTL Compiler | Sudip Shekhar https://sudip.ece.ubc.ca/rtl-compiler/
3 of 6 1/14/20, 11:06 PM
Cadence Encounter RTL Compiler | Sudip Shekhar https://sudip.ece.ubc.ca/rtl-compiler/
#THE END
puts “=====================”
puts “Synthesis Finished :)”
puts “=====================”
#Exit RTL Compiler
quit
NOTE: If you have multiple modules, say X, Y , and Z which calls X and Y. You
should modify your .tcl file as follows:
1- Read in all the Verilog files
>> read_hdl ./in/X.v
>> read_hdl ./in/Y.v
>> read_hdl ./in/Z.v
2- Specify the top module
>> elaborate Z
RTL Compiler will execute the instructions in the TCL file and will generate the
output files and reports in the “out” folder.
1. “.v”: Which has the new gate level Verilog description of the synthesized
system.
2. “.sdc”: Which includes the timing constraints of the system.
3. “.sdf”:Which includes timing information about the used standard cells.
1. Area
2. Used cells statistics
3. Timing
4. Power consumption
The generated files will be used in the coming steps in the digital flow. The
generated reports are important to assist you in making sure that the system meets
the required specifications.
4 of 6 1/14/20, 11:06 PM
Cadence Encounter RTL Compiler | Sudip Shekhar https://sudip.ece.ubc.ca/rtl-compiler/
NOTE: It is advised for beginners to copy and paste the tcl lines in the shell line
by line instead of sourcing the tcl file. By doing that you can see exactly what each
code line will do.
3.1 Compile the PDK’s “.V” file and the mapped file
This PDK .v file includes the behavioural description of the standard cells, and by
compiling it ModelSim will be able to compile the mapped file without errors.To
add this file go to ‘Project’ tab and then go to <Project –> Add to Project
–> Existing File …>.
Brows to the needed file:
/CMC/kits/AMSKIT616_GPDK/tech/gsclib045_all_v4.4/gsclib045/verilog
/slow_vdd1v0_basicCells.v
After adding the file, go to <Compile –> Compile All>. Make sure that it was
compiled successfully, and notice the changes in the working library in the
‘Library’ tab. Using the same steps, add and compile the mapped Verilog file
generated from RTL Compiler.
Go to <Simulate –> Start Simulation …>. The ‘start simulation’ window will
open. In the design tab select your TB file under the working library. In the SDF
tab press ADD then Browse to your .sdf file generated form RTL Compiler.
Change ‘Apply to Region’ field to the name of the unit under test in the TB that
the timing info will be linked to, as shown in Figure 1. Finally select Reduce SDF
errors to warnings.
5 of 6 1/14/20, 11:06 PM
Cadence Encounter RTL Compiler | Sudip Shekhar https://sudip.ece.ubc.ca/rtl-compiler/
Pressing OK will start the simulation windows. In the “Objects” window right-
click anywhere and select <Add to –> Wave –> Signals in Region> this should
add your main signals to the “wave” screen. Finally, from the drop-down menus go
to <Simulate –> Run –> Run -All>. Note the changes in the “wave” screen. Press
“F” to fit all the signals in the screen. Finally, check the functionality to make sure
that the synthesis was right. Also, zoom to the transitions and note the delays.
6 of 6 1/14/20, 11:06 PM