lowRISC / lowRISC/opentitan

[fpga, docs] Guidance on migrating design to a new FPGA

Open
#21,526 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

### Description

I am attempting to migrate the Earl Grey design to a new FPGA platform and am having a number of issues with the bazel build flow "playing nice" with the new target. Would it be possible to add some guidance to the build files and/or documentation to detail what modifications are needed to get an `fpga_myNew` target working?

Additional detail:
For the hardware build side of things, I've managed to get things working by essentially searching everywhere for `cw340` and copying / modifying the build entries to use the `myNew` label. This is getting me up to the point of being able to bazel build the bitstream with test ROM / RMA OTP image.

Unfortunately, I then have both host- and device-side software issues. On the host side, the `opentitantool` isn't able to "see" the board (possibly because the [udev](https://opentitan.org/book/doc/getting_started/install_vivado/index.html#device-permissions-udev-rules) rules aren't mapping properly for the new board, but I'm really not sure - it just reports `Error: Found no USB device`. On the host compilation side, I'm not sure how to get bazel to accept the `myNew` as a valid execution environment. It should also be noted that I tried following the [FPGA setup](https://opentitan.org/book/doc/getting_started/setup_fpga.html) documentation to build the UART smoke test for the `cw340` target, but bazel reports that `//sw/device/tests:uart_smoketest_fpga_cw340_test_rom` is not a target and suggests using just the `cw310` target. Is there a missing step in the documentation to target the `cw340` board?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the FPGA setup documentation and the build entries that reference `cw340`, `cw310`, and `fpga_myNew`. Trace how the target is exposed to host compilation, how `opentitantool` discovers USB devices through the udev rules, and how the UART smoke-test target is named. Done means the required migration steps are documented and the new target's bitstream, host software, USB access, and smoke-test flow are covered.

Written by the indexing model from the issue text.

Assessment

Domain
build-system, documentation, embedded-iot
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.