1、AXI信号如何打拍
通常block的input和output信号存在时序问题时,我们通常采用寄存器打拍的方式,在两个block直接插入reg,从而解决时序问题。
但是很多信号比较特殊不能随意打拍,例如。AXI信号,握手信号等。此类信号有更高的要求。比如AXI总线中的slave_axi_awready表示写地址通道已经准备好,能够接受master写地址了。此类信号具有很高的时序要求,不能随意使用寄存器打拍,否则就会出现在slave端口已经将slave_axi_awready拉低,而在master端口存在延时认为awready为高而导致继续发waddr,从而导致waddr数据丢失。
Axi总线打拍模块通常会采用特殊设计的IP模块,将所有axi总线信号互联到axi打拍ip上,起到一个桥接的作用,能够解决时序问题。
2、mdio信号不允许打拍
还有一类信号是不允许打拍的,例如mdio信号。
Mdio协议是一种简单的低速接口协议,规定了master和slave共同驱动一根信号线,因此存在如下情况:在T0周期由master驱动,在下一个周期,即T1周期由slave驱动。因此mdio信号不允许打拍,设计上只能将相关的逻辑放置在管脚附件,从而减少走线延时。因为mdio是低速接口协议,时钟通常比较低,一般在100MHz以内,因此时序违例的情况也很少见。