apb/axi异步桥实现

1.基本异步处理电路

1.1电平同步

1.2脉冲同步

现将脉冲变成电平,同步之后再恢复,

1.下面是脉冲展电平的做法

apb/axi异步桥实现

2.下面是电平恢复脉冲

apb/axi异步桥实现

apb/axi异步桥实现

1.3异步fifo

1.4demux同步

DEBUX通过一个同步到目标时钟域的信号作为目标时钟域多比特数据更新的使能信号

2.Qualifier synchronization

apb/axi异步桥实现

其实和demux很相像,先选择一个qualif的singal做同步,同步到ck2之后,用该信号做其他数据的选通信号。

3.apb2apb的异步桥

apb的信号中只有psel和pready会做sync,其他都不直接sync

假设apb2apb的clk_1域为slave 端,需要同步到clk_2域master端

psel_s/penalbe_s/pwrite_s/paddr_s/pwdata_s 需要同步到clk_2

pready_m/prdata_m/pslverr_m需要同步到clk_1

3.1 使用异步fifo的同步形式

这种情况比较简单,但是资源占的较多

3.2Qualifier synchronization 策略

slave--->master过程如下:

1.将psel_s&(~penable_s)这样一个pulse signal 经过脉冲同步到clk_2,为pulse_d

2.用pulse_d拉高psel_m,用psel_m & penable_m & pready_m 拉低psel_m

3.用pulse_d_ff1拉高penable_m,用psel_m & penable_m & pready_m 拉低penable_m

4.pwrite_m/paddr_m/pwdata_m直接赋值

apb/axi异步桥实现

master--->slave过程如下:

1.将psel_m & penable_m & pready_m形成的pulse 信号同步到clk_1做pready_s

2.用psel_m & penable_m & pready_m对prdata_m在clk_2域锁存,锁存的信号直接作为clk_1的prdata_s

apb/axi异步桥实现

3.用psel_m & penable_m & pready_m对pslverr_m在clk_2域锁存,锁存的信号直接作为clk_1的pslverr_s(和prdata_s一样)

apb/axi异步桥实现

4.其他AXI/AHB的桥在异步处理上类似于apb2apb的异步桥