-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsyn.tcl
More file actions
61 lines (50 loc) · 1.51 KB
/
syn.tcl
File metadata and controls
61 lines (50 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
set DESIGN CHIP
set src [list \
Src/CHIP.v \
Src/dcache.v \
Src/icache_dm.v \
Src/decoder.v \
Src/alu.v \
Src/Forwarding_Unit.v \
Src/HAZARD_DETECTION.v \
Src/register_file.v \
Src/RISCV_Pipeline.v \
Src/RISCV_IF.v \
Src/RISCV_ID.v \
Src/RISCV_EX.v \
Src/RISCV_MEM.v \
Src/realigner.v \
Src/decompressor.v \
Src/saturation_counter.v \
Src/branch_predictor.v \
Src/dcache_wrapper.v \
Src/icache_wrapper.v \
Src/dum_mul.v \
Src/BTB_BHT.v
]
sh mkdir -p Work
sh mkdir -p Report
sh mkdir -p Syn
define_design_lib WORK -path Work
analyze -format verilog $src
elaborate $DESIGN
current_design $DESIGN
link
source -echo -verbose CHIP_syn.sdc
# TODO: please check if this works with our chip
# set_ungroup [get_designs mul_unit] false
# set_optimize_registers true -design mul_unit
# set_dont_retime [get_cells c_64_r_reg*]
# get_attribute [get_cells c_64_r_reg*] dont_retime
set_ungroup [get_designs dum_mul] false
set_optimize_registers true -design dum_mul
set_dont_retime [get_cells i_RISCV/mul_inst/result_r_reg*]
get_attribute [get_cells i_RISCV/mul_inst/result_r_reg*] dont_retime
set_critical_range 0.3 [current_design]
compile_ultra
write_sdf -version 2.1 -context verilog -load_delay cell "Syn/${DESIGN}_syn.sdf"
write -format verilog -hierarchy -output "Syn/${DESIGN}_syn.v"
write -format ddc -hierarchy -output "Syn/${DESIGN}_syn.ddc"
report_area -hierarchy > "Report/$DESIGN.area"
report_timing > "Report/$DESIGN.timing"
check_design