AXI的Register Slice 结构及代码

博客介绍了AXI Register Slice的四种配置情况,包括前向Registered(对前向控制路径和对应AXI通道有效负载进行流水线处理)、后向Registered(仅对后向控制路径进行流水线处理)、双向Registered(对前向、后向控制路径及对应AXI通道有效负载都进行流水线处理)和Pass Through Mode(所有AXI通道信号直接从输入连接到输出)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AXI Register Slice可以配置为以下4种情况

1.Forward Registered – Pipeline the forward control path and the corresponding AXI channel payload.

2.Backward Registered – Pipeline the backward control path only.

3.Fully Registered – Pipeline the forward control path, the corresponding AXI channel payload, and the backward control path.

4.Pass Through Mode – All AXI channel signals are directly connected from input to output.

 

一.前向Register

AXI <wbr>Register <wbr>Slice

其中payload可以是cmd或data,valid可以是cmd valid也可以是data valid

always @(posedge clk or negedge rst_n) begin
    if (rst_n == 1'd0)
        valid_dst <= 1'd0;
    else if (valid_src == 1'd1)
        valid_dst <= #`DLY 1'd1;
    else if (ready_dst == 1'd1)
        valid_dst <= #`DLY 1'd0;
end

always @(posedge clk or negedge rst_n) begin
    if (rst_n == 1'd0)
        payload_dst <= 'd0;
    else if (valid_src == 1'd1 && ready_src == 1'd1)
        payload_dst <= #`DLY payload_src;
end

ready_src = (~valid_dst) | ready_dst

二.后向Register

代码如下:

always @(posedge clk or negedge rst_n) begin
    if (rst_n == 1'd0)
        valid_tmp0 <= 1'd0;
    else if (valid_src == 1'd1 && ready_dst == 1'd0 && valid_tmp0 == 1'd0)
        valid_tmp0 <= #`DLY 1'd1;
    else if (ready_dst == 1'd1)
        valid_tmp0 <= #`DLY 1'd0;
end

always @(posedge clk or negedge rst_n) begin
    if (rst_n == 1'd0)
        payload_tmp0 <= 'd0;
    else if (valid_src == 1'd1 && ready_dst == 1'd0 && valid_tmp0 == 1'd0)
        payload_tmp0 <= #`DLY payload_src;
end

assign payload_dst = (valid_tmp0 == 1'd1) ? payload_tmp0 : payload_src;

always @(posedge clk or negedge rst_n) begin
    if (rst_n == 1'd0)
        ready_src <= 1'd0;
    else
        ready_src <= #`DLY ready_dst;
end

三.双向Register

可以用乒乓register的形式 payload的非空信号做valid_dst;payload的非满信号做ready_src

四.pass through

这种情况就是不使用register

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值