blob: 32e2b77ee61085993f967d63c9f9011e0134d77d [file] [log] [blame]
# User config
set script_dir [file dirname [file normalize [info script]]]
# name of your project, should also match the name of the top module
set ::env(DESIGN_NAME) wrapped_vga_clock
set ::env(STD_CELL_LIBRARY) "gf180mcu_fd_sc_mcu7t5v0"
# add your source files here
set ::env(VERILOG_FILES) "$::env(DESIGN_DIR)/../../verilog/rtl/wrapped_vga_clock.v \
$::env(DESIGN_DIR)/../../verilog/rtl/vga-clock/rtl/spi1.v \
$::env(DESIGN_DIR)/../../verilog/rtl/vga-clock/rtl/cmdProc.v \
$::env(DESIGN_DIR)/../../verilog/rtl/vga-clock/rtl/button_pulse.v \
$::env(DESIGN_DIR)/../../verilog/rtl/vga-clock/rtl/digit.v \
$::env(DESIGN_DIR)/../../verilog/rtl/vga-clock/rtl/fontROM.v \
$::env(DESIGN_DIR)/../../verilog/rtl/vga-clock/rtl/top.v \
$::env(DESIGN_DIR)/../../verilog/rtl/vga-clock/rtl/vga_clock.v \
$::env(DESIGN_DIR)/../../verilog/rtl/vga-clock/rtl/VgaSyncGen.v"
# set absolute size of the die to 300 x 300 um
set ::env(DIE_AREA) "0 0 400 400"
set ::env(FP_SIZING) absolute
set ::env(FP_CORE_UTIL) 45
set ::env(PL_TARGET_DENSITY) [ expr ($::env(FP_CORE_UTIL)+5) / 100.0 ]
# define number of IO pads
set ::env(SYNTH_DEFINES) "MPRJ_IO_PADS=38"
# clock period is ns
# need 40MHz for VGA out = 25ns
set ::env(CLOCK_PERIOD) "30"
set ::env(CLOCK_PORT) "wb_clk_i"
# macro needs to work inside Caravel, so can't be core and can't use metal 5
set ::env(DESIGN_IS_CORE) 0
set ::env(RT_MAX_LAYER) {Metal4}
# define power straps so the macro works inside Caravel's PDN
set ::env(VDD_NETS) [list {vdd}]
set ::env(GND_NETS) [list {vss}]
# regular pin order seems to help with aggregating all the macros for the group project
#set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
set ::env(FP_IO_VTHICKNESS_MULT) 4
set ::env(FP_IO_HTHICKNESS_MULT) 4