blob: d4fc11887499c0b7df41c083489ad531cf61e35f [file] [log] [blame]
set ::env(USER_ROOT) ".."
set ::env(CARAVEL_ROOT) "/home/dinesha/workarea/efabless/MPW-6/caravel"
set ::env(CARAVEL_PDK_ROOT) "/opt/pdk_mpw6"
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_sc_hd/lib/sky130_fd_sc_hd__tt_025C_1v80.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_sram_macros/lib/sky130_sram_1kbyte_1rw1r_32x256_8_TT_1p8V_25C.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_sc_hvl/lib/sky130_fd_sc_hvl__tt_025C_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_sc_hvl/lib/sky130_fd_sc_hvl__tt_025C_3v30_lv1v80.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_fd_io__top_gpiov2_tt_tt_025C_1v80_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_fd_io__top_ground_hvc_wpad_tt_025C_1v80_3v30_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_fd_io__top_ground_lvc_wpad_tt_025C_1v80_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_fd_io__top_ground_lvc_wpad_tt_100C_1v80_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_fd_io__top_power_lvc_wpad_tt_025C_1v80_3v30_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_fd_io__top_xres4v2_tt_tt_025C_1v80_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_ef_io__gpiov2_pad_tt_tt_025C_1v80_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_ef_io__vccd_lvc_clamped_pad_tt_025C_1v80_3v30_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_ef_io__vdda_hvc_clamped_pad_tt_025C_1v80_3v30_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_ef_io__vssa_hvc_clamped_pad_tt_025C_1v80_3v30_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_ef_io__vssd_lvc_clamped3_pad_tt_025C_1v80_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_ef_io__vccd_lvc_clamped3_pad_tt_025C_1v80_3v30_3v30.lib
read_liberty $::env(CARAVEL_PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lib/sky130_ef_io__vssd_lvc_clamped_pad_tt_025C_1v80_3v30.lib
source scripts/statistic.tcl
set c_seq_cnt 0
set c_comb_cnt 0
set c_total_cnt 0
read_verilog $::env(USER_ROOT)/verilog/gl/qspim_top.v
link_design qspim_top
puts "IP :: Total Cell :: Total Combo :: Total Sequential"
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "qspim_top :: $tcell :: $tregs "
lassign [get_statistic qspim_top] a b c
set c_total_cnt [expr {$c_total_cnt + $a }]
set c_comb_cnt [expr {$c_comb_cnt + $b }]
set c_seq_cnt [expr {$c_seq_cnt + $c }]
#Variable for Risc Area
set r_seq_cnt 0
set r_comb_cnt 0
set r_total_cnt 0
read_verilog $::env(USER_ROOT)/verilog/gl/ycr4_iconnect.v
link_design ycr4_iconnect
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "ycr_iconnect :: $tcell :: $tregs "
lassign [get_statistic ycr4_iconnect] a b c
set c_total_cnt [expr {$c_total_cnt + $a }]
set c_comb_cnt [expr {$c_comb_cnt + $b }]
set c_seq_cnt [expr {$c_seq_cnt + $c }]
set r_total_cnt [expr {$r_total_cnt + $a }]
set r_comb_cnt [expr {$r_comb_cnt + $b }]
set r_seq_cnt [expr {$r_seq_cnt + $c }]
read_verilog $::env(USER_ROOT)/verilog/gl/ycr_intf.v
link_design ycr_intf
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "ycr_intf :: $tcell :: $tregs "
lassign [get_statistic ycr_intf] a b c
set c_total_cnt [expr {$c_total_cnt + $a }]
set c_comb_cnt [expr {$c_comb_cnt + $b }]
set c_seq_cnt [expr {$c_seq_cnt + $c }]
read_verilog $::env(USER_ROOT)/verilog/gl/ycr_core_top.v
link_design ycr_core_top
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "ycr_intf :: $tcell :: $tregs "
lassign [get_statistic ycr_core_top] a b c
#2 core in riscduino_dcore
set c_total_cnt [expr {$c_total_cnt + ($a *4) }]
set c_comb_cnt [expr {$c_comb_cnt + ($b *4) }]
set c_seq_cnt [expr {$c_seq_cnt + ($c *4) }]
set r_total_cnt [expr {$r_total_cnt + ($a *4) }]
set r_comb_cnt [expr {$r_comb_cnt + ($b *4) }]
set r_seq_cnt [expr {$r_seq_cnt + ($c *2) }]
puts "RISC :: $r_total_cnt :: $r_comb_cnt :: $r_seq_cnt"
read_verilog $::env(USER_ROOT)/verilog/gl/uart_i2c_usb_spi_top.v
link_design uart_i2c_usb_spi_top
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "ycr_intf :: $tcell :: $tregs "
lassign [get_statistic uart_i2c_usb_spi_top] a b c
set c_total_cnt [expr {$c_total_cnt + $a }]
set c_comb_cnt [expr {$c_comb_cnt + $b }]
set c_seq_cnt [expr {$c_seq_cnt + $c }]
read_verilog $::env(USER_ROOT)/verilog/gl/wb_host.v
link_design wb_host
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "ycr_intf :: $tcell :: $tregs "
lassign [get_statistic wb_host] a b c
set c_total_cnt [expr {$c_total_cnt + $a }]
set c_comb_cnt [expr {$c_comb_cnt + $b }]
set c_seq_cnt [expr {$c_seq_cnt + $c }]
read_verilog $::env(USER_ROOT)/verilog/gl/wb_interconnect.v
link_design wb_interconnect
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "ycr_intf :: $tcell :: $tregs "
lassign [get_statistic wb_interconnect] a b c
set c_total_cnt [expr {$c_total_cnt + $a }]
set c_comb_cnt [expr {$c_comb_cnt + $b }]
set c_seq_cnt [expr {$c_seq_cnt + $c }]
read_verilog $::env(USER_ROOT)/verilog/gl/pinmux.v
link_design pinmux
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "ycr_intf :: $tcell :: $tregs "
lassign [get_statistic pinmux] a b c
set c_total_cnt [expr {$c_total_cnt + $a }]
set c_comb_cnt [expr {$c_comb_cnt + $b }]
set c_seq_cnt [expr {$c_seq_cnt + $c }]
puts "digital_top :: $c_total_cnt :: $c_comb_cnt :: $c_seq_cnt"
# read_verilog $::env(USER_ROOT)/verilog/gl/user_project_wrapper.v
# read_verilog $::env(USER_ROOT)/verilog/gl/qspim.v
# read_verilog $::env(USER_ROOT)/verilog/gl/DFFRAM.v
# read_verilog $::env(USER_ROOT)/verilog/gl/pinmux.v
# read_verilog $::env(USER_ROOT)/verilog/gl/wb_interconnect.v
# read_verilog $::env(USER_ROOT)/verilog/gl/wb_host.v
# read_verilog $::env(USER_ROOT)/verilog/gl/uart_i2cm_usb_spi.v
# read_verilog $::env(USER_ROOT)/verilog/gl/qspim.v
# read_verilog $::env(USER_ROOT)/verilog/gl/yifive.v
#link_design user_project_wrapper
#set tcell [llength [get_cell -hier *]]
#set tregs [llength [all_registers]]
#puts "user_project_wrapper :: $tcell :: $tregs "