APB总线

1 apb 协议的特点:低成本 低功耗 低带宽 无流水 完成一次传输最少需要两个周期

2 端口定义:

penable : 使能型号,高电平表示传输开始

pready: 表示slave 还没准备好响应主机,可以用来延长传输

pslerr: 表示传输失败

1 apb 总线

1.1 接口信号

psel: 片选信号

pwrtie: 片选信号有效后,可对外设进行读写操作,1写0读

penable: 当前操作是写操作,在penable为高电平时数据会被写入相应的寄存器;如果时读操作,从机必须在penable使能周期提供稳定的数据以供读取。

reg [31:0] con_reg;
//- address decode
assign con_en = (reg_addr == `IC_CON);

//---------------------------------
//-- write and read enable
//-- Generate write and read enable signals from psel,peable and pwrite inputs 
assign wr_en = psel && pwrite && penable;
assign rd_en = psel && (!pwrite) && (!penable);

// con reg write enable
assign con_we = con_en & wr_en;

// con reg write
always@(posedge pclk,negedge presetn) begin
    if(!presetn) begin
        con_reg <= 0;
    end
    else begin
        if(con_we) begin
            con_reg <= ipwdata;
        end
    end
end     

//- apb read data mux 
always@(*) begin
    iprdata = {32{1'b0}};
    case(1'b1)
        con_en: iprdata = con_reg;
        ...
    endcase
end

//- apb read data
always@(posedge pclk,negedge presetn) begin 
    if(!presetn) begin
        prdata <= 0;
    end
    else begin
        if(rd_en) begin
            prdata <= iprdata;
        end
    end
end      

apb每一笔数据的传送,需要两个周期,适合没有流水线架构的设计中。penable 作为数据传递时的启动信号。

APB协议检查

1 当pwrite,penable, paddr 有效时,psel 是有效的.

2 pwdata 有效时,pwrite 有效

3 pready 有效时,penable 有效

4 pslverr 拉高时,psel 和 penable 和 pready 都要为高

5 一旦

1.2 状态机

IDLE SETUP ENABLE

Note:

  1. 完成一次操作后,PENABLE必须置0;
  2. 若后续没有操作,PSEL置0,否则置1;

2 协议验证

2.1 testcase

2.1.1 single transaction

// step1 continous write

// step2 continous read 

// step3 read after write

// step4 read immediately after write

2.1.2 burst transaction

// step1 continous burst write

// step2 continous 

1 single_write

2 single_read

3 single_read_with_wait_state

4 single_write_with_wait_state

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值