Zynq7000 系列通过Boardfiles快速创建创PL 端 ETH 的 vivado 工程

上一个章节介绍了Boardfiles的安装,这节,就来介绍下,如果利用Boardfile快速生成一个以太网的Viviado工程。

1、创建工程时,选择开发板

2、创建一个Block Design

起个名字,例如pleth

3、把zynq添加进来

4、应用开发板的预设

5、把AXI 1G/2.5G Ethernat Subsystem添加进来

6、应用axi ethernat 的预设

7、手动打开ZYNQ的 HP0接口

8、打开ZYNQ的中断

9、PLL选择sys_diff_clock

10、然后在WIZ IP的时钟输入引脚点击右键,Make External

11、经过几次的自动连线后,结果如下图

12、生成顶层文件

13、然后就可以产生BIT文件

然后导出xsa文件,是不是很简单,引脚约束什么都已经由Boardfiles里定义好

技术交流|源码获取|微信|szFPGAer

### 配置ZYNQ7020 PL数据通过PS网口发送的方法 在ZYNQ7020中,将PL的数据通过PS的网口发送出去需要完成多个模块的配置和驱动程序的编写。以下是具体方法: #### 1. 硬件设计与AXI_DMA配置 在Vivado环境中创建Block Design时,需要添加AXI_DMA模块以实现PL到PS的数据传输。AXI_DMA允许PL生成的数据直接写入到PS的DDR3内存中[^1]。 - **AXI_DMA设置**:确保AXI_DMA的流接口(Stream Interface)连接到PL的数据生成模块。同时,AXI_DMA的MM2S(Memory Mapped to Stream)和S2MM(Stream to Memory Mapped)通道均需启用。 - **PL数据生成模块**:PL应包含一个数据生成模块,该模块能够产生指定数量的32-bit数据,并通过AXI_STREAM接口传递给AXI_DMA。 ```python # 示例代码:初始化AXI_DMA传输 def configure_dma_transfer(base_address, buffer_address, length): # 写入目标缓冲区地址 write_register(base_address + 0x30, buffer_address) # 写入传输长度 write_register(base_address + 0x38, length) ``` #### 2. PS以太网控制器配置 在PS,需要配置以太网控制器以便通过网口发送数据。此步骤通常在SDK或PetaLinux环境中完成。 - **以太网IP配置**:在Vivado中,选择ZYNQ7020的PS部分,进入其配置界面,启用以太网子系统并分配相应的MAC地址和IP地址。 - **UDP协议栈支持**:使用Xilinx提供的libmetal或lwIP库来实现UDP协议栈功能。这些库提供了封装好的API用于数据包的发送和接收。 #### 3. 驱动程序开发 为了使硬件正常工作,必须编写适当的驱动程序来管理AXI_DMA和以太网控制器的操作。 - **AXI_DMA驱动**:驱动程序负责初始化AXI_DMA、配置传输参数以及启动传输任务。 - **以太网驱动**:以太网驱动程序则负责初始化网络接口、绑定UDP套接字以及处理数据包的发送和接收。 ```c // 示例代码:初始化以太网控制器 int eth_initialize(void) { struct netif *netif = malloc(sizeof(struct netif)); ip4_addr_t ipaddr, netmask, gw; IP4_ADDR(&ipaddr, 192, 168, 1, 10); IP4_ADDR(&netmask, 255, 255, 255, 0); IP4_ADDR(&gw, 192, 168, 1, 1); netif_add(netif, &ipaddr, &netmask, &gw, NULL, ethif_init, tcpip_input); return 0; } ``` #### 4. 数据流整合 最终,数据流从PL生成,经AXI_DMA传输至PS的DDR3内存,再由以太网控制器通过UDP协议发送到目标设备。 - **上升沿信号的作用**:在参考引用中提到的上升沿信号,主要用于同步PL和PS的操作,确保数据生成和DMA传输同步进行。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值