当前位置: 首页 > 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

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

相关文章:

在FPGA上快速搭建以太网

在本文中,我们将介绍如何在FPGA上快速搭建以太网 (LWIP )。为此,我们将使用 MicroBlaze 作为主 CPU 运行其应用程序。 LWIP 是使用裸机设计以太网的良好起点,在此基础上我们可以轻松调整软件应用程序以提供更详细的应用…...

如何防范 AI 盗取你的密码

现如今,随着人工智能(AI)应用的普及和快速迭代,几乎任何人都可以轻而易举地利用AI进行密码破解之类的攻击。这已经引起了业界的担忧。下面,我将围绕着:密码破解究竟意味着什么,基于AI的密码猜测…...

华清远见第六课程作业day3

类 栈 #include <iostream>using namespace std;class Sta{ private:int *data;int top; public:Sta():data(new int(128)){top-1;cout<<"stack::无参构造:"<<endl;}~Sta(){delete data;cout<<"stack::析构函数:"<<this<…...

Rabbitmq配置定义

RabbitMQ 环境变量 RabbitMQ 的环境变量都是以"RABBITMQ_"开头的&#xff0c;可以在Shell 环境中设置&#xff0c;也可以在配置文件中定义。默认的配置文件如下&#xff1a; ## /etc/rabbitmq/rabbitmq-env.conf 定义配置文件&#xff1a; /va/lib/rabbitmq/ 的目…...

2023年数模国赛时间分配

2023年数模国赛时间分配 写在前面赛前准备第一天&#xff08;9.7 18:00发布题目&#xff09;第二天&#xff08;9.8&#xff09;第三天&#xff08;9.9&#xff09;第四天&#xff08;9.10 20:00提交&#xff09;总结 写在前面 国赛马上就要开始啦 今年的比赛时间是9月7日&…...

kubernetes(K8S)笔记

文章目录 大佬博客简介K8SDocker VS DockerDockerK8S简介K8S配合docker相比较单纯使用docker 大佬博客 Kubernetes&#xff08;通常缩写为K8s&#xff09;是一个用于自动化容器化应用程序部署、管理和扩展的开源容器编排平台。它的构造非常复杂&#xff0c;由多个核心组件和附加…...

vue 部署到本机IIS 部署 SPA 应用

安装 URL Rewrite Works With: IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10 URL Rewrite : The Official Microsoft IIS Site 目前电脑IIS是6版本的&#xff0c;以下的方法不太合适操作。目前用Nginx部署&#xff0c;够用了。 nginx配置参考&#xff1a; uni-app 前面项目&am…...

面试那些事——Java全栈

今年年初因为个人的精神状态和职业方向辞职休息了一段时间&#xff0c;最近重新找了一份开发的工作&#xff0c;还是在太原&#xff0c;在这里分享一下自己的一些面试经验。 面试&#xff0c;面的是什么 我们要知道&#xff0c;目标的就职地行业的需求是什么&#xff0c;目标的…...

LINUX 文件基本管理

一、文件类型和根目录结构 1、文件类型 可以通过 ls -l 或者 ll来查看文件类型 可以根据显示&#xff0c;查看第一个字符&#xff0c;就表示文件类型。 - 字符&#xff1a;普通文件&#xff0c;类似于Windows的记事本。 d 字符&#xff1a;目录文件&#xff0c;类似于Wind…...

一、认识GitHub项目 —— TinyWebServer

认识GitHub项目 —— TinyWebServer 一、前言 这个项目是Linux下C轻量级Web服务器。几乎是想从事C服务器开发方向的同学的必备初始项目了。属于那种&#xff0c;“烂大街”&#xff0c;但是你又不能不会的项目。 对这个项目笔者打算多分几章讲解&#xff0c;帮助刚用GitHub&a…...

66.C++多态与虚函数

目录 1.什么是多态 2.多态的分类 3.对象转型 3.1 向上转型&#xff1a; 3.2 向下转型&#xff1a; 4.虚函数 1.什么是多态 生活中的多态&#xff0c;是指的客观的事物在人脑中的主观体现。例如&#xff0c;在路上看到⼀只哈士奇&#xff0c;你可以看做是哈士奇&#xf…...

【ICer的脚本练习】通过perl脚本来检查仿真log的结果

系列的目录说明请见:ICer的脚本练习专栏介绍与全流程目录_尼德兰的喵的博客-CSDN博客 前言 这是一个非常简单的perl脚本示例,展示一下perl语言“极简”的编码习惯。perl是我脚本入门的语言,一度也是最擅长的,但是因为python的强势现在我基本不写perl了。上一个大的perl脚本…...

创邻科技图数据库课程走进一流高校

《图数据库原理和实践》 正式开课&#xff01; 最近&#xff0c;浙江大学计算机学院新开了一门名为 《图数据库原理和实践》 的新课程&#xff0c;该课程由创邻科技和浙江大学联合推出&#xff0c;吸引了许多学生踊跃参与&#xff01; 曾为浙大学子的创邻科技CTO周研博士作为…...

RabbtiMQ的安装与在Springboot中的使用!!!

一、安装Erlang与Rabbitmq 安装教程本教程是在centos8下试验的&#xff0c;其实linux系统的都差不多RabbitMQ官方&#xff1a;Messaging that just works — RabbitMQRabbitMQ是开源AMQP实现&#xff0c;服务器端用Erlang语言编写&#xff0c;Python、Ruby、 NET、Java、JMS、c…...

【可定制、转换时间戳】解析nc文件,并保存为csv文件

解析nc文件&#xff0c;并保存为csv文件 写在最前面解析nc文件&#xff08;代码汇总放最后面&#xff09;读取nc文件获取气象文件中所有变量解析时间解析部分代码汇总 写入csv文件 写在最前面 愿称之为&#xff1a;支持私人订制、非常完美的版本 参考&#xff1a; 解析部分参…...

介绍串行和并行两种通信方式

前言 参考文章&#xff1a; 串行和并行- CSDN搜索 并行传输和串行传输的区别_金陵大掌柜的博客-CSDN博客 串行和并行介绍 &#xff08;1&#xff09;串行和并行是计算机领域中两个重要的概念。串行是指在计算机中&#xff0c;任务按照顺序一个一个执行&#xff0c;每个任务执行…...

优化爬虫效率:利用HTTP代理进行并发请求

网络爬虫作为一种自动化数据采集工具&#xff0c;广泛应用于数据挖掘、信息监测等领域。然而&#xff0c;随着互联网的发展和网站的增多&#xff0c;单个爬虫往往无法满足大规模数据采集的需求。为了提高爬虫的效率和性能&#xff0c;我们需要寻找优化方法。本文将介绍一种利用…...

关于磁盘空间不够,导致报错 springboot内置tomcat相关的临时目录无法创建等问题,如何自定义配置 tomcat 缓存文件路径

问题 关于磁盘空间不够&#xff0c;导致报错 springboot内置tomcat相关的临时目录无法创建等问题&#xff0c;如何自定义配置 tomcat 缓存文件路径 解决方法&#xff1a; shell 脚本命令&#xff1a;&#xff08;配置自定义缓存路径 java-Djava.io.tmpdir &#xff09; tmp…...

Android HAL - hidl-gen

1.hidl-gen的使用 hidl-gen 编译器会将 .hal 文件编译成一组 .h 和 .cpp 文件,这些 自动生成的文件用于编译客户端 / 服务端实现链接到的共享库,同 时也可以生成 Android.bp 编译文件。 1.1 生成的文件 HIDL 软件包中自动生成的文件会关联到与该软件…...

CGAL 数值类型

文章目录 一、简介二、内置数值类型三、CGAL提供的数值类型四、GMP提供的数值类型五、LEDA提供的数值类型六、CORE提供的数值类型七、区间运算参考资料一、简介 数字类型必须满足一定的语法和语义要求,这样它们才能在CGAL代码中成功使用。一般来说,它们被认为是一个代数结构概…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix&#xff0c;按照"之"字形的方式打印这个矩阵&#xff0c;例如&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为&#xff1a;1&#xff0c;…...

解析“道作为序位生成器”的核心原理

解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制&#xff0c;重点解析"道作为序位生成器"的核心原理与实现框架&#xff1a; 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...

关于 ffmpeg设置摄像头报错“Could not set video options” 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/148515355 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

GitHub 常见高频问题与解决方案(实用手册)

1.Push 提示权限错误&#xff08;Permission denied&#xff09; 问题&#xff1a; Bash Permission denied (publickey) fatal: Could not read from remote repository. 原因&#xff1a; 没有配置 SSH key 或使用了 HTTPS 而没有权限…...