AHB

一、信号定义

AHB_第1张图片

AHB_第2张图片

以下是有多个master时由arbiter产生的信号,一般在one master - one slave project中用不上;

AHB_第3张图片

判断跨1k: 当地址ADDR_plus_burst[10:0] 的bit10为1时,即ADDR_plus_burst[10]=1, cross_1k_byte=1;

判断跨4k:当地址ADDR_plus_busrt[12:0] 的bit12为1时,即ADDR_plus_burst[12]=1, cross_4k_byte=1;

HADDER: Master->Slave, 32bit地址线;

HTRANS[1:0]:Master->Slave , 当前transfer的类型,有NONSEQUENTIAL(2'b10), SEQUENTIAL(2'b11), IDLE(2'b00), BUSY(2'b01);

HWRITE:   Master-> Slave,  HIGH: master向slave写数据,HWDATA;  Low: Master向Slave读数据,HRDATA;

HSIZE[2:0]: Master->Slave, 表示transfer的size,即发一次cmd之后经过一次burst传输后addr增加的值。HSIZE和HBURST一起来决定一次burst传输后的address boundart for wrapping bursts; 

HBURST[2:0]: AHB 只支持4,8,16 以及SINGLE和INCR的burst, 如果是SINGLE,则一个cmd只有一次beat,每次beat就是一个transfer,传输bus宽度的数据;如果是WRAP4,则一个cmd对应有4个beat,每个beat传bus宽度的data;

eg. HWDATA[31:0](bus位宽4byte),HSIZE=Word(每个beat地址增加一个word,即4byte),HBURST[2:0]= INC4,(一次cmd有4个beat传输,每个beat传4byte data), 初始地址是0X38,则4次地址分别是0x38,0x3c,0x40,0x44, 即发起一次cmd后,进行burst传输,共有4个beat,每拍传4byte数据,一个busrt就传16byte 数据;

你可能感兴趣的:(AHB)