# Makefile for synthesis and checking # # 2009/02/12 Lots of updates for new script tcl version # 2006/01/30 Minor changes # 2005/02/10 A number of improvements thanks to Eric Work # 2004/02/04 Updated # 2003/05/27 Added "tee" to save log file. Make sure you add "exit" at the # end of your dc_compile script. # 2003/05/14 Written #----- Useful variables NAME := foo USERNAME := $(shell whoami) DIR_TMP := /tmp/$(USERNAME)verilog #----- Targets default: @echo @echo "Make targets:" @echo " make check compile default with Verilog XL" @echo " make NAME=abc check compile files in 'abc.vf'" @echo " make NAME=abc new_compile make new dc-abc.tcl" @echo " make compile synthesize default module" @echo " make NAME=abc compile synthesize module 'abc'" @echo @echo "Basic synthesis procedure for top-level module 'abc':" @echo " 1) add all submodules to file abc.vf" @echo " 2) 'make NAME=abc check'" @echo " 3) 'make NAME=abc new_compile'" @echo " 4) add appropriate 'analyze' commands to dc-abc.tcl" @echo " 5) 'make NAME=abc compile'" @echo @echo " You can also change 'foo' to 'abc' in 'Makefile' to avoid" @echo " typing 'NAME' variable each time" @echo @echo " 1) change 'NAME := foo' to 'NAME := abc' in Makefile" @echo " 2) add all submodules to file abc.vf" @echo " 3) 'make check'" @echo " 4) 'make new_compile'" @echo " 5) add appropriate 'analyze' commands to dc-abc.tcl" @echo " 6) 'make compile'" @echo # Use this to check for verilog bugs. Put all files in a ".vf" file. check: verilog -c -l $(NAME).log -f $(NAME).vf new_compile: sed s/prac/$(NAME)/ < dc-template.tcl > dc-$(NAME).tcl compile: dc_shell-t -f dc-$(NAME).tcl | tee $(NAME).log grep -v '^Warning:.*Intraassignment delays for nonblocking assignments are ignored. (VER-130)' $(NAME).log > $(NAME).log.clean clean: rm -f *.mr rm -f *-verilog.pvl rm -f *-verilog.syn rm -f default.svf rm -fr simv.daidir/ rm -fr $(DIR_TMP) cleanall: clean rm -f $(NAME).area rm -f $(NAME).cell rm -f $(NAME).db rm -f $(NAME).hier rm -f $(NAME).log rm -f $(NAME).log.clean rm -f $(NAME).net rm -f $(NAME).pow rm -f $(NAME).tim rm -f $(NAME).vg rm -f $(NAME).dsn rm -f $(NAME).trn rm -f $(NAME).vpd rm -f command.log