Put projf in third_party and fixed makefiles

Signed-off-by: Joshua Fife <jpfife17@gmail.com>
This commit is contained in:
Joshua Fife 2021-10-02 11:05:25 -06:00
parent 106096f137
commit a74f616bbf
8 changed files with 28 additions and 73 deletions

4
.gitmodules vendored
View File

@ -1,3 +1,3 @@
[submodule "projf-explore"]
path = projf-explore
[submodule "third_party/projf-explore"]
path = third_party/projf-explore
url = https://github.com/projf/projf-explore.git

View File

@ -67,5 +67,18 @@ ${BOARD_BUILDDIR}/${TOP}.fasm: ${BOARD_BUILDDIR}/${TOP}.route
${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
download: ${BOARD_BUILDDIR}/${TOP}.bit
if [ $(TARGET)='arty_35' ]; then \
openocd -f ~/opt/symbiflow/xc7/conda/envs/xc7/share/openocd/scripts/board/digilent_arty.cfg -c "init; pld load 0 ${BOARD_BUILDDIR}/${TOP}.bit; exit"; \
elif [ $(TARGET)='arty_100' ]; then \
openocd -f ~/opt/symbiflow/xc7/conda/envs/xc7/share/openocd/scripts/board/digilent_arty.cfg -c "init; pld load 0 ${BOARD_BUILDDIR}/${TOP}.bit; exit"; \
elif [ $(TARGET)='basys3' ]; then \
openocd -f ~/opt/symbiflow/xc7/conda/envs/xc7/share/openocd/scripts/board/digilent_arty.cfg -c "init; pld load 0 ${BOARD_BUILDDIR}/${TOP}.bit; exit"; \
else \
echo "The commands needed to download the bitstreams to the board type specified are not currently supported by the symbiflow makefiles. \
Please see documentation for more information."; \
fi
clean:
rm -rf ${BUILDDIR}

View File

@ -38,10 +38,9 @@ For example, to build the first design in project F's hello ary designs:
TARGET="arty_35" make -C projf-makefiles/hello/hello-arty/A
To download the bitstream to the board navigate to the generated bitstream and run openocd.
For example to download the first design from hello arty:
To download the bitstream to the board run ``make download``. For example to download the first design from
hello arty, run the following in symbiflows root directory:
.. code-block:: bash
cd hello-build/A
openocd -f ${INSTALL_DIR}/${FPGA_FAM}/conda/envs/${FPGA_FAM}/share/openocd/scripts/board/digilent_arty.cfg -c "init; pld load 0 top.bit; exit"
TARGET="arty_35" make download -C projf-makefiles/hello/hello-arty/A

@ -1 +0,0 @@
Subproject commit 4c4c1b1cc0933b35c4f595344f3e2b9f93f31dab

View File

@ -1,59 +0,0 @@
BOARD_BUILDDIR := ${BUILDDIR}/${SUBPROJECT}
# 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),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
XDC_CMD := -x ${XDC}
.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} 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}

View File

@ -1,10 +1,8 @@
current_dir := ${CURDIR}
proj_f_dir := ${current_dir}/../../../../projf-explore/hello/hello-arty/A
SUBPROJECT := A
BUILDDIR := ${current_dir}/../../../../hello-build
proj_f_dir := ${current_dir}/../../../../third_party/projf-explore/hello/hello-arty/A
TOP := top
SOURCES := ${proj_f_dir}/top.sv
XDC := ${proj_f_dir}/arty.xdc
include ${current_dir}/../../../common.mk
include ${current_dir}/../../../../common/Makefile

View File

@ -2,11 +2,15 @@ Part 1 Design A
===============
This design allows you to turn the first led on the arty board on and off by toggling switch 0.
To build this design run the following command in main symbiflow directory:
To build this design run the following command in the main symbiflow directory:
.. code:: bash
:name: hello-arty-A
TARGET="arty_35" make -C projf-makefiles/hello/hello-arty/A"
You can then find the bitstream under ``symbiflow-examples/hello-build/A``.
You can then download the bitstream by running:
.. code:: bash
TARGET="arty_35" make download -C projf-makefiles/hello/hello-arty/A"

1
third_party/projf-explore vendored Submodule

@ -0,0 +1 @@
Subproject commit cbbb1b42970720c2b5c17d05dbc119a7e1e54ea4