PGM_INDEX = 1
TENGB_ETH = eth4
TCL = none
PROJ_DIR = /home/cc3768/ES_Project/csee4840_10gbe/BlazePPS/Hardware/GHRD/cv_soc_devkit_ghrd
TESTPKT_DIR = /home/cc3769/ES_Project/f2014_e6901_10gb/FINAL_PROJECT!!/package_test/teste
TESTPKT_DIR_FAIL = /home/cc3769/ES_Project/f2014_e6901_10gb/FINAL_PROJECT!!/package_test/teste

# Open Quartus
open:
	/opt/altera/13.1/quartus/bin/quartus soc_system.qpf &
# Compile project
compile:
	map fit assemble timing
map:
	/opt/altera/13.1/quartus/bin/quartus_map soc_system --family="Cyclone V"
fit:
	/opt/altera/13.1/quartus/bin/quartus_fit soc_system --part=5CSXFC6D6F31C8ES #--pack_register=minimize_area
assemble:
	/opt/altera/13.1/quartus/bin/quartus_asm soc_system
timing:
	/opt/altera/13.1/quartus/bin/quartus_sta soc_system
	#set_global_assignment -name FAMILY Cyclone V
	#set_global_assignment -name DEVICE 5CSXFC6D6F31C8ES
	#set_global_assignment -name BDF_FILE filtref.bdf
	#set_global_assignment -name TOP_LEVEL_ENTITY ghrd_top.v

# Program FPGA
program:
	quartus_pgm --mode=jtag --cable="CV SoCKit" -o "P;output_files/soc_system.sof@$(PGM_INDEX)"
	#/opt/altera/13.1/quartus/bin/quartus_jli -aprogram soc_system.jbc

# Launches System Console
syscon: 
	/opt/altera/13.1/quartus/sopc_builder/bin/system-console --wrapper-load-jvm-in-process --re-ecex-jni-with-env-project-dir=$(PROJ_DIR) --project_dir=$(PROJ_DIR) -debug --script=$(TCL)

test_tx:# program
	echo "Launching tcpdump to listen for sent packet"
	sudo pkill -9 tcpdump || true
	sudo rm -f eth_capture.cap 
	sudo tcpdump -i $(TENGB_ETH) -c 1 -XX -s0 -w eth_capture.cap &
	echo "Launching system console to output packet from SoCKIT to PC over 10Gb"
	/opt/altera/13.1/quartus/sopc_builder/bin/system-console --wrapper-load-jvm-in-process --re-ecex-jni-with-env-project-dir=$(PROJ_DIR) --project_dir=$(PROJ_DIR) --script=tx_stream.tcl
	sleep 1
	echo "Killing any remaining instances of tcpdump"
	sudo pkill -2 tcpdump || true
	sleep 1
	echo "Dumping captured packets from tcpdump"
	sudo tcpdump -r eth_capture.cap -XX

test_rx:
	echo "Replaying data from PC into SoCKit over 10Gb"
	sudo /usr/local/bin/tcpreplay --intf1=$(TENGB_ETH) $(TESTPKT_DIR)
	echo "Reading received data from sysconsole"
	/opt/altera/13.1/quartus/sopc_builder/bin/system-console --wrapper-load-jvm-in-process --re-ecex-jni-with-env-project-dir=$(PROJ_DIR) --project_dir=$(PROJ_DIR) -debug --script=rx_stream.tcl

test_led:
	echo "Basic PIO LED test"
	/opt/altera/13.1/quartus/sopc_builder/bin/system-console --wrapper-load-jvm-in-process --re-ecex-jni-with-env-project-dir=$(PROJ_DIR) --project_dir=$(PROJ_DIR) -debug --script=test_led.tcl

# Launches JTAG processes (necessary for debugging with system console)
jtag:
	/opt/altera/13.1/quartus/bin/jtagconfig
	/opt/altera/13.1/quartus/linux64/jtagd

# Launches wireshark
wireshark:
	sudo wireshark



