lowRISC / lowRISC/opentitan

[fpga] Tech-specific implementation of `prim_flop_2sync`

Open
#23,556 1 comment 0 reactions 0 assignees View on GitHub
Component:FPGA Component:RTL Type:FutureRelease
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

We currently use the generic implementation of `prim_flop_2sync` on the FPGA. At least for certain use cases, it could be beneficial (higher MTBF for synchronization failures) to use specialized cells such as `XPM_CDC_SINGLE` (see [7 Series FPGA Libraries Guide](https://docs.amd.com/r/en-US/ug953-vivado-7series-libraries/XPM_CDC_SINGLE) and [UltraScale Architecture Libraries Guide](https://docs.amd.com/r/en-US/ug974-vivado-ultrascale-libraries/XPM_CDC_SINGLE)).

Contributor guide

Open the contributing guide

Research direction

Start by locating the generic implementation of `prim_flop_2sync` and examining how FPGA-specific primitives are selected. Read the linked AMD 7 Series and UltraScale Libraries Guide entries for `XPM_CDC_SINGLE`; done should provide a specialized FPGA implementation for the relevant synchronization use cases.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot
Issue type
Feature
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.