System Generator学习——使用 AXI 接口和 IP 集成器

news2024/11/18 15:24:58

文章目录

  • 前言
  • 一、目标
  • 二、步骤
    • 1、检查 AXI 接口
    • 2、使用 System Generator IP 创建一个 Vivado 项目
    • 3、创建 IP 集成设计(IPI)
    • 4、实现设计
  • 总结


前言

在本节中,将学习如何使用 System Generator 实现 AXI 接口。将以 IP 目录格式保存设计,并在 Vivado IP Integrator 环境中使用生成的 IP。然后,还将看到 IP Integrator 在使用 AXI 接口时如何通过提供连接辅助来提高我们的工作效率。


一、目标

完成本实验后,你将能够:

  • 在你的设计中实现 AXI 接口
  • 将你的设计作为 IP 添加到 Vivado IP 目录中
  • 连接你的设计在 IP 集成器

二、步骤

这个练习有四个主要部分:

  • 在第 1 步中,将回顾如何使用 System Generator 实现 AXI 接口
  • 在第 2 步中,将为 System Generator IP 创建一个 Vivado 项目
  • 在步骤 3 中,将使用 System Generator IP 在 IP Integrator 中创建一个设计
  • 在步骤 4 中,将实现设计并生成 FPGA 比特流(用于对 FPGA 编程的文件)

1、检查 AXI 接口

在这一步中,我们将回顾如何定义和创建 AXI 接口
①、启动 System Generator 并打开 Simulink 将 Lab5\Lab5_1.slx 打开,如下图所示。这将打开如下图所示的设计。

这个复杂很多,是一个 DES 算法,用于数据加密/解密,由于本次设计只是为了使用 System Generator 实现 AXI 接口,并将涉及到出到 Vivado IP 的目录下以及在 Vivado 的工程中进行 IP 的使用,所以就不对设计文件进行具体分析,在模型文件中的空白区域有个英文的注释,对模型进行了详细的描述。

在这里插入图片描述
本设计使用了多个 AXI 接口。您将很快回顾这些内容

  • 使用 AXI 接口允许导出到 Vivado IP 目录的设计有效地集成到使用 IP Integrator 的更大系统中
  • 导出到 IP Catalog 的设计并不要求使用 AXI 接口

本设计使用以下 AXI 接口:

  • 端口 s_axis_source_* 使用 AXI4-Stream 接口。所有网关输入和输出信号都以相同的名称(s_axis_source_)作为前缀,确保它们被分组到相同的接口中。所有端口的后缀都是有效的 AXI4-Stream 接口信号名称(tready、tvalid、tlast 和 tdata)
  • 类似地,对 m_axis_dout_* 端口使用了一个 axis4-stream 接口
  • 剩下的端口使用了一个 AXI4-Lite 接口。你可以使用以下步骤进行确认

双击 Gateway In 的实例,decrypt(或者是其他的 reset,Keys[63:32],Keys[31:0] 以及 parity_err),在属性编辑界面选择 Implementation 这一项,Interface 选项设定的是否为 AXI4-Lite,依次将讲到的所有 Gate 实例都检查一遍,确保接口选择的是 AXI4-Lite。举例如下
在这里插入图片描述
点击 OK 保存并关闭

2、使用 System Generator IP 创建一个 Vivado 项目

在此步骤中,你将创建一个用于创建硬件设计的 Vivado 项目
①、双击 System Generator 令牌以打开 Properties Editor,在属性编辑器中,确保为编译类型选择了 IP Catalog,单击 Generate 以 IP Catalog 格式生成设计
在这里插入图片描述

②、单击 OK 以关闭编译状态对话框
在这里插入图片描述
该设计以 IP Catalog 格式写入到 D:/Project/SystemGenerator_Prj/Lab5_1 目录中。现在,将把该 IP 导入到 Vivado IP Catalog 中,并在现有的示例项目中使用该 IP

③、开始创建 Vivado 工程
<1>、打开 Vivado 2017.4,打开后,点击 Create Project 创建新工程
在这里插入图片描述
<2>、点击 Next,将工程路径设置为刚刚 System Generaotr 导出文件对应的 D:/Project/SystemGenerator_Prj/Lab5_1 对应的目录路径,工程名字可默认,也可自行定义
在这里插入图片描述
<3>、点击 Next,选 RTL Project,把 Do not… 这个勾选上,然后 Next
在这里插入图片描述
<4>、我这里选择我手头的一块 FPGA 板子,相关参数如下:
在这里插入图片描述
<5>、点击 Next,然后检查下总结,无误后点击 Finish。
在这里插入图片描述

3、创建 IP 集成设计(IPI)

在这一步中,将使用 System Generator IP 创建一个设计
①、单击 “Create Block Design” 窗格中的“创建块设计”
在这里插入图片描述

②、在 “Create Block Design” 对话框中,单击 “确定” 接受默认名称。你将首先为 System Generator IP 创建一个 IP 存储库,并将 IP 添加到存储库中,点击 OK
在这里插入图片描述

③、右键单击 Diagram 窗口并选择 IP Settings
在这里插入图片描述

④、在 Settings 的界面下,依次找到 Project Settings -> IP -> Repository,然后在右边点击 “+”,添加相关的 IP 文件到存储库中
在这里插入图片描述

⑤、然后在弹出的文件选择界面,找到通过 System Generator 生成的 IP 文件,本设计的路径:D:\Project\SystemGenerator_Prj\Lab5_1\ip,选好 ip 后点击Select,然后再弹出的 Add Repository 对话框点 OK
在这里插入图片描述
这时候的 IP Repositories 界面就多了一项,点击 OK 保存并关闭
在这里插入图片描述

⑥、Diagram 界面中的中间有个 “+”,单击界面的“+”,然后再弹出的对话框,搜索 zynq,然后双击 ZYNQ7 Processing System,将其添加到设计中
在这里插入图片描述

⑦、添加成功后,点击 Diagram 下的 Run Block Automation
在这里插入图片描述
在出现的界面,确保 option 下的 Apply Board Preset 是选择的,然后保持默认配置,点击 OK
在这里插入图片描述

⑧、回到 Diagram 界面,在空白处右键单击,然后选择 Add IP
在这里插入图片描述
在对话框中输入 System Generaor 设计的文件名,本设计的名字为 Lab5_1,双击 Lab5_1
在这里插入图片描述

⑨、接下来就需要将 IP 连接到设计的其余部分,当使用 AXI 接口的时候,Vivado IP Integrator 提供了自动连接的功能,在 Diagram 的空白部分点一下,确保没选中 AXI 模块,然后点击 Run Connection Automation
在这里插入图片描述
在出现的对话框保持默认状态,然后按 OK 继续
在这里插入图片描述
等待一下会儿,连线完成,结果如下
在这里插入图片描述

⑩、双击 ZYNQ7 Processing System 以自定义 IP,在出现的界面点击 PS-PL Configuration,展开 HP Slave AXI Interface 然后选择 S AXI HP0 interface,将框框勾上,如下
在这里插入图片描述
点击 OK,将此端口添加到 ZYNQ7 Processing System
在这里插入图片描述

⑪、找到 AXI 模块的输入接口,s_axis_source,然后用鼠标拖到 processing_system7_0 的 S_AXI_HP0 接口,然后会出现绿色的勾
在这里插入图片描述
松开鼠标,弹出的对话框,直接点击 OK,让其自动连接
在这里插入图片描述
然后继续点击上方的 Run Connection Automation,出现的界面保持默认配置,点击 OK,使得其余的线连接完成,连接后的结果如下:
在这里插入图片描述

⑫、在 Diagram 的下方有个 Validate Design 的工具,使用它来进行设计的检查,确保无误
在这里插入图片描述
单击该按键,等待一会儿,出现检查结果,说明此时无误
在这里插入图片描述

点击 OK 关闭,此时已经相当于 System Generator 的设计已经成功的导入 IP Integrator 的设计中,存储库的 IP 可以在任何 Vivado 的项目中进行使用,只需要将存储库添加到项目中即可。

接下来将完成设计的最后一步,运行设计生成比特流数据。

4、实现设计

在这一步中,您将实现 IPI 设计并生成比特流
①、在 Flow Navigator 的界面下,点击 Project Manager,使其返回到工程管理的界面
在这里插入图片描述

②、Sources 的菜单下,对 Design Sources 下的设计即 design_1 右击,并单击 Generate Output Products
在这里插入图片描述

③、在 Generate Output Products 的对话框下,点击 Generate 开始启动以生成必要源文件的过程
在这里插入图片描述

④、等待生成完成后,再一次右击 design_1,选择 Create HDL Wrapper
在这里插入图片描述

⑤、保持默认的 Let Vivado manage wrapper and auto-update,然后点击 OK 退出窗口
在这里插入图片描述

⑥、这时候的 Design Sources 的源文件已经变成了 design_1_wrapper.v,这时的文件已经可以被用于综合,实现以及生成 FPGA下 载所需的比特流数据。
在这里插入图片描述

⑦、在 Flow Navigator 菜单下,点击 Generate Bitstream,用以启动其余部分
在这里插入图片描述
在弹出的界面点击 Yes,继续运行
在这里插入图片描述
出现 Launch Runs 的对话框,按 OK 开始运行
在这里插入图片描述

⑧、等待编译完成后,在出现的对话框中,选择 Open Implemented Design 并且点击 OK
在这里插入图片描述
⑨、观察此时已实现的设计,设计最后一步也到此结束,可以关闭 Vivado 了。
在这里插入图片描述


总结

在本实验中,你了解了如何将 AXI 接口添加到 System Generator 设计中,以及如何将 System Generator 设计保存为 IP Catalog 格式,合并到 Vivado IP Catalog 中,并在更大的设计中使用。还看到了在设计中使用 AXI 接口时, IP Integrator 如何通过连接自动化和提示大大提高生产率。


我的qq:2442391036,欢迎交流!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1065101.html

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

相关文章

「专题速递」回声消除算法、低功耗音频、座舱音频系统、智能音频技术、低延时音效算法、手机外放增强算法...

随着多媒体和通信网络技术的持续升级&#xff0c;以及新型音视频应用场景的不断涌现&#xff0c;音频处理技术正朝着更加智能化和沉浸化的方向迅猛发展。人们对音频听觉体验的要求也逐渐提高&#xff0c;无论是在何种场景下&#xff0c;都期望获得更加清晰的声音&#xff0c;并…

吃鸡高手必备!这些技巧帮你提高战斗力!

大家好&#xff01;作为一名吃鸡玩家&#xff0c;我们都想提高自己的战斗力&#xff0c;享受顶级游戏作战干货&#xff0c;装备皮肤库存展示和查询&#xff0c;并避免被骗游戏账号。在这里&#xff0c;我将为大家介绍一些实用的技巧和工具&#xff0c;让你成为吃鸡高手&#xf…

三相逆变器下垂控制双机

下垂控制的原理推荐看这篇知乎&#xff08;形象又生动&#xff09;&#xff1a;https://www.zhihu.com/question/41003509/answer/518837491 主拓扑图 控制主要模块 Droop子模块 监控有功结果 1、从两台逆变器输出的有功功率波形可以看到&#xff0c;在负载突变的时候&#xf…

卷积网络的发展历史-AlexNet

简介 2012 年&#xff0c;Krizhevsky 与 Hinton 推出了 AlexNet&#xff0c;引起了许多学者对深度学习的研究&#xff0c;可以算是深度学习的热潮的起始标志。在图像分类领域不得不提的就是ImageNet大规模视觉挑战赛(ILSVRC)&#xff0c;它被称为深度学习在图像分类任务研究方…

《Spring框架原理》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

杂记 define,typedef,static,memset,ifndef,递归,逻辑与,整型提升,算术转换

目录 常量&#xff0c;define typedef static ​编辑​编辑 #define定义常量和宏 指针 ​编辑 操作系统&#xff0c;网络 system执行系统命令 memset ifndef 递归 冒泡排序 单目操作符 逻辑与&& 隐式类型转换 整型提升 算术转换 有符号无符号所占的…

网络架构中PHY芯片可否不使用网络变压器/网络隔离变压器连接呢?

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;常有人询问网络架构中&#xff0c;PHY芯片通常使用的网络变压器&#xff08;也叫网络隔离变压器&#xff09;可否节省不用&#xff0c;以降低成本&#xff0c;今天就相关问题做个探讨&#xff1b; 一 &#xff0c;P…

吃鸡达人必备!提高战斗力、分享干货、查询安全!

大家好&#xff01;作为吃鸡玩家&#xff0c;想必大家都希望能够提高自己的游戏战斗力&#xff0c;分享顶级游戏作战干货&#xff0c;并且方便进行作图、查询装备皮肤库存&#xff0c;更重要的是&#xff0c;防止被骗游戏账号进入黑名单。今天&#xff0c;我就给大家介绍一家专…

vue.js 生命周期

在页面首次加载执行顺序有如下&#xff1a; beforeCreate //在实例初始化之后、创建之前执行created //实例创建后执行beforeMounted //在挂载开始之前调用filters //挂载前加载过滤器computed //计算属性directives-bind //只调用一次&#xff0c;在指令第一次绑定到元素时调…

MySQL语句大总结

基础语法数据库约束复杂语法1&#xff1a;聚合查询&#xff08;所谓聚合计算聚合函数的结果&#xff09;2&#xff1a;联合查询什么是内连接&#xff1b;什么是外连接&#xff1f;3&#xff1a;子查询&#xff08;套娃,慎用&#xff09;4&#xff1a;合并查询 基础语法 建库 c…

如何使用 Hotshot 通过文字生成 GIF 动画

Hotshot 是一个基于人工智能的工具&#xff0c;可用于通过文字生成 GIF 动画。该工具使用最新的图像生成技术来创建逼真的动画&#xff0c;即使是复杂的文字描述也能做到。 hotshot访问地址 使用 Hotshot 生成 GIF 动画 要使用 Hotshot 生成 GIF 动画&#xff0c;您需要首先…

吃鸡高手亲授:玩转绝地求生,分享顶级游戏干货!

绝地求生&#xff08;PUBG&#xff09;自上线以来&#xff0c;成为了全球热门游戏。作为吃鸡行家&#xff0c;我将分享一些独家技巧和干货&#xff0c;帮助您提高游戏战斗力&#xff0c;享受顶级游戏作战体验&#xff01; 首先&#xff0c;让我们谈一谈战斗力升级。想要在吃鸡游…

卷积网络的发展历史-LeNet

简介 LeNet是CNN结构的开山鼻祖&#xff0c;第一次定义了卷积神经网络的结构。 LeNet模型包含了多个卷积层和池化层&#xff0c;以及最后的全连接层用于分类。其中&#xff0c;每个卷积层都包含了一个卷积操作和一个非线性激活函数&#xff0c;用于提取输入图像的特征。池化层…

FreeRTOS入门教程(队列详细使用示例)

文章目录 前言一、队列基本使用二、如何分辨数据源三、传输大块数据总结 前言 上篇文章我们已经讲解了队列的概念和队列相关的API函数&#xff0c;那么本篇文章的话就开始带大家来学习使用队列。 一、队列基本使用 这个例子将会创建三个任务&#xff0c;其中两个任务用来发送…

Netty(四)NIO-优化与源码

Netty优化与源码 1. 优化 1.1 扩展序列化算法 序列化&#xff0c;反序列化主要用于消息正文的转换。 序列化&#xff1a;将java对象转为要传输对象(byte[]或json&#xff0c;最终都是byte[]) 反序列化&#xff1a;将正文还原成java对象。 //java自带的序列化 // 反序列化 b…

互联网Java工程师面试题·Memcached 篇·第二弹

目录 10、memcached 如何实现冗余机制&#xff1f; 11、memcached 如何处理容错的&#xff1f; 12、如何将 memcached 中 item 批量导入导出&#xff1f; 13、如果缓存数据在导出导入之间过期了&#xff0c;您又怎么处理这些数据呢&#xff1f; 14、memcached 是如何做身份…

3. 安装lombok maven镜像设置

安装lombok & maven镜像设置 一、maven镜像设置 Maven:负责进行项目管理、依赖工具管理的 软件。 快捷解决方案&#xff1a; 1.方法一 直接配置系统默认的文件 各个人因为登录的用户名不同&#xff0c;所以目录名不同。 2.方法二 自定义本地仓库的位置 完成之后重新打…

混合优化算法(optimtool.hybrid)

import optimtool as oo from optimtool.base import np, sp, pltpip install optimtool>2.5.0混合优化算法&#xff08;optimtool.hybrid&#xff09; import optimtool.hybrid as oh oh.[方法名].[函数名]([目标函数], [参数表], [初始迭代点], [正则化参数], [邻近算子名…

【5G PHY】5G BWP(BandWidth Part)介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

1.Window10 JDK8安装与配置(更新版)

Window10 JDK8安装与配置(更新版) 1&#xff0c;JDK安装 版本知识 注意&#xff1a;安装目录绝对不能出现中文及特殊符号&#xff0c;不能以数字开头。一定要以管理员身份打开。 具体下载步骤可参考&#xff1a;Window10 JDK8安装与配置详细步骤 安装尽量不要到系统盘&…