diff --git a/common/Makefile b/common/Makefile new file mode 100644 index 0000000..9f519ec --- /dev/null +++ b/common/Makefile @@ -0,0 +1,71 @@ +BUILDDIR := ${current_dir}/build +BOARD_BUILDDIR := ${BUILDDIR}/${TARGET} + +# Set board properties based on TARGET variable +ifeq ($(TARGET),arty_35) + DEVICE := xc7a50t_test + BITSTREAM_DEVICE := artix7 + PARTNAME := xc7a35tcsg324-1 +else ifeq ($(TARGET),arty_100) + DEVICE := xc7a100t_test + BITSTREAM_DEVICE := artix7 + PARTNAME := xc7a100tcsg324-1 +else ifeq ($(TARGET),nexys4ddr) + DEVICE := xc7a100t_test + BITSTREAM_DEVICE := artix7 + PARTNAME := xc7a100tcsg324-1 +else ifeq ($(TARGET),zybo) + DEVICE := xc7z010_test + BITSTREAM_DEVICE := zynq7 + PARTNAME := xc7z010clg400-1 +else ifeq ($(TARGET),nexys_video) + DEVICE := xc7a200t_test + BITSTREAM_DEVICE := artix7 + PARTNAME := xc7a200tsbg484-1 +else ifeq ($(TARGET),basys3) + DEVICE := xc7a50t_test + BITSTREAM_DEVICE := artix7 + PARTNAME := xc7a35tcpg236-1 +else + $(error Unsupported board type) +endif + +# Determine the type of constraint being used +ifneq (${XDC},) + XDC_CMD := -x ${XDC} +endif +ifneq (${SDC},) + SDC_CMD := -s ${SDC} +endif +ifneq (${PCF},) + PCF_CMD := -p ${PCF} +endif + +.DELETE_ON_ERROR: + +# Build design +all: ${BOARD_BUILDDIR}/${TOP}.bit + +${BOARD_BUILDDIR}: + mkdir -p ${BOARD_BUILDDIR} + +${BOARD_BUILDDIR}/${TOP}.eblif: | ${BOARD_BUILDDIR} + cd ${BOARD_BUILDDIR} && symbiflow_synth -t ${TOP} -v ${SOURCES} -d ${BITSTREAM_DEVICE} -p ${PARTNAME} ${XDC_CMD} 2>&1 > /dev/null + +${BOARD_BUILDDIR}/${TOP}.net: ${BOARD_BUILDDIR}/${TOP}.eblif + cd ${BOARD_BUILDDIR} && symbiflow_pack -e ${TOP}.eblif -d ${DEVICE} ${SDC_CMD} 2>&1 > /dev/null + +${BOARD_BUILDDIR}/${TOP}.place: ${BOARD_BUILDDIR}/${TOP}.net + cd ${BOARD_BUILDDIR} && symbiflow_place -e ${TOP}.eblif -d ${DEVICE} ${PCF_CMD} -n ${TOP}.net -P ${PARTNAME} ${SDC_CMD} 2>&1 > /dev/null + +${BOARD_BUILDDIR}/${TOP}.route: ${BOARD_BUILDDIR}/${TOP}.place + cd ${BOARD_BUILDDIR} && symbiflow_route -e ${TOP}.eblif -d ${DEVICE} ${SDC_CMD} 2>&1 > /dev/null + +${BOARD_BUILDDIR}/${TOP}.fasm: ${BOARD_BUILDDIR}/${TOP}.route + cd ${BOARD_BUILDDIR} && symbiflow_write_fasm -e ${TOP}.eblif -d ${DEVICE} + +${BOARD_BUILDDIR}/${TOP}.bit: ${BOARD_BUILDDIR}/${TOP}.fasm + cd ${BOARD_BUILDDIR} && symbiflow_write_bitstream -d ${BITSTREAM_DEVICE} -f ${TOP}.fasm -p ${PARTNAME} -b ${TOP}.bit + +clean: + rm -rf ${BUILDDIR} \ No newline at end of file diff --git a/xc7/counter_test/Makefile b/xc7/counter_test/Makefile index 07bc449..df92f1f 100644 --- a/xc7/counter_test/Makefile +++ b/xc7/counter_test/Makefile @@ -1,68 +1,21 @@ -mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) -current_dir := $(patsubst %/,%,$(dir $(mkfile_path))) +current_dir := ${CURDIR} TOP := top -VERILOG := ${current_dir}/counter.v -DEVICE := xc7a50t_test -BITSTREAM_DEVICE := artix7 -BUILDDIR := build +SOURCES := ${current_dir}/counter.v ifeq ($(TARGET),arty_35) - PARTNAME := xc7a35tcsg324-1 XDC := ${current_dir}/arty.xdc - BOARD_BUILDDIR := ${BUILDDIR}/arty_35 else ifeq ($(TARGET),arty_100) - PARTNAME := xc7a100tcsg324-1 XDC := ${current_dir}/arty.xdc - DEVICE := xc7a100t_test - BOARD_BUILDDIR := ${BUILDDIR}/arty_100 else ifeq ($(TARGET),nexys4ddr) - PARTNAME := xc7a100tcsg324-1 XDC := ${current_dir}/nexys4ddr.xdc - DEVICE := xc7a100t_test - BOARD_BUILDDIR := ${BUILDDIR}/nexys4ddr else ifeq ($(TARGET),zybo) - PARTNAME := xc7z010clg400-1 XDC := ${current_dir}/zybo.xdc - DEVICE := xc7z010_test - BITSTREAM_DEVICE := zynq7 - BOARD_BUILDDIR := ${BUILDDIR}/zybo - VERILOG:=${current_dir}/counter_zynq.v + SOURCES:=${current_dir}/counter_zynq.v else ifeq ($(TARGET),nexys_video) - PARTNAME := xc7a200tsbg484-1 XDC := ${current_dir}/nexys_video.xdc - DEVICE := xc7a200t_test - BOARD_BUILDDIR := ${BUILDDIR}/nexys_video else - PARTNAME := xc7a35tcpg236-1 XDC := ${current_dir}/basys3.xdc - BOARD_BUILDDIR := ${BUILDDIR}/basys3 endif -.DELETE_ON_ERROR: +include ${current_dir}/../../common/Makefile - -all: ${BOARD_BUILDDIR}/${TOP}.bit - -${BOARD_BUILDDIR}: - mkdir -p ${BOARD_BUILDDIR} - -${BOARD_BUILDDIR}/${TOP}.eblif: | ${BOARD_BUILDDIR} - cd ${BOARD_BUILDDIR} && symbiflow_synth -t ${TOP} -v ${VERILOG} -d ${BITSTREAM_DEVICE} -p ${PARTNAME} -x ${XDC} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.net: ${BOARD_BUILDDIR}/${TOP}.eblif - cd ${BOARD_BUILDDIR} && symbiflow_pack -e ${TOP}.eblif -d ${DEVICE} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.place: ${BOARD_BUILDDIR}/${TOP}.net - cd ${BOARD_BUILDDIR} && symbiflow_place -e ${TOP}.eblif -d ${DEVICE} -n ${TOP}.net -P ${PARTNAME} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.route: ${BOARD_BUILDDIR}/${TOP}.place - cd ${BOARD_BUILDDIR} && symbiflow_route -e ${TOP}.eblif -d ${DEVICE} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.fasm: ${BOARD_BUILDDIR}/${TOP}.route - cd ${BOARD_BUILDDIR} && symbiflow_write_fasm -e ${TOP}.eblif -d ${DEVICE} - -${BOARD_BUILDDIR}/${TOP}.bit: ${BOARD_BUILDDIR}/${TOP}.fasm - cd ${BOARD_BUILDDIR} && symbiflow_write_bitstream -d ${BITSTREAM_DEVICE} -f ${TOP}.fasm -p ${PARTNAME} -b ${TOP}.bit - -clean: - rm -rf ${BUILDDIR} diff --git a/xc7/linux_litex_demo/Makefile b/xc7/linux_litex_demo/Makefile index 31c50e1..81f81b5 100644 --- a/xc7/linux_litex_demo/Makefile +++ b/xc7/linux_litex_demo/Makefile @@ -1,53 +1,10 @@ -mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) -current_dir := $(patsubst %/,%,$(dir $(mkfile_path))) +current_dir := ${CURDIR} TOP := top -VERILOG := ${current_dir}/baselitex_arty.v \ +SOURCES := ${current_dir}/baselitex_arty.v \ ${current_dir}/VexRiscv_Linux.v -MEM_INIT := ${current_dir}/mem.init \ - ${current_dir}/mem_1.init \ - ${current_dir}/mem_2.init -BITSTREAM_DEVICE := artix7 + PCF := ${current_dir}/arty.pcf SDC := ${current_dir}/arty.sdc XDC := ${current_dir}/arty.xdc -BUILDDIR := build -ifeq ($(TARGET),arty_100) - PARTNAME := xc7a100tcsg324-1 - DEVICE := xc7a100t_test - BOARD_BUILDDIR := ${BUILDDIR}/arty_100 -else - PARTNAME := xc7a35tcsg324-1 - DEVICE := xc7a50t_test - BOARD_BUILDDIR := ${BUILDDIR}/arty_35 -endif - -.DELETE_ON_ERROR: - - -all: ${BOARD_BUILDDIR}/${TOP}.bit - -${BOARD_BUILDDIR}: - mkdir -p ${BOARD_BUILDDIR} - ln -s ${MEM_INIT} ${BOARD_BUILDDIR} - -${BOARD_BUILDDIR}/${TOP}.eblif: | ${BOARD_BUILDDIR} - cd ${BOARD_BUILDDIR} && symbiflow_synth -t ${TOP} -v ${VERILOG} -d ${BITSTREAM_DEVICE} -p ${PARTNAME} -x ${XDC} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.net: ${BOARD_BUILDDIR}/${TOP}.eblif - cd ${BOARD_BUILDDIR} && symbiflow_pack -e ${TOP}.eblif -d ${DEVICE} -s ${SDC} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.place: ${BOARD_BUILDDIR}/${TOP}.net - cd ${BOARD_BUILDDIR} && symbiflow_place -e ${TOP}.eblif -d ${DEVICE} -p ${PCF} -n ${TOP}.net -P ${PARTNAME} -s ${SDC} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.route: ${BOARD_BUILDDIR}/${TOP}.place - cd ${BOARD_BUILDDIR} && symbiflow_route -e ${TOP}.eblif -d ${DEVICE} -s ${SDC} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.fasm: ${BOARD_BUILDDIR}/${TOP}.route - cd ${BOARD_BUILDDIR} && symbiflow_write_fasm -e ${TOP}.eblif -d ${DEVICE} - -${BOARD_BUILDDIR}/${TOP}.bit: ${BOARD_BUILDDIR}/${TOP}.fasm - cd ${BOARD_BUILDDIR} && symbiflow_write_bitstream -d ${BITSTREAM_DEVICE} -f ${TOP}.fasm -p ${PARTNAME} -b ${TOP}.bit - -clean: - rm -rf ${BUILDDIR} +include ${current_dir}/../../common/Makefile \ No newline at end of file diff --git a/xc7/picosoc_demo/Makefile b/xc7/picosoc_demo/Makefile index cf01292..c39fdf7 100644 --- a/xc7/picosoc_demo/Makefile +++ b/xc7/picosoc_demo/Makefile @@ -1,66 +1,24 @@ -mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) -current_dir := $(patsubst %/,%,$(dir $(mkfile_path))) +current_dir := ${CURDIR} TOP := top -VERILOG := ${current_dir}/picosoc_noflash.v \ +SOURCES := ${current_dir}/picosoc_noflash.v \ ${current_dir}/picorv32.v \ ${current_dir}/simpleuart.v \ ${current_dir}/progmem.v -PARTNAME := xc7a35tcpg236-1 -DEVICE := xc7a50t_test -BITSTREAM_DEVICE := artix7 -PCF := ${current_dir}/basys3.pcf + SDC := ${current_dir}/picosoc.sdc -BUILDDIR := build ifeq ($(TARGET),arty_35) - VERILOG += ${current_dir}/arty.v - PARTNAME := xc7a35tcsg324-1 + SOURCES += ${current_dir}/arty.v PCF := ${current_dir}/arty.pcf - BOARD_BUILDDIR := ${BUILDDIR}/arty_35 else ifeq ($(TARGET),arty_100) - VERILOG += ${current_dir}/arty.v - PARTNAME := xc7a100tcsg324-1 - PCF:=${current_dir}/arty.pcf - DEVICE := xc7a100t_test - BOARD_BUILDDIR := ${BUILDDIR}/arty_100 + SOURCES += ${current_dir}/arty.v + PCF := ${current_dir}/arty.pcf else ifeq ($(TARGET),nexys4ddr) - VERILOG += ${current_dir}/nexys4ddr.v - PARTNAME := xc7a100tcsg324-1 - PCF:=${current_dir}/nexys4ddr.pcf - DEVICE := xc7a100t_test - BOARD_BUILDDIR := ${BUILDDIR}/nexys4ddr + SOURCES += ${current_dir}/nexys4ddr.v + PCF := ${current_dir}/nexys4ddr.pcf else - VERILOG += ${current_dir}/basys3.v - PARTNAME := xc7a35tcpg236-1 + SOURCES += ${current_dir}/basys3.v PCF := ${current_dir}/basys3.pcf - BOARD_BUILDDIR := ${BUILDDIR}/basys3 endif -.DELETE_ON_ERROR: - - -all: ${BOARD_BUILDDIR}/${TOP}.bit - -${BOARD_BUILDDIR}: - mkdir -p ${BOARD_BUILDDIR} - -${BOARD_BUILDDIR}/${TOP}.eblif: | ${BOARD_BUILDDIR} - cd ${BOARD_BUILDDIR} && symbiflow_synth -t ${TOP} -v ${VERILOG} -d ${BITSTREAM_DEVICE} -p ${PARTNAME} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.net: ${BOARD_BUILDDIR}/${TOP}.eblif - cd ${BOARD_BUILDDIR} && symbiflow_pack -e ${TOP}.eblif -d ${DEVICE} -s ${SDC} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.place: ${BOARD_BUILDDIR}/${TOP}.net - cd ${BOARD_BUILDDIR} && symbiflow_place -e ${TOP}.eblif -d ${DEVICE} -p ${PCF} -n ${TOP}.net -P ${PARTNAME} -s ${SDC} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.route: ${BOARD_BUILDDIR}/${TOP}.place - cd ${BOARD_BUILDDIR} && symbiflow_route -e ${TOP}.eblif -d ${DEVICE} -s ${SDC} 2>&1 > /dev/null - -${BOARD_BUILDDIR}/${TOP}.fasm: ${BOARD_BUILDDIR}/${TOP}.route - cd ${BOARD_BUILDDIR} && symbiflow_write_fasm -e ${TOP}.eblif -d ${DEVICE} - -${BOARD_BUILDDIR}/${TOP}.bit: ${BOARD_BUILDDIR}/${TOP}.fasm - cd ${BOARD_BUILDDIR} && symbiflow_write_bitstream -d ${BITSTREAM_DEVICE} -f ${TOP}.fasm -p ${PARTNAME} -b ${TOP}.bit - -clean: - rm -rf ${BUILDDIR} +include ${current_dir}/../../common/Makefile \ No newline at end of file