chipsalliance / Cores-VeeR-EL2

VeeR EL2 Core
https://chipsalliance.github.io/Cores-VeeR-EL2/html/
Apache License 2.0
243 stars 73 forks source link

Replacing hand instantiated synchronizer flops #103

Open nstewart-amd opened 1 year ago

nstewart-amd commented 1 year ago

re: module rvsyncss, module rvsyncss_fpga

"lib/beh_lib.sv"

  1. Why do we have a multibit wide synchronizer with no handshake mechanism? You can't reliably synchronize a multibit bus unless it's grey-coded.

  2. A single bit synchronizer must be of configurable depth and/or readily replaceable by integrator specific synchronizers. 2-bit depth synchronizers may not comply with integrator/foundry design rules or practice.

Recommendation: Add define for synchronizer depth and/or define for ready replacement of the synchronizers by the integrator.

algrobman commented 1 year ago

these were meant to "bungle" independent wires to reduce code typing . they are instantiating dual flop synchronizer modules, which can be replaced by a physical library cell.