当前位置: 首页 > news >正文

在FPGA上快速搭建以太网

9175abae6564372dd062afc4873ee0b4.png

在本文中,我们将介绍如何在FPGA上快速搭建以太网 (LWIP )。为此,我们将使用 MicroBlaze 作为主 CPU 运行其应用程序。

LWIP 是使用裸机设计以太网的良好起点,在此基础上我们可以轻松调整软件应用程序以提供更详细的应用程序。LWIP Echo 服务器的使用首先使我们能够确定底层硬件设计是否正确。

此设计的核心是 Vivado IP 中的 AXI Ethernet Lite IP 模块(我在该项目中使用Vivado 2023.1)。AXI Ethernet Lite IP 适用于 10 或 100 Mbps 以太网链路。这提供了一个资源很少的以太网接口,对于我们低成本的设备(例如 Artix 7 FPGA)来说是理想的选择。通过简单的以太网接口,设计人员可以使用以太网对最终应用进行命令和控制。

9810c6d86b788d403eb6aadfc3320866.png

为了验证这一IP,将使用 Arty A7-35T 板。创建项目后,创建框图,从 IP Designer 的 Board 选项卡添加以下 IP

0080551129d5afe71ecf169ee45ef2dc.png

可以使用 Git Repo 中存储的 TCL 脚本重新创建完整的设计。关键设计点包括使用 DDR 时钟输出为除 AXI Ethernet Lite IP 模块(时钟频率为 100 MHz)之外的所有 AXI 网络提供时钟。

DDR 的系统时钟频率为 100 MHz,参考时钟频率为 200 MHz。DDR 接口运行频率为 324.99 MHz,其接口频率为大多数 AXI 接口频率的 1/4 (81.2475MHz)。

除了 AXI Ethernet Lite IP 之外,我们还需要提供 25MHz 参考时钟来配置以太网 Phy。

Vivado 中的设计如下所示。

ce01ee8806db482d0cc73ee3e9d0254e.png

有了可用的比特流,从 Vivado 导出XSA,并为 Vitis 中新应用项目导入XSA。

以 MicroBlaze 处理器为目标并选择 LWIP Echo Server 应用程序。

96d47170633a5bda6221aa1ccbc077db.png

创建项目后,可以构建应用程序和平台。请注意,在 Vitis 2023.1 中编译 LWIP 时,xadaptor.c 文件中存在错误,第 388 行有两个状态声明,分别为 16 位和 32 位变量。如果发生这种情况,请注释掉 16 位声明并重新编译设计。

将 Arty A7 板通过网线连接到 PC 后,可以在 Arty A7 板上下载并运行应用程序。

终端将输出 IP 地址并提供发送到端口 7 的所有命令。

0d3f856229fa3f0fd0ded7d8b7ff862e.png

为了能够通过 Telnet 连接到 Arty A7,我们需要首先将主机的 IP 地址配置为与 Arty A7 类似。

16344e8bae0225c7724a746417f30c35.png

主机上的 IP 设置正确后,我们可以打开与 Arty Board 的 Telnet 会话并发送要回显的命令。

最好将终端程序设置为执行本地回显并将 CR/LF 附加到消息中。

5f7d0a4bfbfc6f2e0c9a189d9fdb32ce.png

然后我们可以输入文本并观看它的回显。

408f8a25384e78bcb04ddb88aed708f6.png

今天的历程差不多就这样,这为我们开发以太网应用提供了一个良好的起点,后续我们就可以开发新的以太网项目。

http://www.lryc.cn/news/161218.html

相关文章:

  • 如何防范 AI 盗取你的密码
  • 华清远见第六课程作业day3
  • Rabbitmq配置定义
  • 2023年数模国赛时间分配
  • kubernetes(K8S)笔记
  • vue 部署到本机IIS 部署 SPA 应用
  • 面试那些事——Java全栈
  • LINUX 文件基本管理
  • 一、认识GitHub项目 —— TinyWebServer
  • 66.C++多态与虚函数
  • 【ICer的脚本练习】通过perl脚本来检查仿真log的结果
  • 创邻科技图数据库课程走进一流高校
  • RabbtiMQ的安装与在Springboot中的使用!!!
  • 【可定制、转换时间戳】解析nc文件,并保存为csv文件
  • 介绍串行和并行两种通信方式
  • 优化爬虫效率:利用HTTP代理进行并发请求
  • 关于磁盘空间不够,导致报错 springboot内置tomcat相关的临时目录无法创建等问题,如何自定义配置 tomcat 缓存文件路径
  • Android HAL - hidl-gen
  • CGAL 数值类型
  • 建站系列(六)--- 后端开发语言
  • 王道数据结构编程题 查找
  • vue 部分知识点总结
  • 谷粒商城----ES篇
  • Redis3.2.1如何设置远程连接?允许局域网访问
  • 网络原理(二)TCP的可靠传输
  • Chat GPT 使用教学,文字创作、学习
  • Android之 Canvas绘制
  • Vue + Element UI 前端篇(十五):嵌套外部网页
  • Jabbi的Rust学习日记(二)
  • 【杂】环形时钟配色笔记