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:
- 完成一次操作后,PENABLE必须置0;
- 若后续没有操作,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文章来源:https://www.toymoban.com/news/detail-685005.html
4 single_write_with_wait_state文章来源地址https://www.toymoban.com/news/detail-685005.html
到了这里,关于APB总线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!