prim_cg_req
Drive Q-Channel qreq_no from qactive_i, qaccept_ni, and qdeny_i.
qreq_no is the active-low quiescence request: it follows qactive_i, so it falls, asking for the clock to stop, once the device is idle. After a deny, hold qreq_no high (request withdrawn) for DENY_DELAY cycles before it follows qactive_i again; an accept clears the hold. HysteresisW sizes the deny-hold counter.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
DENY_DELAY | int unsigned | 1 | Cycles to hold after a deny before reasserting. |
HysteresisW | int unsigned | (DENY_DELAY <= 1) ? 1 : $clog2(DENY_DELAY+1) | Deny-hold counter width. |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | Q-Channel clock. |
rst_ni | input | logic | Async reset, active-low. |
qactive_i | input | logic | Device wants the clock. |
qaccept_ni | input | logic | Device accepted the quiescence request, active-low. |
qdeny_i | input | logic | Device denied the quiescence request; starts the deny hold. |
qreq_no | output | logic | Quiescence request to the device, active-low; low asks for the clock to stop. |