Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync cell replacement in Caliptra #315

Closed
DerekWangScaleflux opened this issue Nov 27, 2023 · 7 comments
Closed

Sync cell replacement in Caliptra #315

DerekWangScaleflux opened this issue Nov 27, 2023 · 7 comments

Comments

@DerekWangScaleflux
Copy link

Hi,
I'm trying to replace sync cell in Caliptra with technology specific standard cells.

Is there a list of all the sync cell used ?

Also, I'm seeing places which is using the following RTL to sync, for example:
rvtop.dmi_wrapper.i_dmi_jtag_to_core_sync.rden[2:0]

image

 Will it get updated to use standard cells ?

Best Regards
Derek Wang

@nstewart-amd
Copy link
Contributor

The VeeR dmi_jtag_to_core_sync issue is captured here:
chipsalliance/Cores-VeeR-EL2#51

@nstewart-amd
Copy link
Contributor

@DerekWangScaleflux - Please clarify what you mean by 'Is there a list of all the sync cell used ?'
Do you mean "which src files are modified to insert/replace with per-integrator specific sync cells"?

@nstewart-amd
Copy link
Contributor

nstewart-amd commented Dec 5, 2023

@DerekWangScaleflux

We replace the contents of these with our "integrator specific" sync module.

libs/rtl/caliptra_2ff_sync.sv
caliptra_prim/rtl/caliptra_prim_flop_2sync.sv

@steven-bellock
Copy link
Contributor

@nstewart-amd I think he's asking how you handle

since that module includes both RTL synchronizer and read/write enable logic.

@nstewart-amd
Copy link
Contributor

@nstewart-amd I think he's asking how you handle


since that module includes both RTL synchronizer and read/write enable logic.

@steven-bellock
The VeeR dmi jtag syncrhonizer is captured here:
chipsalliance/Cores-VeeR-EL2#51

As you've noted, it's "all RTL" currently and does not refer to an integrator replaced/replaceable module.
Accordingly, this module will need to "waived" or modified to replace the inferred flops with user synchronizer module.

@nstewart-amd
Copy link
Contributor

See also here: #333

@DerekWangScaleflux
Copy link
Author

Hi,
I have replace with specific cells in the following file:
(1) libs/rtl/caliptra_2ff_sync.sv
(2) caliptra_prim/rtl/caliptra_prim_flop_2sync.sv

  •  Regarding to the sync logic in the following file, will there be any updates ?
    
       (1)  caliptra-rtl/src/riscv_core/veer_el2/rtl/dmi/dmi_jtag_to_core_sync.v
    
  •  And the logic in el2_dbg ( line 277 ):
    

image
Its comments says "synchronize the rst", but why rst_l is connected to din ? It doesn't looks like a standard reset synchronizer.

  •  Beside the previsous mentioned ones, are there other places need to replaced ?
    

Best Regards
Derek Wang

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants