lowRISC / lowRISC/opentitan

prim_pulse_sync.sv functional issues

Open
#14,282 2 comments 0 reactions 2 assignees View on GitHub

@andreaskurth is already working on this.

Since Sep 7, 2026.

Component:RTL Earlgrey-PROD Triaged IP:prim
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

The current implementation of the prim_pulse_sync.sv present 2 functional issues
* The source and dest resets are not effecting eachother and if only one is applied, the toggle state is not initilized which creats a wrong pulse. This issue was detected in the RNG logic which has 2 clocks system, RNG (SYS) and RCLK (TLUL).
* When the cell is handling a pulse and a new one is introduced an ASSERT is issued, if enabled. The new pulse is not blocked and breaks the first puls function. The ASSERT will Error if enabled by after synthesis it will not! Blocking and busy indication is needed to make sure the cell function is not broken.

An alternative cell, ast_pulse_sync.sv was added to the AST to address the above issues.

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.