Skip to content

Commit 3d4cd75

Browse files
syn tcl
1 parent 27c3793 commit 3d4cd75

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

syn.tcl

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
set_db lib_search_path /package/eda/cells/NanGate_45nm_OCL_v2010_12/pdk_v1.3_v2010_12/NangateOpenCellLibrary_PDKv1_3_v2010_12/Front_End/Verilog
2+
set_db library /package/eda/cells/NanGate_45nm_OCL_v2010_12/pdk_v1.3_v2010_12/NangateOpenCellLibrary_PDKv1_3_v2010_12/Front_End/Liberty/NLDM/NangateOpenCellLibrary_typical.lib
3+
set_db information_level 6
4+
set_db hdl_error_on_blackbox true
5+
6+
# Run from repository root so relative paths are stable.
7+
set script_dir [file dirname [file normalize [info script]]]
8+
cd $script_dir
9+
10+
# Set your intended synthesis top here.
11+
set TOP_MODULE srt_div
12+
13+
# Read RTL for the new SRT divider block.
14+
# Add more read_hdl lines here only if your target block depends on more files.
15+
read_hdl -sv source_code/rv32m/srt_qsel_rom_pkg.sv
16+
read_hdl -sv source_code/rv32m/srt_div.sv
17+
18+
elaborate $TOP_MODULE
19+
init_design
20+
21+
# Clock/input constraints.
22+
set clk_ports [clock_ports]
23+
if {[llength $clk_ports] > 0} {
24+
set clock1 [define_clock -period 666 -name clock1 $clk_ports]
25+
}
26+
27+
# If your module is combinational, remove the next 2 lines.
28+
# For this divider, set input delay on main data/control inputs.
29+
set in_ports [get_ports -quiet {in_valid dividend* divisor* out_ready}]
30+
if {[info exists clock1] && [llength $in_ports] > 0} {
31+
set_input_delay -max 0 -clock clock1 $in_ports
32+
}
33+
34+
check_design > check_summary.log
35+
36+
syn_generic -effort high
37+
syn_map -effort high
38+
syn_opt -effort high
39+
40+
report timing -lint > timing-lint.rpt
41+
report timing -max_paths 20 > timing.rpt
42+
report gates > gates.rpt
43+
report power > power.rpt
44+
report area > area.rpt

0 commit comments

Comments
 (0)