关于zynq

3 篇文章 0 订阅

BRAM
block memory , pl端RAM,可配置为双口RAM,用于ps—pl数据交互和共享

MIG mig控制器
memory interface generator, 控制ddr
2片ddr3,216位 设mig内核时钟频率为400m,则数据频率为800m, 带宽为800mhz32bit

.XDL Vivado的约束文件
.UCF ISE的约束文件

micro blaze(软核)使用 类似于zynq cpu( zunq processing system,硬核)
Altera:nios
xilinx:microblaze

wrapper,类似于black box只有端口信息的hdl文件

XADC:可采集芯片内部的一些参数(电压,温度等)

XDMA:Xilinx封装好的PCIE DMA传输IP,可以方便地把PCIE总线上的数据传输事务映射到AXI总线上面
DMA:数据传输方式,外设不经过cpu直接访问内存,(由DMA控制器控制)
VDMA :主要用于视频流数据的存取
HDMA :高清视频传输

LwIP:tcp/ip协议栈,实现tcp/ip打包

总线、接口和协议,这三个词经常被联系在一起,但是三者有区别。

总线:一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由数据线、地址线、控制线等构成。

内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。

接口:一种连接标准,又被称为物理接口。

协议:是传输数据的规则。

与ps有关: 总线对应的接口
PS 自带的 总线接口 控制器
SPI 接口: Motorola 首先提出的全双工三线同步串行外围接口 ,采用主从模式(MasterSlave)架构;支持多 slave
模式应用,一般仅支持单 Master。时钟由 Master 控制。

I2C 总线:具备广泛的用途,比如寄存器的配置, EEPROM 的使用 ,对于一些低速器件的访问非常节省 IO 资源,由于是标准的总线接口,使用起来非常方便。

CAN 总线 :PS 中包含了 2 个 CAN 接口 ,工业应用中的一个重要的总线标准 ,通过 CAN 接口实现与 PC 端 CAN 调试软件之间的数据接收和发送

SDIO 接口 :ZYNQ 自带的 SDIO 接口 ,TF/SD卡 SD_0 是 TF 卡, SD_1 是 EMMC( 嵌入式存储)

axi总线:ARM 公司提出的一种总线协议, Xilinx 从 6 系列的 FPGA 开始对AXI 总线提供支持,此时 AXI 已经发展到了 AXI4 这个版本 。ARM 和 FPGA 通过 AXI4 总线进行通信 。你用到 Xilinx 软件的时候看到的都是“AIX4”的 IP,如 Vivado 打包一个 AXI IP 的时候,看到的都是 Create a new AXI4 peripheral。 PS 与 PL 之间的接口(AXI-GP 接口, AXI-HP 接口以及 AXI-ACP 接口)只支持 AXI-Lite和 AXI 协议这两种总线协议。则PL 这边的 AXI-Stream 的接口可通过 AXI-Stream转AXI4/AXI4-Lite与 PS 对接。d

ps的MIO Configuration中可配置各种I/O接口,(如串口,网口,I2口,SPI口,TF口)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,由于篇幅限制和版权问题,无法在此为您提供完整的代码。不过,以下是一个基于 AXI4 的 DDR3 控制器的伪代码示例,其中还包括了 FIFO 进行数据缓存: ``` // 定义 AXI4 总线接口 interface axi4( input clk, input rst, output [31:0] araddr, output [31:0] arlen, output [1:0] arsize, output [2:0] arburst, output arvalid, input arready, output [31:0] rdata, output [1:0] rresp, output rvalid, input rready, output [31:0] awaddr, output [31:0] awlen, output [1:0] awsize, output [2:0] awburst, output awvalid, input awready, input [31:0] wdata, input [3:0] wstrb, output wvalid, input wready, output bresp, output bvalid, input bready ); // 定义 DDR3 控制器模块 module ddr3_controller( input clk, input rst, input [31:0] input_data, input input_valid, output [31:0] output_data, output output_valid ); // 定义 FIFO 模块 module fifo( input clk, input rst, input [31:0] input_data, input input_valid, output [31:0] output_data, output output_valid ); // 实例化 AXI4 接口 axi4_interface = axi4( .clk(clk), .rst(rst), .araddr(araddr), .arlen(arlen), .arsize(arsize), .arburst(arburst), .arvalid(arvalid), .arready(arready), .rdata(rdata), .rresp(rresp), .rvalid(rvalid), .rready(rready), .awaddr(awaddr), .awlen(awlen), .awsize(awsize), .awburst(awburst), .awvalid(awvalid), .awready(awready), .wdata(wdata), .wstrb(wstrb), .wvalid(wvalid), .wready(wready), .bresp(bresp), .bvalid(bvalid), .bready(bready) ); // 实例化 DDR3 控制器 ddr3 = ddr3_controller( .clk(clk), .rst(rst), .input_data(axi4_interface.rdata), .input_valid(axi4_interface.rvalid), .output_data(axi4_interface.wdata), .output_valid(axi4_interface.wvalid) ); // 实例化 FIFO 模块 data_fifo = fifo( .clk(clk), .rst(rst), .input_data(ddr3.output_data), .input_valid(ddr3.output_valid), .output_data(ddr3.input_data), .output_valid(ddr3.input_valid) ); // 将 AXI4 接口与 FIFO 模块相连 assign axi4_interface.rdata = data_fifo.output_data; assign axi4_interface.rvalid = data_fifo.output_valid; assign data_fifo.input_data = axi4_interface.wdata; assign data_fifo.input_valid = axi4_interface.wvalid; ``` 请注意,这只是一个伪代码示例,仅供参考。实际的代码需要根据您的具体需求和实现细节进行编。同时,还需要进行更多的测试和调试,以确保 DDR3 控制器和 FIFO 模块能够正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值