Fix FIFO delay parameter propagation in HCI#63
Conversation
|
I gave a look while we were speaking. What I am not super much a fan of is that this is a static information which is "similar" to the min-latency from a given point in the HCI system to memory, but it is not quite that. |
- Propagating FD through the HCI interface makes sure that multi-cycle support is correctly set, and the assertions are checked properly - Adds FD Fifo Depth parameter to package and interfaces - This allows support multiple cycle for HWPE interfaces using the FIFO
0faa4f3 to
a628388
Compare
|
@DanielKellerM: with @sermazz we decided to postpone #61 and #60. So this PR is back on the table, I'll give it a new look in the coming days. |
FrancescoConti
left a comment
There was a problem hiding this comment.
Generally ok, to do:
- explain why the check on
FDis not performed in the static mux (or restore it) - must be rebased on the current
master - must pass the CI
| initial HCI_SIZE_in_intf_size_check_iw : assert(`HCI_SIZE_PARAM(in).IW == in[0].IW); | ||
| initial HCI_SIZE_in_intf_size_check_ew : assert(`HCI_SIZE_PARAM(in).EW == in[0].EW); | ||
| initial HCI_SIZE_in_intf_size_check_ehw : assert(`HCI_SIZE_PARAM(in).EHW == in[0].EHW); | ||
| // initial HCI_SIZE_in_intf_size_check_fd : assert(`HCI_SIZE_PARAM(in).FD == in[0].FD); |
There was a problem hiding this comment.
It would be preferable to check all the asserts here.
Summary:
EXPFIFOparameter inhci_interconnectwould introduce multicycle delays in ther_validsignal, but thehci_core_r_id_filtermodule would trigger incorrect assertions even whenMULTICYCLE_SUPPORTwas active. This created an inconsistency between modules where one parameter was changing what another module should check, without proper parameter propagation.Proposed Solution:
EXPFIFOwithFD(FIFO Depth) parameter: integrated FIFO depth information directly into the HCI package structures for better parameter propagation.FDparameter tohci_size_parameter_tstruct and created helper macros for consistent parameter handling.FDparameter to allhci_core_intfdeclarations throughout the system.FDparameter checks for module port interfaces.These changes are reflected in Neureka's interface: pulp-platform/neureka#36 (comment)