Soc实验3 AHB主机接口模块
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验3 AHB主机接口模块
1实验简介
预备知识:为了完成该实验,同学们需要掌握AHB传输协议以及一定的使用Verilog HDL进行硬件设计的能力。
目标:该实验的主要目标是通过设计AHB主机接口模块使同学们巩固AHB 传输协议以及提高使用Verilog HDL进行硬件设计的能力。
2实验类容
实验3.1
设有一个主机(激励,由testbench给出),通过AHB总线向从机Memory 地址8'h00~8'h07发送数据32'h00000008~32'h0000000f。
试设计一个AHB主机接口模块,提供主机到AHB总线的接口,使得主机发送的数据通过AHB总线发往Memory相应地址。
要求AHB主机接口模块发起一次八拍增量突发传输。
AHB主机接口模块框图见附录图1,AHB主机接口模块端口见附录表1。
该设计的验证需要加入实验2设计的仲裁器和实验1设计的AHB从机接口模块。
要求:初始情况下该主机总线授予信号为0,需要向仲裁器申请访问总线;HADDR[31:28]==4'h4时,Memory从机选择信号为1。
为简化设计,HSIZE设定为3'b010,HPROT设定为4'b0001,HRESP设定为OKEY。
该实验提供一个32位宽度256位深度的RAM模块,将RAM.v、RAM.ngc、RAM.mif、BLK_MEM_GEN_V7_3.v放入工程所在目录,将RAM.v和BLK_MEM_GEN_V7_3.v加入工程,编译后即可使用RAM。
实验3.2
不同IP间可通过NoC或总线进行通信。
设有一个NoC和AMBA总线互联的系统,NoC上的一个数据包通过解包模块存入FIFO,一个AHB主机接口从FIFO中读出数据发往存储器相应地址(该地址由NoC源节点地址译码得到,NoC 源节点地址与存储器地址对应关系如附录表2所示)。
该系统框图如附录图2所示。
设解包模块写入FIFO的数据依次为NoC源节点地址、数据长度以及相应的数据。
试设计一个AHB主机接口模块,提供FIFO到AHB总线的接口,使NoC中的数据通过AHB总线发往Memory。
AHB主机接口模块框图见附录图3,AHB主机接口模块端口见附录表3。
该设计的验证需要加入实验2设计的仲裁器和实验1设计的AHB从机接口模块。
要求:初始情况下该主机总线授予信号为0,需要向仲裁器申请访问总线;HADDR[31:28]==4'h4时,Memory从机选择信号为1。
为简化设计,HSIZE设定为3'b010,HPROT设定为4'b0001,HRESP设定为OKEY。
该实验提供一个32位宽度256位深度的RAM模块,将RAM.v、RAM.ngc、RAM.mif、BLK_MEM_GEN_V7_3.v放入工程所在目录,将RAM.v和BLK_MEM_GEN_V7_3.v加入工程,编译后即可使用RAM。
该实验提供一个32位宽度16位深度的FIFO模块,将FIFO.v、FIFO_GENERATOR_V9_3.v放入工程所在目录,加入工程,编译后即可使用FIFO。
该实验提供测试文件testbench.v,该测试文件从NoC源地址为32'h00000201的IP获得16个数据32'h00000011、32'h00000012、32'h00000013、32'h00000014、32'h00000015、32'h00000016、32'h00000017、32'h00000018、32'h00000019、32'h0000001a、32'h0000001b、32'h0000001c、32'h0000001d、32'h0000001e、32'h0000001f、32'h00000020写入FIFO(写入FIFO的数据为32'h00000201、32'h00000010、32'h00000011~32'h00000020)。
实验3.3 (可选)
以实验3.1的工程为基础,改写、添加相关模块,在Xilinx FPGA开发板上下载调试,显示调试结果。
附录
1 附图
HCLK HRESETn
图1 实验3.1 AHB 主机接口模块图
图2 NoC-AMBA 系统
HCLK HRESETn
rd_en data
fifo_empty ahbm
图2实验3.2 AHB 主机接口模块框图
2 附表
表1 实验3.1 AHB主机接口模块端口
表2 NoC源节点地址与存储器地址对应关系表
表3 实验3.2 AHB主机接口模块端口。