前注:ARM端的TCP协议编程步骤和UDP协议编程步骤完全相同,只是在ARM端的C代码实现不同,在本次TCP协议实现过程中我们主要利用了官方提供的Demo,然后根据自己的需要加以改写,具体过程如下。

1、开始前的准备工作

  • 关闭电脑防火墙
  • 连接开发板电源
  • 开发板与PC之间串口连接,JTAG下载线连接
  • PC机与开发板间网线连接,并保证能ping通

2、Vivado端配置

  1. 创建工程,具体步骤不详细介绍,网上都有教程,器件型号按照实际用的板子的型号选,我这里用的是米联Miz7035的板子
  2. 工程创建完毕后,在Vivado主页左边有个(创建块设计)create block design,点击创建,然后添加ZYNQ7 Processing System IP核,然后对IP核进行配置,主要需要配置的几个地方为:
  • 配置时钟,由于本工程只用到了PS资源,只需要给PS配置时钟,所以可以不用给PL提供时钟。
  • 配置串口,勾选UART1用于打印相关调试信息。
  • 配置网口,勾选ENET0,用于PC和开发板的UDP通信。
  • 配置DDR内存,按照具体板子的DDR型号进行配置,由于目前我们的工程在PS端还是在“裸奔”,所以内存一定要配置正确,不然后续Debug会出现问题。
  • 配置完成后就是检查规范性,生成输出文件,创建顶层文件,导出硬件,这个具体步骤我在前面讲过,有不知道如何操作的可以翻翻之前的博文进行操作。

最后生成的PS结构如下图所示:

3.最后导出硬件,启动SDK。

3、SDK端编程

SDK端主要进行UDP协议的一个实现,语言采用c语言。主要步骤如下:

  1. 创建SDK工程,file->new->application project,可以选择一个模板,也可以选择一个空工程,我们选择lwIP TCP echo server模板,然后在此基础上进行改写。
  2. Debug调试。

4、调试结果

     整个的调试流程为FPGA接收到PC端发送过来的一个数据后,FPGA将该数据回传。整个流程初始化完毕后串口打印的信息如下图所示:

利用网络调试助手模拟PC机给FPGA发送数据和接收数据,FPGA的地址为192.168.1.10,端口为7,调试结果如下图所示:

5、资源获取链接

完整的实现TCO协议的src文件我上传了百度网盘,链接如下,有需要的请自取。

链接:https://pan.baidu.com/s/1Hcw7apaZhxNT9wwQ-45O6w 提取码:xjd6

基于ZYNQ-7000的AI加速器设计之PS端(ARM)网络编程(TCP协议)相关推荐

  1. 基于ZYNQ-7000的AI加速器设计之PS端(ARM)网络编程(UDP协议)

    1.开始前的准备工作 关闭电脑防火墙 连接开发板电源 开发板与PC之间串口连接,JTAG下载线连接 PC机与开发板间网线连接,并保证能ping通 2.Vivado端配置 创建工程,具体步骤不详细介绍, ...

  2. 【基于zynq的卷积神经网络加速器设计】(一)熟悉vivado和fpga开发流程:使用Vivado硬件调试烧写hello-world led闪烁程序实现及vivado软件仿真

    HIGHLIGHT: vivado设计流程: note: 分析与综合 和 约束输入 可以调换顺序 [基于zynq的卷积神经网络加速器设计](一)熟悉vivado和fpga开发流程:使用Vivado硬件 ...

  3. 基于ZYNQ 7000的1553B总线控制器测试系统的设计与实现

    为了方便对1553B设备进行测试,本文介绍了一种基于ZYNQ 7000 平台的1553B总线控制器测试系统的设计与实现方法.该系统首先在 PC机上通过人机交互界面配置数据,支持灵活对数据故障注入,然后 ...

  4. 基于ZYNQ+AD9361的软件无线电平台设计与实现 (2)

    基于ZYNQ+AD9361的软件无线电平台设计与实现(1) 1 评估板简介 信迈科技 XM-ZYNQ7045-EVM 是一款基Xilinx Zynq-7000 系列 XC7Z045/XC7Z100 高 ...

  5. 【AI不惑境】移动端高效网络,卷积拆分和分组的精髓

    大家好,这是专栏<AI不惑境>的第六篇文章,讲述卷积拆分和分组卷积的精髓. 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考.如果说学习是一个从模仿,到追随,到创造的过程 ...

  6. java socket ip_JAVA 网络编程 TCP/IP、Socket 和协议设计

    [JAVA 网络编程 TCP/IP.Socket 和协议设计] TCP/IP 协议简介 IP 首先我们看 IP(Internet Protocol)协议.IP 协议提供了主机和主机间的通信. 为了完成 ...

  7. 基于ZYNQ-7000的AI加速器设计之GP接口的实现

    1.GP接口简介 GP接口是ZYNQ-7000系列器件中用于实现PS与PL端进行数据通信的数据接口,GP接口传输数据速率一般较慢,通常用作控制信息的传输,在利用GP接口的时候,PS端的角色是Maste ...

  8. 基于ZYNQ+AD9361的软件无线电平台设计与实现

    所谓软件无线电,它是一种以通用硬件平台为基础,以自定义软件为核心,来实现各种无线通信系统功能的一种体系和技术.从字面上看,"软件无线电"这个词并不深奥."无线电" ...

  9. 系统架构设计笔记(15)—— 网络架构与协议

    网络架构是指计算机网络的各层及其协议的集合.计算机之间要交换数据,就必须遵守一些事先约定好的规则,用于规定信息的格式及如何发送和接收信息的一套规则就称为网络协议.为了减少网络协议设计的复杂性,网络设计 ...

最新文章

  1. android sdk 如何重新生成debug.keystore
  2. 基于ip地址的客户识别原理_使用 LVS 实现负载均衡原理及安装配置
  3. 用pytorch及numpy计算成对余弦相似性矩阵,并用numpy实现kmeans聚类
  4. Percona Server 5.6 Master-Slave Replication测试
  5. 西门子和阿里云要搞啥事情?| 极客头条
  6. 文字在状态栏上从右往左显示,而且是循环的
  7. python简单小案例列表_python计算列表内各元素的个数实例
  8. excel中如何批量将所有的网址设为超链接
  9. Python数据字典处理Excel,并统计总数,画出饼图
  10. dos从优盘启动计算机,对老旧电脑升级很重要,教你制作纯DOS的U盘启动盘
  11. 最近复习了一下JavaScript
  12. Android虚拟sdcard
  13. linux和aws需要什么配置电脑,安装和配置 AWS CloudHSM 客户端 (Linux) - AWS CloudHSM
  14. [3D跑酷] GameManager
  15. ActFramework 轻量级java web框架 (1、快速入门)
  16. 如何创建index.php文件,index.html是什么意思/文件,index.html怎么创建/打开
  17. 开源模式让木马软件更疯狂
  18. RTFKT 的 Meta Dungeon 来啦
  19. pymongo实现表增量复制
  20. 宾馆英语·预订房间(zt)

热门文章

  1. Wuawua知识管理 -- C#推荐书籍
  2. 《python编程快速上手 让繁琐工作自动化》第三章习题+实践答案
  3. 物联网HMI的关键驱动力—SCADA级功能库和控件库
  4. 检讨书生成微信小程序工具源码
  5. 聚焦Android之proguard混淆工具的使用
  6. 案例:5分钟自动跳转页面 监听单击事件 倒计时跳转
  7. wps数据库三线表怎么做_WPS文档三线表怎么做?
  8. Linux PCI总线-PCI空间
  9. 电脑问题解决与实用技巧
  10. java heap size 乐视_BigData-ZooKeeper-JVM Heap size Setting