整体架构分析
input output
主要分为:
- ppi相关的icb总线信号, sysper ,aon,qspi0_ro(注意与qspi0的区分) 相关的icb总线信号,
- 与io有关的
- 与irq中断有关的
- 与pll有关的
主要模块
sirv_icb1to16_bus :将输入的ppi_icb总线的信号线按照地址区间进行选择, 分为:
AON - sirv_gnrl_cdc_tx sirv_gnrl_cdc_rx
HCLKGEN
GPIOA - sirv_gnrl_icb2apb apb_gpio
UART0
QSPI0 - sirv_flash_qspi_top(包含qspi0_ro相关总线)
PWM
UART1
QSPI1
I2C0
UART2
QSPI2
I2C1
SysPer
GPIOB
关键信息解读
sirv_gnrl_icb2apb
将icb协议转换为apb协议,其中关键点在于apb没有handshake, 所以rsp通道中,slave没有icb_rsp_valid, 需要我们根据 apb_prdata构造相应的icb_rsp_valid线(具体如何实现没看懂).
apb_gpio
关键在于对下面代码的理解:
always @(posedge HCLK or negedge HRESETn) begin
if (~HRESETn) begin
r_gpio_sync0 <= &#