From 8709206c4ff02a8071304914300d935569ed787e Mon Sep 17 00:00:00 2001 From: Alexey Vazhnov Date: Thu, 22 Jul 2021 00:21:13 +0200 Subject: [PATCH 1/5] Basic/FOMU/FOMU_blink/makeit.sh: start recognizing FOMU_REV, based on https://github.com/im-tomu/fomu-workshop/blob/master/hdl/board.mk --- Basic/FOMU/FOMU_blink/makeit.sh | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Basic/FOMU/FOMU_blink/makeit.sh b/Basic/FOMU/FOMU_blink/makeit.sh index a53d2e83..1ae63bb1 100755 --- a/Basic/FOMU/FOMU_blink/makeit.sh +++ b/Basic/FOMU/FOMU_blink/makeit.sh @@ -2,6 +2,46 @@ set -o nounset set -o errexit +# Based on fomu-workshop/hdl/board.mk: +PCF_PATH="../../../pcf" +test -v FOMU_REV || { echo 'error Unrecognized FOMU_REV value. must be "evt1", "evt2", "evt3", "pvt", or "hacker"'; exit 1; } +case "$FOMU_REV" in + evt1) + YOSYSFLAGS="-D EVT=1 -D EVT1=1 -D HAVE_PMOD=1" + PNRFLAGS="--up5k --package sg48" + PCF="$PCF_PATH/fomu-evt2.pcf" + ;; + evt2) + YOSYSFLAGS="-D EVT=1 -D EVT2=1 -D HAVE_PMOD=1" + PNRFLAGS="--up5k --package sg48" + PCF="$PCF_PATH/fomu-evt2.pcf" + ;; + evt3) + YOSYSFLAGS="-D EVT=1 -D EVT3=1 -D HAVE_PMOD=1" + PNRFLAGS="--up5k --package sg48" + PCF="$PCF_PATH/fomu-evt3.pcf" + ;; + hacker) + YOSYSFLAGS="-D HACKER=1" + PNRFLAGS="--up5k --package uwg30" + PCF="$PCF_PATH/fomu-hacker.pcf" + ;; + pvt) + YOSYSFLAGS="-D PVT=1" + PNRFLAGS="--up5k --package uwg30" + PCF="$PCF_PATH/fomu-pvt.pcf" + ;; + *) + echo 'error Unrecognized FOMU_REV value. must be "evt1", "evt2", "evt3", "pvt", or "hacker"' + exit 1 + ;; +esac + +echo "$YOSYSFLAGS" +echo "$PNRFLAGS" +echo "$PCF" +exit 0 + yosys -DPVT -p 'synth_ice40 -top top -json blink.json' blink.v nextpnr-ice40 --up5k --package uwg30 --pcf fomu-pvt.pcf --json blink.json --asc blink.asc icepack blink.asc blink.bit From d33322ab5fdf82df3423b6ddd6d7e88bf0443d7b Mon Sep 17 00:00:00 2001 From: Alexey Vazhnov Date: Thu, 22 Jul 2021 00:29:56 +0200 Subject: [PATCH 2/5] FemtoRV/BOARDS/fomu-*.pcf files from https://github.com/im-tomu/fomu-workshop/tree/master/pcf --- FemtoRV/BOARDS/fomu-evt2.pcf | 37 ++++++++++++++++++++++++++++++ FemtoRV/BOARDS/fomu-evt3.pcf | 41 ++++++++++++++++++++++++++++++++++ FemtoRV/BOARDS/fomu-hacker.pcf | 16 +++++++++++++ FemtoRV/BOARDS/fomu-pvt.pcf | 3 +-- 4 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 FemtoRV/BOARDS/fomu-evt2.pcf create mode 100644 FemtoRV/BOARDS/fomu-evt3.pcf create mode 100644 FemtoRV/BOARDS/fomu-hacker.pcf diff --git a/FemtoRV/BOARDS/fomu-evt2.pcf b/FemtoRV/BOARDS/fomu-evt2.pcf new file mode 100644 index 00000000..2c7ca0ac --- /dev/null +++ b/FemtoRV/BOARDS/fomu-evt2.pcf @@ -0,0 +1,37 @@ +set_io rgb0 39 +set_io rgb1 40 +set_io rgb2 41 +set_io pmoda_1 25 +set_io pmoda_2 26 +set_io pmoda_3 27 +set_io pmoda_4 28 +set_io pmod_1 25 +set_io pmod_2 26 +set_io pmod_3 27 +set_io pmod_4 28 +set_io clki_alt 20 +set_io clki 44 +set_io user_1 48 +set_io user_2 47 +set_io user_3 46 +set_io user_4 45 +set_io user_5 42 +set_io user_6 38 +set_io spi_mosi 14 +set_io spi_miso 17 +set_io spi_clk 15 +set_io spi_io2 18 +set_io spi_io3 19 +set_io spi_cs 16 +set_io uart_tx 21 +set_io uart_rx 13 +set_io usb_dn 37 +set_io usb_dp 34 +set_io usb_dp_pu 35 +set_io usb_dn_pu 36 +set_io dbg_1 20 +set_io dbg_2 12 +set_io dbg_3 11 +set_io dbg_4 23 +set_io dbg_5 10 +set_io dbg_6 9 diff --git a/FemtoRV/BOARDS/fomu-evt3.pcf b/FemtoRV/BOARDS/fomu-evt3.pcf new file mode 100644 index 00000000..a1b2986f --- /dev/null +++ b/FemtoRV/BOARDS/fomu-evt3.pcf @@ -0,0 +1,41 @@ +set_io rgb0 39 +set_io rgb1 40 +set_io rgb2 41 +set_io pmod_1 28 +set_io pmod_2 27 +set_io pmod_3 26 +set_io pmod_4 23 +set_io pmoda_1 28 +set_io pmoda_2 27 +set_io pmoda_3 26 +set_io pmoda_4 23 +set_io clki_alt 20 +set_io clki 44 +set_io user_1 48 +set_io user_2 47 +set_io user_3 46 +set_io user_4 45 +set_io user_5 42 +set_io user_6 38 +set_io pmodb_1 48 +set_io pmodb_2 47 +set_io pmodb_3 46 +set_io pmodb_4 45 +set_io spi_mosi 14 +set_io spi_miso 17 +set_io spi_clk 15 +set_io spi_io2 18 +set_io spi_io3 19 +set_io spi_cs 16 +set_io uart_tx 21 +set_io uart_rx 13 +set_io usb_dn 37 +set_io usb_dp 34 +set_io usb_dp_pu 35 +set_io usb_dn_pu 36 +set_io dbg_1 20 +set_io dbg_2 12 +set_io dbg_3 11 +set_io dbg_4 25 +set_io dbg_5 10 +set_io dbg_6 9 diff --git a/FemtoRV/BOARDS/fomu-hacker.pcf b/FemtoRV/BOARDS/fomu-hacker.pcf new file mode 100644 index 00000000..e2582d06 --- /dev/null +++ b/FemtoRV/BOARDS/fomu-hacker.pcf @@ -0,0 +1,16 @@ +# Configuration for the Fomu hacker board. +set_io rgb0 A5 # Blue LED +set_io rgb1 B5 # Green LED +set_io rgb2 C5 # Red LED +set_io clki F5 # Clock input from 48MHz Oscillator +set_io spi_mosi F1 # SPI Master Out, Slave In Pin +set_io spi_miso E1 # SPI Master In, Slave Out Pin +set_io spi_clk D1 # SPI Master Clock Output Pin +set_io spi_cs C1 # SPI Chip Select +set_io user_1 F4 # User touch pad 1 +set_io user_2 E5 # User touch pad 2 +set_io user_3 E4 # User touch pad 3 +set_io user_4 F2 # User touch pad 4 +set_io usb_dn A2 # USB D- pad +set_io usb_dp A4 # USB D+ pad +set_io usb_dp_pu D5 # USB D+ pull up (indicates device connected) diff --git a/FemtoRV/BOARDS/fomu-pvt.pcf b/FemtoRV/BOARDS/fomu-pvt.pcf index 718f4552..68da2bbc 100644 --- a/FemtoRV/BOARDS/fomu-pvt.pcf +++ b/FemtoRV/BOARDS/fomu-pvt.pcf @@ -9,7 +9,7 @@ set_io pmoda_1 E4 set_io pmoda_2 D5 set_io pmoda_3 E5 set_io pmoda_4 F5 -set_io pclk F4 +set_io clki F4 set_io user_1 E4 set_io user_2 D5 set_io user_3 E5 @@ -27,4 +27,3 @@ set_io spi_cs C1 set_io usb_dn A2 set_io usb_dp A1 set_io usb_dp_pu A4 -set_io RESET E4 From 6c02680b334d65761d2c9c1730770e9c3e451a77 Mon Sep 17 00:00:00 2001 From: Alexey Vazhnov Date: Thu, 22 Jul 2021 00:33:17 +0200 Subject: [PATCH 3/5] Basic/FOMU/FOMU_blink/makeit.sh: fix PCF_PATH, start using YOSYSFLAGS, PNRFLAGS, PCF --- Basic/FOMU/FOMU_blink/makeit.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Basic/FOMU/FOMU_blink/makeit.sh b/Basic/FOMU/FOMU_blink/makeit.sh index 1ae63bb1..48ad7ac6 100755 --- a/Basic/FOMU/FOMU_blink/makeit.sh +++ b/Basic/FOMU/FOMU_blink/makeit.sh @@ -3,7 +3,7 @@ set -o nounset set -o errexit # Based on fomu-workshop/hdl/board.mk: -PCF_PATH="../../../pcf" +PCF_PATH="../../../FemtoRV/BOARDS" test -v FOMU_REV || { echo 'error Unrecognized FOMU_REV value. must be "evt1", "evt2", "evt3", "pvt", or "hacker"'; exit 1; } case "$FOMU_REV" in evt1) @@ -40,10 +40,13 @@ esac echo "$YOSYSFLAGS" echo "$PNRFLAGS" echo "$PCF" +ls -l "$PCF" exit 0 -yosys -DPVT -p 'synth_ice40 -top top -json blink.json' blink.v -nextpnr-ice40 --up5k --package uwg30 --pcf fomu-pvt.pcf --json blink.json --asc blink.asc +# shellcheck disable=SC2086 # Double quote to prevent globbing and word splitting. +yosys $YOSYSFLAGS -p 'synth_ice40 -top top -json blink.json' blink.v +# shellcheck disable=SC2086 # Double quote to prevent globbing and word splitting. +nextpnr-ice40 $PNRFLAGS --pcf "$PCF" --json blink.json --asc blink.asc icepack blink.asc blink.bit cp blink.bit blink.dfu dfu-suffix -v 1209 -p 70b1 -a blink.dfu From c56ad90937694a4f16759811c2b34fc2b8ab7162 Mon Sep 17 00:00:00 2001 From: Alexey Vazhnov Date: Thu, 22 Jul 2021 00:37:35 +0200 Subject: [PATCH 4/5] Basic/FOMU/FOMU_blink/makeit.sh: works fine with FOMU_REV=hacker --- Basic/FOMU/FOMU_blink/makeit.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Basic/FOMU/FOMU_blink/makeit.sh b/Basic/FOMU/FOMU_blink/makeit.sh index 48ad7ac6..67e805b4 100755 --- a/Basic/FOMU/FOMU_blink/makeit.sh +++ b/Basic/FOMU/FOMU_blink/makeit.sh @@ -2,7 +2,7 @@ set -o nounset set -o errexit -# Based on fomu-workshop/hdl/board.mk: +# Based on https://github.com/im-tomu/fomu-workshop/blob/master/hdl/board.mk PCF_PATH="../../../FemtoRV/BOARDS" test -v FOMU_REV || { echo 'error Unrecognized FOMU_REV value. must be "evt1", "evt2", "evt3", "pvt", or "hacker"'; exit 1; } case "$FOMU_REV" in @@ -37,12 +37,6 @@ case "$FOMU_REV" in ;; esac -echo "$YOSYSFLAGS" -echo "$PNRFLAGS" -echo "$PCF" -ls -l "$PCF" -exit 0 - # shellcheck disable=SC2086 # Double quote to prevent globbing and word splitting. yosys $YOSYSFLAGS -p 'synth_ice40 -top top -json blink.json' blink.v # shellcheck disable=SC2086 # Double quote to prevent globbing and word splitting. From cd2101cce10988079d293891f840bfe92e36b5ca Mon Sep 17 00:00:00 2001 From: Alexey Vazhnov Date: Thu, 22 Jul 2021 09:57:53 +0200 Subject: [PATCH 5/5] FemtoRV/TUTORIALS/FOMU.md: use 'FOMU_REV=pvt' by default --- FemtoRV/TUTORIALS/FOMU.md | 1 + 1 file changed, 1 insertion(+) diff --git a/FemtoRV/TUTORIALS/FOMU.md b/FemtoRV/TUTORIALS/FOMU.md index 473c8bf7..2691b973 100644 --- a/FemtoRV/TUTORIALS/FOMU.md +++ b/FemtoRV/TUTORIALS/FOMU.md @@ -13,6 +13,7 @@ Test a simple FOMU design (optional) ``` $ cd learn-fpga/Basic/FOMU/FOMU_blink +$ export FOMU_REV=pvt $ ./makeit.sh ```