OpenCores

Subversion Repositories socgen

[/] [socgen/] [trunk/] [tools/] [bin/] [Makefile.root] - Rev 100

Go to most recent revision | Compare with Previous | Blame | View Log

SHELL=/bin/sh
MAKE=make

VPP_NAME=vppreproc
VERILOG_NAME=iverilog

CUR_DIR=$(shell pwd)
VAR_DIR=$(CUR_DIR)/variants
SRC_DIR=$(CUR_DIR)/verilog
GEN_DIR=$(CUR_DIR)/gen






################################################################################
# Run verilator for lint check
################################################################################



.PHONY lint:
lint:  
        echo "################################################################################"; \
        echo; \
        rm -f TB.v;\
        chmod 755 filelist.ver ;\
        ./filelist.ver ;\
        verilator --cc TB.v --exe ../../../../../../../tools/lint/sim_main.cpp -top-module TB  -Wno-WIDTH  -Wno-CASEX 2> lint.log;\
        echo "################################################################################"; \




################################################################################
# preform linting for each variant
################################################################################



.PHONY build_lint:
build_lint:  
        @for VARIANT in `ls $(CUR_DIR)/../lint`; do \
        echo "################################################################################"; \
        echo; \
        echo "Coverage: $$VARIANT ####"; echo; \
        cd   $(CUR_DIR)/../lint/$$VARIANT/;\
        rm -f *.log;\
        chmod 755 filelist.ver ;\
        rm -f TB.v;\
        ./filelist.ver ;\
        verilator --cc TB.v --exe ../../../../../../../tools/lint/sim_main.cpp -top-module TB      -Wno-WIDTH    -Wno-CASEX       2> lint.log;\
        cd   $(CUR_DIR) ;\
        done; \




################################################################################
# run simulation suite
################################################################################


.PHONY clean_sims:
clean_sims:
        (\
        rm -f $(CUR_DIR)/../out/*;\
        rm -f $(CUR_DIR)/../log/*;\
         )


################################################################################
# set up coverage for each variant
################################################################################



.PHONY build_cov:
build_cov:  
        @for VARIANT in `ls $(CUR_DIR)/../cov`; do \
        echo "################################################################################"; \
        echo; \
        echo "Coverage: $$VARIANT ####"; echo; \
        cd   $(CUR_DIR)/../cov/$$VARIANT/;\
        rm -f *.log;\
        $(VPP_NAME) --noline --noblank  -DSYNTHESIS     ../../../../../../../tools/coverage/TestBench  > coverage.v ;\
        make build_cdd ;\
        cd   $(CUR_DIR) ;\
        done; \

################################################################################
# run coverage report  after all sims
################################################################################



.PHONY print_cov:
print_cov:  
        @for VARIANT in `ls $(CUR_DIR)/../cov`; do \
        echo "################################################################################"; \
        echo; \
        echo "Report Coverage: $$VARIANT ####"; echo; \
        cd   $(CUR_DIR)/../cov/$$VARIANT/;\
        make report_cov;\
        cd   $(CUR_DIR) ;\
        done; \








.PHONY run_sims:
run_sims:   clean_sims build_cov build_lint
        @for VARIANT_PROG in `ls $(CUR_DIR)/../icarus`; do \
        echo "################################################################################"; \
        echo; \
        echo "Simulating: $$VARIANT_PROG ####"; echo; \
        cd   $(CUR_DIR)/../icarus/$$VARIANT_PROG/;\
        make sim;\
        done; \


################################################################################
# run each sim and then add coverage
################################################################################

.PHONY sim:
sim:
        (\
        $(VERILOG_NAME) -f filelist.sim  -D VCD ../../../../../../../tools/simulation/TestBench 2>   ./${test}_elab.log  | tee >> ./${test}_elab.log              ;\
        ./a.out 2>    ./${test}_sim.log     | tee >> ./${test}_sim.log ;\
        rm a.out;\
        cd  ../../cov/${comp};\
        make score_cov  TEST=${test} ;\
         )








.PHONY group_build_fpgas:
group_build_fpgas:   
        @for COMP in `ls $(CUR_DIR)/../ip`; do \
        echo "################################################"; \
        echo; \
        echo "Synthesising: $$COMP ####"; echo; \
        cd   $(CUR_DIR)/../ip/$$COMP/bin;\
        make build_fpgas;\
        done; \








.PHONY build_fpgas:
build_fpgas:   
        @for COMP in `ls $(CUR_DIR)/../syn/ise`; do \
        echo "################################################"; \
        echo; \
        echo "Synthesising: $$COMP ####"; echo; \
        cd   $(CUR_DIR)/../syn/ise/$$COMP/;\
        make fpga;\
        done; \






PHONY: fpga
fpga:
        (\
        echo "run -ifn ./filelist.syn    -ifmt mixed -top " $(Design) " -ofn "  $(Design)".ngc -ofmt NGC  -p "  $(Part) "-opt_mode Speed -opt_level 1" > Xst;\
        xst -ifn ./Xst -ofn $(Design).log;\
        ngdbuild -dd _ngo -nt timestamp -p $(Part)  -uc ./target/Pad_Ring.ucf $(Design)   >>$(Design).log ;\
        map  -p  $(Part)  -cm area -ir off -pr off  -c 100 -o $(Design)_map.ncd $(Design).ngd $(Design).pcf >>$(Design).log  ;\
        par -w  -ol std -t 1 $(Design)_map.ncd $(Design).ncd $(Design).pcf  >>$(Design).log   ;\
        trce -e 3 -s 5 -xml $(Design) $(Design).ncd -o $(Design).twr $(Design).pcf -ucf ../target/Pad_Ring.ucf >>$(Design).log  ;\
        netgen  -s 5  -pcf  $(Design).pcf  -sdf_anno true -sdf_path "./gate_sims/par" -insert_glbl true -insert_pp_buffers true -w -dir ./gate_sims/par  -ofmt verilog -sim  $(Design).ncd   $(Design).v >>$(Design).log  ;\
        bitgen -f ./target/cclk.ut  $(Design).ncd >>$(Design).log  ;\
        mv $(Design).bit Board_Design_cclk.bit ;\
        promgen -w -u 0 Board_Design_cclk >>$(Design).log   ; \
        mv Board_Design_cclk.mcs ./debug ;\
        bitgen -f ./target/jtag.ut  $(Design).ncd  >>$(Design).log   ;\
        mv $(Design).bit Board_Design_jtag.bit ;\
        impact -batch ./debug/impact_bat  >>$(Design).log   ;\
        mv *.bit ./debug ;\
        )












.PHONY group_build_sw:
group_build_sw: group_start_sw
        @for COMP in `ls $(CUR_DIR)/../sw`; do \
        echo "################################################"; \
        echo; \
        echo "Linking: $$COMP ###"; echo; \
        cd   $(CUR_DIR)/../sw/$$COMP;\
        make all;\
        done; \


.PHONY group_start_sw:
group_start_sw: 
        @for CHILD in `ls $(CUR_DIR)/../children`; do \
        echo "################################################"; \
        echo; \
        echo "Linking: $$CHILD ##"; echo; \
        cd   $(CUR_DIR)/../children/$$CHILD/bin;\
        ${MAKE} group_build_sw;\
        done; \



.PHONY group_run_sims:
group_run_sims: 
        @for COMP in `ls $(CUR_DIR)/../ip`; do \
        echo "################################################"; \
        echo; \
        echo "Linking: $$COMP ####"; echo; \
        cd   $(CUR_DIR)/../ip/$$COMP/sim/bin;\
        make run_sims  COMP=$$COMP ;\
        make print_cov  ;\
        done; \




Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2013 OpenCores.org, equivalent to ORSoC AB, all rights reserved. OpenCores®, registered trademark.