整个slave 的框图如图所示,有三部分组成。
APB slave example包括以下功能:
- 一个简单的APB slave接口。
- 32位数据总线,与字节序无关。 请使用PSTRB信号对单个字节执行写操作。
- 数据传输需要两个时钟周期。
- 4个32bit的读写寄存器。

寄存器列表:

Abstract : APB example slave, support AMBA APB4.
slave is always ready and response is always OKAY.
module cmsdk_apb4_eg_slave #(
// parameter for address width
parameter ADDRWIDTH = 12)
(
// IO declaration
input wire PCLK, // pclk
input wire PRESETn, // reset
// apb interface inputs
input wire PSEL,
input wire [ADDRWIDTH-1:0] PADDR,
input wire PENABLE,
input wire PWRITE,
input wire [31:0] PWDATA,
input wire [3:0] PSTRB,
input wire [3:0] ECOREVNUM, // Engineering-change-order revision bits
// apb interface outputs
output wire [31:0] PRDATA,
output wire PREADY,
output wire PSLVERR);
//------------------------------------------------------------------------------
// internal wires
//------------------------------------------------------------------------------
// Register module interface signals
wire [ADDRWIDTH-1:0] reg_addr;
wire reg_read_en;
wire reg_write_en;
wire [3:0] reg_byte_strobe;
wire [31:0] reg_wdata;
wire [31:0] reg_rdata;
//------------------------------------------------------------------------------
// module logic start
//------------------------------------------------------------------------------
// Interface to convert APB signals to simple read and write controls
cmsdk_apb4_eg_slave_interface
#(.ADDRWIDTH (ADDRWIDTH))
u_apb_eg_slave_interface(
.pclk (PCLK), // pclk
.presetn (PRESETn), // reset
.psel (PSEL), // apb interface inputs
.paddr (PADDR),
.penable

本文详细介绍了一种基于AMBA APB4规范的Slave模块设计,该模块包含四个32位寄存器,支持字节级写入操作,并能够转换APB总线协议为简化寄存器读写协议。
最低0.47元/天 解锁文章
333





