FPGA完成AXI4总线的读写
FPGA。完结AXI4总线的读写_如何写axi4逻辑。
一、AXI4。 接口。描绘。
通道。 | 信号。 | 源。 | 信号描绘。 |
大局信号。 | ac。lk。 | 主机。 | 大局。时钟。 |
aresetn。 | 主机。 | 大局复位,低有用。 | |
写通道地址与操控信号通道。 | M_AXI_WR_awid[3:0]。 | 主机。 | 写地址ID,用来标志一组写信号。 |
M_AXI_WR_aw。ad。dr[31:0]。 | 主机。 | 写地址,给出一次写突发传输的写地址。 | |
M_AXI_WR_awlen[7:0]。 | 主机。 | 突发长度,给出突发传输的次数。 | |
M_AXI_WR_awsize[2:0]。 | 主机。 | 突发巨细,给出每次突发传输的字节数。 | |
M_AXI_WR_awbu。rs。t[1:0]。 | 主机。 | 突发类型。 | |
M_AXI_WR_awlock。 | 主机。 | 总线锁信号,可提供操作的原子性。 | |
M_AXI_WR_awcache[3:0]。 | 主机。 | 内存类型,标明一次传输是怎样经过体系的。 | |
M_AXI_WR_awprot[2:0]。 | 主机。 | 维护类型,标明一次传输的特权级及安全等级。 | |
M_AXI_WR_awqos[3:0]。 | 主机。 | 质量服务QoS。 | |
M_AXI_WR_awvalid。 | 主机。 | 有用信号,标明此通道的地址操控信号有用。 | |
M_AXI_WR_awready。 | 从机。 | 标明“从”可以接纳地址和对应的操控信号。 | |
写通道数据通道。 | M_AXI_WR_wdata[63:0]。 | 主机。 | 写数据。 |
M_AXI_WR_wstrb[7:0]。 | 主机。 | 写数据有用的字节线,用来标明哪8bits数据是有用的。 | |
M_AXI_WR_wlast。 | 主机。 | 标明此次传输是最终一个突发传输。 | |
M_AXI_WR_wvalid。 | 主机。 | 写有用,标明此次写有用。 | |
M_AXI_WR_wready。 | 从机。 | 标明从机可以接纳写数据。 | |
写通道呼应通道。 | M_AXI_WR_bid[3:0]。 | 从机。 | 写呼应ID TAG。 |
M_AXI_WR_bresp[1:0]。 | 从机。 | 写呼应,标明写传输的状况。 | |
M_AXI_WR_bvalid。 | 从机。 | 写呼应有用。 | |
M_AXI_WR_bready。 | 主机。 | 标明主机可以接纳写呼应。 | |
读通道地址与操控信号通道。 | M_AXI_RD_arid[3:0]。 | 主机。 | 读地址ID,用来标志一组写信号。 |
M_AXI_RD_araddr[31:0]。 | 主机。 | 读地址,给出一次写突发传输的读地址。 | |
M_AXI_RD_arlen[7:0]。 | 主机。 | 突发长度,给出突发传输的次数。 | |
M_AXI_RD_arsize[2:0]。 | 主机。 | 突发巨细,给出每次突发传输的字节数。 | |
M_AXI_RD_arburst[1:0]。 | 主机。 | 突发类型。 | |
M_AXI_RD_arlock[1:0]。 | 主机。 | 总线锁信号,可提供操作的原子性。 | |
M_AXI_RD_arcache[3:0]。 | 主机。 | 内存类型,标明一次传输是怎样经过体系的。 | |
M_AXI_RD_arprot[2:0]。 | 主机。 | 维护类型,标明一次传输的特权级及安全等级。 | |
M_AXI_RD_arqos[3:0]。 | 主机。 | 质量服务QOS。 | |
M_AXI_RD_arvalid。 | 主机。 | 有用信号,标明此通道的地址操控信号有用。 | |
M_AXI_RD_arready。 | 从机。 | 标明“从”可以接纳地址和对应的操控信号。 | |
读通道数据通道。 | M_AXI_RD_rid[3:0]。 | 从机。 | 读。IDt。ag。 |
M_AXI_RD_rdata[63:0]。 | 从机。 | 读数据。 | |
M_AXI_RD_rresp[1:0]。 | 从机。 | 读呼应,标明读传输的状况。 | |
M_AXI_RD_rlast。 | 从机。 | 标明读突发的最终一次传输。 | |
M_AXI_RD_rvalid。 | 从机。 | 标明此通道信号有用。 | |
M_AXI_RD_rready。 | 主机。 | 标明主机可以接纳读数据和呼应。信息。 |
二、地址通道的操控信号与地址描绘。
1、地址ID。
AWID[3:0]与ARID[3:0]:关于只要一个主机从机设备,该值可设置为恣意。
2、地址结构。
AWADDR[31:0]与ARADDR[31:0]:AXI协议是根据burst(突发)的,主机只给出突发传输的第一个字节的地址,从机有必要核算突发传输后续的地址。突发传输不能跨4KB鸿沟(避免突发跨过两个从机的鸿沟,也约束了从机所需支撑的地址自增数。
3、突发长度。
AWLEN[7:0]与ARLEN[7:0]:ARLEN[7:0]决议读传输的突发长度,AWLEN[7:0]决议写传输的突发长度。AXI4扩展突发长度支撑INCR突发类型为1256次传输,关于其他的传输类型仍然坚持116次突发传输(Burst_Length=AxLEN[7:0]+1)。
4、突发巨细。
ARSIZE[2:0],读突发传输;AWSIZE[2:0],写突发传输。
AxSIZE[2:0]。 | 传输字节巨细。 |
3'b000。 | 1。 |
3'b001。 | 2。 |
3'b010。 | 4。 |
3'b011。 | 8。 |
3'b100。 | 16。 |
3'b101。 | 32。 |
3'b110。 | 64。 |
3'b111。 | 128。 |
5、突发类型。
AWBURST[1:0]与ARBURST[1:0]:。
AxBURST[1:0]。 | 突发类型。 |
2'b00。 | FIXED。 |
2'b01。 | INCR。 |
2'b10。 | WRAP。 |
2'b11。 | Reserved。 |
FIXED:突发传输过程中地址固定,用于FIFO拜访。
INCR:增量突发,传输过程中,地址递加。增加量取决AxSIZE的值。
WRAP:回环突发,和增量突发相似,但会在特定高地址的鸿沟处回到低地址处。回环突发的长度只能是2,4,8,16次传输,传输首地址和每次传输的巨细对齐。最低的地址整个传输的数据巨细对齐。回环鸿沟等于(AxSIZE*AxLEN)。
三、数据通道信号描绘。
1、WDATA与RDATA:写与读数据线信号。
WSTRB:有用字节,WSTRB[n:0]对应于对应的写字节,WSTRB[n]对应WDATA[8n+7:8n],也便是关于的数据宽度的字节数是否有用。WVALID为低时,WSTRB可认为恣意值,WVALID为高时,WSTRB为高的字节线有必要指示有用的数据。关于一般使用,将WSTRB悉数置1即可,确保悉数数据有用。读通道无该信号。
2、WLAST与RLAST。
写与读最终一个字节,拉高标明传输最终一个字节,也意味着传输完毕。
3、burst[1:0]。
描绘读写相应结构。
burst[1:0]。 | |
00。 | 惯例拜访成功。 |
01。 | 独占拜访成功。 |
10。 | 从机过错。 |
11。 | 解码过错。 |
四、突发写时序:
AXI4突发写可以分为7个状况,写闲暇,写通道写地址等候,写通道写地址,写数据等候,写数据循环,承受写应对,写完毕这7种状况。之所以划分为7个状况是为了后续写程序的状况机做预备。
7种状况。
1、写闲暇:等候触发突发信号。
2、写通道写地址等候:预备好写地址AWADDR,然后拉高AWVALID。
3、写通道写地址:从机承受到AWVALID,宣布AWREADY。
4、写数据等候:预备好数据WDATA,拉高WVALID。
5、写数据循环:从机承受WVALID,承认数据WDATA有用而且承受,宣布WREADY,AXI是突发传输:循环该操作到承受到WLAST最终一个数据标志位。
6、承受写应对:承受到从机宣布的BVALID,主机宣布BREADY。
7、写完毕:拉低未拉低的信号,进入写闲暇。
五、突发读时序。
AXI4突发读可以分为6个状况,读闲暇,读通道写地址等候,读通道写地址,读数据等候,读数据循环,读完毕这6种状况。之所以划分为6个状况是为了后续写程序的状况机做预备。
6种状况。
1、读闲暇:等候触发突发信号。
2、读通道写地址等候:预备好写地址ARADDR,然后拉高ARVALID。
3、读通道写地址:从机承受到ARVALID,宣布ARREADY。
4、读数据等候:从机预备好数据WDATA,从机拉高RVALID。
5、读数据循环:主机承受RVALID,承认数据RDATA有用而且承受,宣布RREADY给从机,AXI是突发传输:循环该操作到承受到RLAST最终一个数据标志位。
6、读完毕:拉低未拉低的信号,进入读闲暇。
注:
1、读数据有必要总是跟在与其数据相关联的地址之后。
2、写呼应有必要总是跟在与其相关联的写业务的最终呈现。
六、写时序状况机。
七、写时序代码。
module axi4_wri。te。( input clk , input resetn , input enable_write , //写使能 input [31:0] w_addr , //地址 input [63:0] w_data , //数据 output reg write_done , //写完结 output reg write_data , //标明数据写入,突发形式下可用于切换数据的指示信号 //axi4写通道地址通道 output [3:0] m_axi_awid , //写地址ID,用来标志一组写信号 output reg[31:0] m_axi_awaddr ,//写地址,给出一次写突发传输的写地址 output [7:0] m_axi_awlen , //突发长度,给出突发传输的次数 output [2:0] m_axi_awsize , //突发巨细,给出每次突发传输的字节数 output [1:0] m_axi_awburst , //突发类型 output m_axi_awlock , //总线锁信号,可提供操作的原子性 output [3:0] m_axi_awcache , //内存类型,标明一次传输是怎样经过体系的 output [2:0] m_axi_awprot , //维护类型,标明一次传输的特权级及安全等级 output [3:0] m_axi_awqos , //质量服务QoS output reg m_axi_awvalid , //有用信号,标明此通道的地址操控信号有用 input m_axi_awready , //标明“从”可以接纳地址和对应的操控信号 //axi4写通道数据通道 output reg[63:0] m_axi_wdata , //写数据 output [7:0] m_axi_wstrb , //写数据有用的字节线 output reg m_axi_wlast , //标明此次传输是最终一个突发传输 output reg m_axi_wvalid , //写有用,标明此次写有用 input m_axi_wready , //标明从机可以接纳写数据 //axi4写通道应对通道 input [3:0] m_axi_bid , //写呼应ID TAG input [1:0] m_axi_bresp , //写呼应,标明写传输的状况 input m_axi_bvalid , //写呼应有用 output reg m_axi_bready //标明主机可以接纳写呼应 );//。内容来源:https://sonybravia.xyz/app-1/xổ số vũng tàu ngày 1 tháng 11 năm 2022,http://chatbotjud.saude.mg.gov.br/app-1/rei-bets
(责任编辑:女性)