扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

芯片设计时序优化 -- register slice

2025/05/26
4956
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

芯片设计中,经常会遇到时序违例的问题,通常的解决方式就是插入寄存器,也就是打拍。但对于握手信号来说(例如AXI总线中的ready和valid信号),直接打拍会导致valid和ready不满足正确的握手关系,从而导致数据漏采样或者重复采样。

因此,需要使用特殊的方法来对握手信号进行打拍。对AXI总线中握手信号的打拍通常称为AXI register slice,可以降低关键路径的组合逻辑延迟,提高系统工作频率。register slice通常有四种模式:

Pass Through:直连,也就是不使用register slice。

Forward Registered(前向打拍) :对valid和data信号打拍。

Backward Registered(后向打拍) :对ready信号打拍。

Full Registered(双向打拍):同时对valid,data信号和ready信号进行打拍。

1. Pass Through

不进行打拍,即不插入寄存器。

2. Forward registered

Forward指的是从数据发送方 (source) 到数据接收方 (destination) 之间的数据传递方向。Forward register是同时对valid信号和payload信号进行打拍。Forward打拍的电路框图如下:

forward registered

verilog代码示例如下,其中valid_src、data_src、ready_src这三个信号是发送端(source)使用的,而valid_dst、data_dst、ready_dst这三个信号是接收端(destination)使用的。

valid_dst用于对发送端的valid_src进行打拍(锁存),它在ready_src为1时锁存valid_src,ready_src为1有以下两种情况:

valid_dst为0:此时valid_dst和data_dst寄存器没有有效数据,可以接收发送端的valid_src。

ready_dst为1:此时接收端准备好了接收数据。若valid_dst为0:表示接收方先准备好接收数据,而valid_dst和data_dst寄存器没有有效数据,可以接收valid_src。若valid_dst为1:发送方和接收方都完成了一次握手,valid_dst和data_dst可以更新。

data_dst是对数据进行打拍(锁存),条件是发送端完成握手(valid_src和ready_src均有效)。这里的数据通路没有用于控制逻辑,因此可以不带复位端,以节省面积。

3. Backward registered

Backward指的是接收端向发送端发送ready信号的方向。需要注意,不能只对ready信号打拍,而不对valid和data信号进行处理,这样会导致数据漏采或重复采样。

正确的方法是为发送端的valid和data信号也打拍(进行锁存),当发送端握手成功但接收端没有ready时,可以锁存发送端发过来的数据。等接收端ready后,可以接收到暂存的数据。backward registered的电路框图如下所示:

backward registered

verilog代码示例如下:

valid_r:  对发送端的valid_src进行锁存,会在以下情况下置1或置0:

当接收端ready_dst为1时,置0,此时接收端可以接收数据,不需要暂存。

当发送端valid_src和ready_src有效,且接收端ready_dst无效,此时需要锁存数据,将valid_r置1。

data_r:和valid_dst的逻辑类似,当满足valid_src & ready_src & ~ready_dst时,锁存发送端的data_src。

ready_src:通过以下逻辑控制

复位值为1,一旦发送端准备好数据,即可暂存data_src。

接收端ready_dst有效时,置1。

发送端valid_src有效时,置0。

valid_dst和data_dst这两个信号根据ready_src的值来进行赋值:

当ready_src为1时,接收端或者可以接收数据,赋值为valid_src和data_src。

当ready_src为0时,此时暂存寄存器中的数据有效,因此赋值为valid_r和data_r。

4. Full registered

Full Registered是对valid/data和ready都进行时序优化的寄存器,将Forward Registered和Backward Registered组合在一起即可得到Full Registered,电路框图如下图所示:

full registered

参考内容:

Synopsys DesignWare DW_axi_rs databook

ic基础|时序篇:握手协议valid和ready的时序优化

相关推荐