书接上文,在生成好ahb总线之后,我们为了使cm3访问到存储,需要使用cmsdk中提供的cmsdk_ahb_to_sram来对sram进行桥接
一.接线分析
首先分析接口,下面的接口是ahb总线的接从机的接口,
// Output port MI0 (inputs from slave 0)
input [31:0] HRDATAM0; // Read data bus32位地址线 有对应端口
input HREADYOUTM0; // HREADY feedback输入ready信号,由sram提供,接入总线有对应端口
input HRESPM0; // Transfer response有对应端口
input [31:0] HRUSERM0; // Read-data USER signals
// Output port MI0 (outputs to slave 0)
output HSELM0; // Slave Select 有对应端口
output [31:0] HADDRM0; // Address bus有对应端口
output [1:0] HTRANSM0; // Transfer type有对应端口
output HWRITEM0; // Transfer direction有对应端口
output [2:0] HSIZEM0; // Transfer size有对应端口
output [2:0] HBURSTM0; // Burst type
output [3:0] HPROTM0; // Protection control
output [31:0] HWDATAM0; // Write data有对应端口
output HMASTLOCKM0; // Locked Sequence
output HREADYMUXM0; // Transfer done有对应端口
output [31:0] HAUSERM0; // Address USER signals
output [31:0] HWUSERM0; // Write-data USER signals
随后查看需要连接的器件接口
input wire HSEL, // AHB peripheral select有对应端口
input wire HREADY, // AHB ready input有对应端口
input wire [1:0] HTRANS, // AHB transfer type有对应端口
input wire [2:0] HSIZE, // AHB hsize有对应端口
input wire HWRITE, // AHB hwrite有对应端口
input wire [AW-1:0] HADDR, // AHB address bus有对应端口
input wire [31:0] HWDATA, // AHB write data bus有对应端口
output wire HREADYOUT, // AHB ready output to S->M mux有对应端口
output wire HRESP, // AHB response有对应端口
output wire [31:0] HRDATA, // AHB read data bus有对应端口
input wire [31:0] SRAMRDATA, // SRAM Read Data
output wire [AW-3:0] SRAMADDR, // SRAM address
output wire [3:0] SRAMWEN, // SRAM write enable (active high)
output wire [31:0] SRAMWDATA, // SRAM write data
output wire SRAMCS); // SRAM Chip Select (active high)
可以看到器件端口没有空余的脚,ahb总线有
input [31:0] HRUSERM0; // Read-data USER signals
output [2:0] HBURSTM0; // Burst type
output [3:0] HPROTM0; // Protection control
output [31:0] HAUSERM0; // Address USER signals
output [31:0] HWUSERM0; // Write-data USER signals
几个信号,其中有几个是用户使用的总线,可以忽视,burst type和protextion control没接,由于其是output脚,直接悬空即可
二.HREADY信号的处理
按个人理解,HREADY由从机驱动,提供给总线,总线会将正在通讯的从机的HREADY通过组合逻辑的方式分发给所有设备(主机和从机)
器件的HREADY即为来自总线的feedback
器件的HREADYOUT为来自本地的信号
总线从机端的HREADYOUTM0为来自当前从机的hready
总线从机端的HREADYMUXM0为来自其他从机的hready
按上文的理解即为,HREADY接到HREADYMUXM0
HREADYOUT接到READYOUTM0;