在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.mzph.cn/news/74030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL基础】一条查询和更新语句的执行流程01-02

目录 MySQL的基本架构示意图连接器查询缓存分析器优化器执行器重要的日志模块:redo log重要的日志模块:binlog更新时redo log 和 binlog 两阶段提交 例如在执行下面这个查询语句: mysql> select * from T where ID10;MySQL的基…

Apache Hive之数据查询

文章目录 版权声明数据查询环境准备基本查询准备数据select基础查询分组、聚合JOINRLIKE正则匹配UNION联合Sampling采用Virtual Columns虚拟列 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利…

GPT引领前沿热点、AI绘图

GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。如在科研编程、绘图领域: 1、编程建议和示例代码: 无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。 2、数据可…

vue2中实现 TDesign 树形懒加载

之前我有写过Element ui的树形懒加载 其主要是通过load函数来实现 而TDesign也是照虎画猫 他也是主要靠load 我们先来看一个基本的组件 <template><t-tree :data"items" :load"load" /> </template><script lang"jsx">…

【每天一道算法题】day2-认识时间复杂度

认识时间复杂度&#xff1a; O&#xff1a;读作big O&#xff0c;在数学上指的是上限的意思 常数时间的操作 一个操作如果和样本的数据量没有关系&#xff0c;每次都是固定时间内完成的操作&#xff0c;叫做常数操作。时间复杂度为一个算法流程中&#xff0c;常数操作数量的一…

交友盲盒完整版——详细源码分享

现在目前比较火热的一款app交友盲盒是通过uniappspringboot技术来制作的&#xff0c;原理其实很简单&#xff0c;大家一看便知。 大家自行下载到手机里面去使用即可&#xff0c;不支持ios手机 演示地址&#xff1a;https://share.weiyun.com/l3ovztce 下面就是给大家分享源码了…

【C++】可变参数模板

2023年9月9日&#xff0c;周六下午 这个还是挺难学的&#xff0c;我学了好几天... 在这里我会举大量的示例程序&#xff0c;这样可以有一个更好的理解&#xff0c; 不定期更新。 目录 推荐文章&#xff1a; 示例程序一&#xff1a;拼接字符串 示例程序二&#xff1a;求整…

局域网ntp服务器设置(windows时间同步服务器NetTime)(ubuntu systemd-timesyncd ntp客户端)123端口、ntp校时

文章目录 背景windows如何配置ntp服务器手动配置配置参数AnnounceFlags和Enabled含义 使用软件配置&#xff08;NetTime&#xff09;实操相关疑问&#xff1a;0.nettime.pool.ntp.org是什么&#xff1f; 注意事项请务必检查windows主机123端口是否已被占用&#xff0c;方法请参…

华为云云耀云服务器L实例评测|在Docker环境下部署Ward服务器监控工具

华为云云耀云服务器L实例评测&#xff5c;在Docker环境下部署Ward服务器监控工具 一、前言1.1 云耀云服务器L实例简介1.2 Ward简介1.3 Ward特点 二、本次实践介绍2.1 本次实践简介2.2 本次环境规划 三、购买云耀云服务器L实例3.1 购买云耀云服务器L实例3.3 查看云耀云服务器L实…

Java高级——类加载及执行子系统的案例与实战

类加载及执行子系统的案例与实战 概述类加载器案例TomcatOSGi 字节码案例动态代理Java逆向移植工具 实战——远程执行功能目标思路实现验证&#xff08;未完成&#xff0c;不会写JSP&#xff09; 概述 Class文件以何种格式存储、字节码指令如何执行等都是由JVM控制 字节码生成…

php使用jwt作登录验证

1 在项目根目录下&#xff0c;安装jwt composer require firebase/php-jwt 2 在登录控制器中加入生成token的代码 use Firebase\JWT\JWT; use Firebase\JWT\Key; class Login extends Cross {/*** 显示资源列表** return \think\Response*/public function index(Request $r…

Lua语法结构

Lua基础 注释 print("hello.") -- 单行注释的写法 --[[ 多行注释的写法 --]]标识符 关键字 **and **break**do **else**elseif ****end **falsefor**function **ifinlocalnilnotorrepeatreturnthentrueuntil**while ** 数据类型 nil** boolean**** number**** st…

Oracle数据库概念简介

1. 数据库 一般意义上的数据库包含两个部分 库&#xff1a;就是一个存储一堆文件的文件目录数据库管理系统&#xff1a;管理库的系统 2. DBMS 数据库管理系统 数据库管理系统(Database Management System)&#xff0c;是一种操纵和管理数据库的大型软件&#xff0c;用于建立…

Bun v0.8.0 正式发布,Zig 编写的 JavaScript 运行时

Bun 是采用 Zig 语言编写的高性能 “全家桶” JavaScript 运行时&#xff0c;官方称其为 "all-in-one JavaScript runtime"。 所谓 "all in one"&#xff0c;是因为 Bun 提供了打包、转译、安装和运行 JavaScript & TypeScript 项目的功能&#xff0c…

华为mate60 上线 媒介盒子多家媒体报道

为什么你的品牌营销不见效&#xff1f;如何能推动品牌破圈&#xff1f;让媒介盒子给你一些启发。本期盒子要跟大家分享地新机上市&#xff0c;数码科技行业企业该如何做线上宣传。 HUAWEI Mate 60系列8月29日官宣发布&#xff0c;出色的拍照功能、强大的性能表现和持久的续航能…

初阶三子棋(超详解)

✨博客主页&#xff1a;小钱编程成长记 &#x1f388;博客专栏&#xff1a;C语言小游戏 初阶三子棋 1.游戏介绍2.基本思路3.实现前的准备4.实现步骤4.1 打印菜单4.2 初始化棋盘4.3 打印棋盘4.4 玩家下棋4.5 电脑下棋4.6 判断本局游戏继续还是结束4.7 优化棋盘的显示 5.游戏代码…

docker 笔记5:redis 集群分布式存储案例

尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 目录 1.cluster(集群)模式-docker版哈希槽分区进行亿级数据存储 1.1面试题 1.1.1 方案1 哈希取余分区 1.1.2 方案2 一致性哈希算法分区 原理 优点 一致性哈希算法的容错性 一致性…

MySQL的用户管理

1、MySQL的用户管理 &#xff08;1&#xff09;创建用户 create user zhang3 identified by 123123;表示创建名称为zhang3的用户&#xff0c;密码设为123123。 &#xff08;2&#xff09;了解user表 1&#xff09;查看用户 select host,user,authentication_string,select…

计算机网络的故事——确保Web安全的Https

确保Web安全的Https 文章目录 确保Web安全的Https一、HTTP 的缺点二、HTTP 加密 认证 完整性保护 HTTPS 一、HTTP 的缺点 1、明文传输 通信加密&#xff0c;HTTP协议中没有加密机制&#xff0c;但是可以通过SSL(Secure Socket Layer&#xff0c;安全套接字层)或TLE(Transpor…

PhpStorm软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 PhpStorm是一款由JetBrains开发的专业PHP集成开发环境&#xff08;IDE&#xff09;&#xff0c;旨在提供全面的PHP开发支持。它是基于IntelliJ IDEA平台构建的&#xff0c;具有强大的功能和工具&#xff0c;可以帮助开发人员提高…