CDL Modules
|
Files | |
file | csr_target_apb.cdl |
Pipelined CSR request/response interface to APB slave interface. | |
module csr_target_apb::csr_target_apb | ( | clock | clk, |
input bit | reset_n, | ||
input t_csr_request | csr_request, | ||
output t_csr_response | csr_response, | ||
output t_apb_request | apb_request, | ||
input t_apb_response | apb_response, | ||
input bit | csr_select[16] | ||
) |
The documentation of the pipelined CSR interface itself is in other files (at this time, csr_target_csr.cdl).
This module provides a CSR target interface, and drives out an APB master request bus. It can therefore be used at the 'leaf' end of a CSR interface tree, to access standard APB peripherals.
The module must be told which csr_select
it should be listening for on the CSR target interface; it converts any read or write to an APB master request (with top 16 bits of paddr zeroed) to the APB request. Hence the APB target attached to this module is accessed by CSR requests with the select set to csr_select
.
The module is lightweight, effectively being a registered end-point on the CSR interface and a registered APB request.
[in] | clk | Clock for the CSR interface, possibly gated version of master CSR clock |
[in] | reset_n | Active low reset |
[in] | csr_request | Pipelined csr request interface input |
[out] | csr_response | Pipelined csr request interface response |
[out] | apb_request | APB request to target |
[in] | apb_response | APB response from target |
[in] | csr_select | Hard-wired select value for the client |