Skip to content

Adds support for Digilent Genesys 2 and AMD/Xilinx ZCU104 FPGA boards. - #2372

Open
milovanovic wants to merge 2 commits into
ucb-bar:mainfrom
milovanovic:shells_zcu_nexys_genesys
Open

Adds support for Digilent Genesys 2 and AMD/Xilinx ZCU104 FPGA boards.#2372
milovanovic wants to merge 2 commits into
ucb-bar:mainfrom
milovanovic:shells_zcu_nexys_genesys

Conversation

@milovanovic

Copy link
Copy Markdown
Contributor

Introduces initial support for Digilent Genesys 2 and AMD/Xilinx ZCU104 FPGA development boards.

Related PRs:

Recently Genesys 2 and ZCU104 board support added in FPGA Shells for the Rocket Chip Generator:

Previously Digilent Nexys Video development board support was added through #1616.

Type of change:

  • Bug fix
  • New feature
  • Other enhancement

Impact:

  • RTL change
  • Software change (RISC-V software)
  • Build system change
  • Other

Contributor Checklist:

  • Did you set main as the base branch?
  • Is this PR's title suitable for inclusion in the changelog and have you added a changelog:<topic> label?
  • Did you state the type-of-change/impact?
  • Did you delete any extraneous prints/debugging code?
  • Did you mark the PR with a changelog: label?
  • (If applicable) Did you update the conda .conda-lock.yml file if you updated the conda requirements file?
  • (If applicable) Did you add documentation for the feature?
  • (If applicable) Did you add a test demonstrating the PR?
  • (If applicable) Did you mark the PR as Please Backport?

CI Help:
Add the following labels to modify the CI for a set of features.
Generally, a label added only affect subsequent changes to the PR (i.e. new commits, force pushing, closing/reopening).
See ci:* for full list of labels:

  • ci:fpga-deploy - Run FPGA-based E2E testing
  • ci:local-fpga-buildbitstream-deploy - Build local FPGA bitstreams for platforms that are released
  • ci:disable - Disable CI

@milovanovic
milovanovic force-pushed the shells_zcu_nexys_genesys branch from 103476a to 2643f2a Compare August 26, 2026 14:21
@jimfangx
jimfangx requested a review from doihead August 30, 2026 05:46

@doihead doihead left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me for the most part other than some minor nits regarding formatting to make things look like more idiomatic chipyard.

new testchipip.tsi.WithUARTTSIClient ++
new chipyard.harness.WithSerialTLTiedOff ++
new chipyard.harness.WithHarnessBinderClockFreqMHz(100) ++
new chipyard.config.WithMemoryBusFrequency(100.0) ++

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor nit, do you mind changing these clock frequency keys to use the WithUniformBusFrequencies key for consistency with your main tweaks?

new chipyard.MegaBoomV3Config
)

class WithFPGAFrequency(fMHz: Double) extends Config(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove the WithFPGAFrequency key and set the clock frequency in the WithZCU104Tweaks like NexysVideo, Genesys2, Arty etc?

_outer.sdc.addAsyncPath(Seq(powerOnReset))


_outer.pllReset := (resetIBUF.io.O || powerOnReset)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a specific reason you want to be able to reset the PLLs independently from the rest of the system through an FPGA pin?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants