Function Test fpga-odysseus Tutorials #36

Open
opened 5 years ago by jebba · 4 comments
jebba commented 5 years ago
Owner

Function Test fpga-odysseus Tutorials.

Tests performed on serial number 2.

See:

https://github.com/ulx3s/fpga-odysseus/

PASS:

  • 01-Basics/01-LED

  • 01-Basics/02-Button

  • 01-Basics/03-Counter

  • 01-Basics/04-Trigger

  • 01-Basics/05-Debounce

  • 02-Audio/01-Sound

  • 02-Audio/02-Piano

  • 04-Video/01-Color-HDMI

  • 04-Video/02-Checkers-HDMI

  • 04-Video/03-Tricolore-HDMI

  • 04-Video/04-Text-HDMI

  • 05-Pong/01-Move-HDMI

  • 05-Pong/02-Ball-HDMI

  • 05-Pong/03-Game-HDMI

  • 05-Pong/04-Wall-HDMI

  • 08-RISCV/01-Blinky

Fail:

  • 03-Protocols/01-SerialTX -- Appeared to program ok. No /dev/ttyUSB* device is created. Connecting to the device that gets created on plug in when "blank" with minicom at 115200 8N1 no hard flow/no soft flow, device /dev/bus/usb/001/112 (incrementing) doesn't work either.

  • 03-Protocols/02-Echo -- same as SerialTX.

  • 03-Protocols/03-SPI_Display -- same as SerialTX.

  • 04-Video/05-Buffer-HDMI -- Just drew the letters "ABC". There's also a line a bit left of center in the top row the height of a character.

  • 04-Video/06-Terminal-HDMI -- Built ok. Sync'd to monitor, but just drew a few character-height lines in a few locations.

Untested:

  • 03-Protocols/03-SPI_Display -- Built ok, no SPI display.
  • 04-Video/01-Color -- Built ok, not sure how to test.
  • 04-Video/02-Checkers -- Not sure how to test.
  • 04-Video/03-Tricolore -- Not sure how to test.
  • 04-Video/04-Text -- Not sure how to test.
  • 04-Video/05-Buffer -- Not sure how to test.
  • 04-Video/06-Terminal -- Not sure how to test.
  • 04-Video/07-Sprite -- Not sure how to test.
  • 05-Pong -- Didn't test the non-HDMI versions.
  • 06-CPU -- Built ok, not sure how to test.
  • 07-Computer -- Built ok, not sure how to test.
  • 08-RISCV/02-Console -- Appeared to work, changed LEDs. Not sure how to view console.
Function Test fpga-odysseus Tutorials. Tests performed on serial number 2. See: https://github.com/ulx3s/fpga-odysseus/ PASS: * 01-Basics/01-LED * 01-Basics/02-Button * 01-Basics/03-Counter * 01-Basics/04-Trigger * 01-Basics/05-Debounce * 02-Audio/01-Sound * 02-Audio/02-Piano * 04-Video/01-Color-HDMI * 04-Video/02-Checkers-HDMI * 04-Video/03-Tricolore-HDMI * 04-Video/04-Text-HDMI * 05-Pong/01-Move-HDMI * 05-Pong/02-Ball-HDMI * 05-Pong/03-Game-HDMI * 05-Pong/04-Wall-HDMI * 08-RISCV/01-Blinky Fail: * 03-Protocols/01-SerialTX -- Appeared to program ok. No `/dev/ttyUSB*` device is created. Connecting to the device that gets created on plug in when "blank" with minicom at 115200 8N1 no hard flow/no soft flow, device /dev/bus/usb/001/112 (incrementing) doesn't work either. * 03-Protocols/02-Echo -- same as SerialTX. * 03-Protocols/03-SPI_Display -- same as SerialTX. * 04-Video/05-Buffer-HDMI -- Just drew the letters "ABC". There's also a line a bit left of center in the top row the height of a character. * 04-Video/06-Terminal-HDMI -- Built ok. Sync'd to monitor, but just drew a few character-height lines in a few locations. Untested: * 03-Protocols/03-SPI_Display -- Built ok, no SPI display. * 04-Video/01-Color -- Built ok, not sure how to test. * 04-Video/02-Checkers -- Not sure how to test. * 04-Video/03-Tricolore -- Not sure how to test. * 04-Video/04-Text -- Not sure how to test. * 04-Video/05-Buffer -- Not sure how to test. * 04-Video/06-Terminal -- Not sure how to test. * 04-Video/07-Sprite -- Not sure how to test. * 05-Pong -- Didn't test the non-HDMI versions. * 06-CPU -- Built ok, not sure how to test. * 07-Computer -- Built ok, not sure how to test. * 08-RISCV/02-Console -- Appeared to work, changed LEDs. Not sure how to view console.
jebba added this to the 3.0.8 milestone 5 years ago
jebba self-assigned this 5 years ago
jebba added the Function label 5 years ago
jebba commented 5 years ago
Poster
Owner

The apio setup in fpga-odysseus isn't quite working. One main reason, I think, is the different FPGA model, which requires a different nextpnr option, namely --um-85k instead of the default --85k.

One kludge up to get most of the way is to change apio thusly:

--- boards.json.orig	2019-03-05 10:17:28.000000000 -0700
+++ boards.json	2019-10-20 16:02:58.862702636 -0600
@@ -314,6 +314,17 @@
       "pid": "6015"
     }
   },  
+  "ulx3s-m85f": {
+    "name": "ULX3S",
+    "fpga": "ECP5-LFE5UM-85F-CABGA381",
+    "programmer": {
+      "type": "ujprog"
+    },
+    "usb": {
+      "vid": "0403",
+      "pid": "6015"
+    }
+  },  
   "versa": {
     "name": "ECP5 Versa",
     "fpga": "ECP5-LFE5UM-45F-CABGA381",
@@ -328,4 +339,4 @@
       "desc": "Lattice ECP5 Versa Board"
     }
   }
-}
\ No newline at end of file
+}

And:

--- fpgas.json.orig	2019-03-05 10:17:28.000000000 -0700
+++ fpgas.json	2019-10-20 16:06:42.061511354 -0600
@@ -293,7 +293,7 @@
   "ECP5-LFE5UM-85F-CABGA381": {
     "arch": "ecp5",
     "type": "lfe5um",
-    "size": "85k",
+    "size": "um-85k",
     "pack": "CABGA381"
   },
   "ECP5-LFE5UM-85F-CABGA554": {

And:

--- apio.ini.orig	2019-10-20 16:16:07.686492790 -0600
+++ apio.ini	2019-10-20 16:16:11.090474623 -0600
@@ -1,3 +1,3 @@
 [env]
-board = ulx3s-25f
+board = ulx3s-m85f

This will allow the apio build command to successfully build. But that builds a .bit file, which I've failed to program to the FPGA so far. So I re-run the ecppack command with --svf foo.svf instead of foo.bit and it builds a foo.svf I can program with openocd.

The apio setup in fpga-odysseus isn't quite working. One main reason, I think, is the different FPGA model, which requires a different `nextpnr` option, namely `--um-85k` instead of the default `--85k`. One kludge up to get most of the way is to change `apio` thusly: <pre> --- boards.json.orig 2019-03-05 10:17:28.000000000 -0700 +++ boards.json 2019-10-20 16:02:58.862702636 -0600 @@ -314,6 +314,17 @@ "pid": "6015" } }, + "ulx3s-m85f": { + "name": "ULX3S", + "fpga": "ECP5-LFE5UM-85F-CABGA381", + "programmer": { + "type": "ujprog" + }, + "usb": { + "vid": "0403", + "pid": "6015" + } + }, "versa": { "name": "ECP5 Versa", "fpga": "ECP5-LFE5UM-45F-CABGA381", @@ -328,4 +339,4 @@ "desc": "Lattice ECP5 Versa Board" } } -} \ No newline at end of file +} </pre> And: <pre> --- fpgas.json.orig 2019-03-05 10:17:28.000000000 -0700 +++ fpgas.json 2019-10-20 16:06:42.061511354 -0600 @@ -293,7 +293,7 @@ "ECP5-LFE5UM-85F-CABGA381": { "arch": "ecp5", "type": "lfe5um", - "size": "85k", + "size": "um-85k", "pack": "CABGA381" }, "ECP5-LFE5UM-85F-CABGA554": { </pre> And: <pre> --- apio.ini.orig 2019-10-20 16:16:07.686492790 -0600 +++ apio.ini 2019-10-20 16:16:11.090474623 -0600 @@ -1,3 +1,3 @@ [env] -board = ulx3s-25f +board = ulx3s-m85f </pre> This will allow the `apio build` command to successfully build. But that builds a `.bit` file, which I've failed to program to the FPGA so far. So I re-run the `ecppack` command with `--svf foo.svf` instead of `foo.bit` and it builds a `foo.svf` I can program with `openocd`.
jebba commented 5 years ago
Poster
Owner

For the earlier tests, I created a .svf file and programmed with openocd. I now have ujprog working and am able to flash the .bit files created earlier OK.

For the earlier tests, I created a `.svf` file and programmed with `openocd`. I now have `ujprog` working and am able to flash the `.bit` files created earlier OK.
jebba commented 5 years ago
Poster
Owner

It also works now to do like ujproj -j FLASH foo.bit to write image to flash which survives reboot.

The non-HDMI video files need SPI video (OLED?).

It also works now to do like `ujproj -j FLASH foo.bit` to write image to flash which survives reboot. The non-HDMI video files need SPI video (OLED?).
Ghost commented 5 years ago

Great!

Yes non-HDMI will display same on OLED

Great! Yes non-HDMI will display same on OLED
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: forksand/fs-ulx3s#36
Loading…
There is no content yet.