story · 2021年03月22日

打拍优化时序不像听起来那么简单

如果你参加过IC校招面试,自然会被问到“setup/hold的概念,以及setup/hold违例怎么办?”

这时候,你肯定会立马在脑海中从打拍或者插buffer两个答案中选一个。但是在实际项目中,往往没有这么简单。举一个实际的场景:

image.png
AXI master和AXI slave这一簇信号出现setup时序违例怎么办?

1、从AXI master 到AXI slave 出现setup违例;

2、从AXI slave 到AXI master出现setup违例;

3、两者都出现setup时序违例。

所以AXI master和AXI slave之间的打拍会存在4中模式:

Forward Registered :对valid和payload路打拍

Backward Registered :对ready路打拍

Fully Registered :同时对valid/payload路和ready路打拍

Pass Through Mode:Bypass,均不打拍

这个问题没那么容易或者说不能够直接打拍,是因为这一簇信号遵循valid-ready协议,需要打拍的信号间存在时序的耦合

所以问题就简化成如何在遵循valid -ready协议的master和slave 之间完成“打拍”,或者说在打拍的同时处理valid-ready协议。

Forward Registered

image.png

always @(posedge clk or negedge rst_n)begin

image.png

现在来分析下上述Forward Registered 打拍代码的几个输出端口:

valid\_dst:在master发请求(拉高valid\_src)时拉高valid\_dst,直到当前master没有valid请求并且slave可以接收请求(拉高ready\_dst)时拉低valid\_dst,表示一次传输完成。

payload\_dst:在master发请求(拉高valid\_src),并且前面没有请求、请求已经被接收或者正在被接收时将payload\_src打拍赋给payload\_dst。

其实master本身也会遵循valid-ready协议,payload\_src和valid\_src做同样处理就行,即也可以在(valid\_src == 1'd1 && ready\_src == 1'd0)时进行赋值,因为此时payload\_src输入应该约束保持原始数据。

ready\_src:register slice或者slave可以接收数据时拉高ready\_src.

Backward Registered

image.png

always @(posedge clk or negedge rst_n)begin

Backward Registered 打拍相比较Forward Registered 会复杂点,因为存在slave没有ready时master发来请求,需要暂存payload的场景。

image.png

现在来分析下上述Backward Registered打拍代码的几个输出端口:

ready\_src:对ready通路直接进行打拍。

valid\_dst:当slave没有ready,master发来请求时拉高标志位valid\_tmp0,表示下一次slave准备好之后应该从register slice内暂存的payload拿数据

payload\_dst:当slave没有ready,master发来请求时暂存payload到payload\_tmp。最终的payload\_dst根据标志位valid\_tmp0从payload\_tmp和payload\_src之间选择

Fully Registered

类似于,简单理解就是个乒乓BUFFER,使用非空信号做valid\_dst;payload的非满信号做ready\_src

Pass Through Mode

直接相连

通过上述分析,可以使用register slice mode参数化的库,在后端要求AXI BUS打拍时直接调用,而无需重复造轮子。

Reference:

https://blog.csdn.net/cy41302...

作者:XinXin_Hu
原文链接:https://mp.weixin.qq.com/s/8gXX1cBkVnvhBfXevKSBfw
授权转自数字芯片实验室公众号,请勿二次转载。

推荐阅读

更多数字IC设计技术干货等请关注数字芯片实验室专栏。
推荐阅读
关注数
12319
内容数
221
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息