System Generator学习——时间和资源分析

文章目录

  • 前言
  • 一、目标
  • 二、步骤
  • 三、步骤 1 :系统生成器的时序分析
    • 1、时序分析
    • 2、解决时间违规问题
  • 四、步骤 2 :系统生成器中的资源分析
  • 总结


前言

在本节实验中,你将学习如何通过在 Simulink 中进行仿真来验证设计的功能,以确保在目标 Xilinx 设备中实现设计时,System Generator 设计是正确的


一、目标

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

  • 识别由 System Generator 生成的 HDL 文件中的计时问题,并发现设计中计时违规的根源
  • 执行资源分析并访问现有的资源分析结果,并提出优化建议

二、步骤

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

  • 在第 1 步中,您将学习如何在 System Generator 中进行时序分析
  • 在第 2 步中,您将学习如何在 System Generator 中执行资源分析

三、步骤 1 :系统生成器的时序分析

1、时序分析

①、启动 System Generator 并打开 Simulink 将 Lab3\Lab3_1.slx 打开,如下图所示
在这里插入图片描述

②、从您的 Simulink 项目工作表中,选择仿真 Simulation -> Run 或单击运行仿真按钮来模拟设计。
在这里插入图片描述

③、双击 System Generator 令牌以打开 Properties Editor,选择时钟选项卡,从执行分析菜单中,选择合成后,从分析器类型菜单中选择计时,如下所示
在这里插入图片描述

④、在 System Generator 对话框中,单击 “生成”,生成时,显示如下信息:

  • a. 系统生成器为选定的编译目标生成所需的文件。为了进行时序分析,System Generator 在设计项目的后台调用 Vivado,并将设计时序约束传递给 Vivado
  • b. 根据你选择的执行分析(合成后或实现后),设计通过合成或实现在 Vivado 中运行
  • c. Vivado 工具运行完成后,将从 Vivado 定时数据库中收集定时路径信息,并以特定的文件格式保存。在时序路径数据采集结束时,关闭 Vivado 项目,并将控制传递给 MATLAB/System Generator 进程
  • d. System Generator 处理时序信息,并显示时序分析器表,其中包含时序路径信息,如下所示

在这里插入图片描述
⑤、在定时分析仪表中

  • 显示最低松弛值的路径,最坏的松弛在顶部,下面的松弛增加
  • 与时间冲突的路径有负松弛,并显示为红色

⑥、通过单击 Timing Analyzer 表中的任何路径,从 Timing Analyzer 表交叉探测到 Simulink 模型,这将突出显示模型中相应的 System Generator 块。这允许你通过分析发生时间违规的路径来排除故障,交叉探测时,可以看到如下图所示的相应路径,与时间冲突的块以红色突出显示
在这里插入图片描述
⑦、双击计时分析器表中的第四条路径,交叉探测,对应的路径以绿色高亮显示,表示没有计时违规
在这里插入图片描述
如果您关闭了 Timing Analyzer,并且稍后你可能希望使用该模型的现有计时分析器结果重新启动 Timing Analyzer 表。在 System Generator 令牌对话框的 clock 选项卡下提供了一个 Launch 按钮。只有当您已经在 Simulink 模型上运行时序分析时,这才会起作用。
在这里插入图片描述

2、解决时间违规问题

①、通过在组合路径中插入一些寄存器可以获得更好的计时结果,并且可以帮助克服计时违规(如果有的话)。这可以通过改变组合块的延迟来实现,如下所述

②、再次双击计时分析器中的违规路径,将打开违规路径,如下所示,但还是存在着其他的问题有待解决
在这里插入图片描述
③、双击 Mult 块打开 Multiplier 块参数窗口,在“基本”选项卡下,将延迟从 “1” 更改为 “2”,然后单击 “确定”
在这里插入图片描述
④、双击 System Generator token,确保 “Analyzer Type” 为 “Timing”,点击 Generate,生成完成后,将打开计时分析器表,如下所示,可见刚刚的 Mult 红色已不在了
在这里插入图片描述

四、步骤 2 :系统生成器中的资源分析

在这一步中,我们使用与第一步相同的设计,但我们将执行资源分析

1、打开 Lab3_2.slx 设计
在这里插入图片描述
提示:无论何时生成以下任何编译目标,都可以执行资源分析:①、IP目录,②、硬件协同仿真,③、合成检查点,4、HDL 网表。

②、双击 Simulink 模型中的 System Generator 令牌。确保指定了该部分,并且将 Compilation 设置为上面列出的任何一个编译目标
在这里插入图片描述

③、在 “时钟” 选项卡中,将“执行分析”字段设置为 “合成后” ,将“分析器”类型字段设置为 “资源”
在这里插入图片描述
④、在 “系统生成器令牌” 对话框中,单击 “生成”。System Generator 处理资源利用数据,并显示一个 Resource Analyzer 表,其中包含资源利用信息
在这里插入图片描述
表中的每个列标题(例如,BRAMs、DSPs 或 LUTs)显示了您的设计目标所针对的 Xilinx 设备中每种类型的可用资源的总数。表格的其余部分显示了设计中每个子系统和块的分层列表,以及这些资源类型的计数

⑤、通过单击 Resource Analyzer 表中的块或子系统名称,可以从 Resource Analyzer 表交叉探测到 Simulink 模型,这将突出显示模型中相应的 System Generator 块或子系统。交叉探测对于识别使用特定类型资源实现的块和子系统非常有用。在表中选择的块将以黄色突出显示,并以红色概述
在这里插入图片描述

⑥、如果在表中选择的块或子系统位于上层子系统中,那么除了下面所示的底层块之外,父子系统将以红色突出显示
在这里插入图片描述


总结

在本实验中,学习了如何在系统生成器中使用时序和资源分析,从而调用 vivado 合成来收集用于分析的信息。还学习了如何识别违反时序的路径,并对其进行简单设计的故障排除。


我的qq:2442391036,欢迎交流!


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

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

相关文章

力扣第226翻转二叉数 c++三种方法 +注释

题目 226. 翻转二叉树 简单 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出&am…

常见的几种排序方式

常见的几种排序方式 1. 排序的概念2. 常见排序算法的实现2.1 插入排序2.1.1基本思想2.1.2 直接插入排序2.1.3 希尔排序( 缩小增量排序 ) 2.2 选择排序2.2.1基本思想2.2.2 直接选择排序:2.2.3 堆排序 2.3 交换排序2.3.1冒泡排序2.3.2 快速排序 2.4 归并排序2.4.1 基本思想2.4.2 …

知识图谱小白入门(1):neo4j的安装与CQL的使用

文章目录 序一、安装neo4j1.1 下载neo4j1.2 安装JDK1.3 BUG:dbms failed to start 二、CQL语法2.1 CQL语法创建节点查询节点创建关系查询关系2.2 习题 习题答案 序 知识图谱,是一种实体间的信息与关系知识的网状结构,借用图论中点与边的概念…

阿里云服务器镜像系统Anolis OS龙蜥详细介绍

阿里云服务器Anolis OS镜像系统由龙蜥OpenAnolis社区推出,Anolis OS是CentOS 8 100%兼容替代版本,Anolis OS是完全开源、中立、开放的Linux发行版,具备企业级的稳定性、高性能、安全性和可靠性。目前阿里云服务器ECS可选的Anolis OS镜像系统版…

【Java】猫和狗接口版本思路分析

目录 猫🐱和狗🐕(接口版本) 画图分析 案例代码 猫🐱和狗🐕(接口版本) 需求:对猫和狗进行训练,它们就可以跳高了,这里加入了跳高功能&#xff0…

Python常用功能的标准代码

后台运行并保存log 1 2 3 4 5 6 7 8 9 nohup python -u test.py > test.log 2>&1 & #最后的&表示后台运行 #2 输出错误信息到提示符窗口 #1 表示输出信息到提示符窗口, 1前面的&注意添加, 否则还会创建一个名为1的文件 #最后会把日志文件输出到test.log文…

阿里云服务器IP地址查询方法(公网IP和私网IP)

阿里云服务器IP地址在哪查看?在云服务器ECS管理控制台即可查看,阿里云服务器IP地址包括公网IP和私有IP地址,阿里云百科分享阿里云服务器IP地址查询方法: 目录 阿里云服务器IP地址查询 阿里云服务器IP地址查询 1、登录到阿里云服…

软件设计模式系列之二十五——访问者模式

访问者模式(Visitor Pattern)是一种强大的行为型设计模式,它允许你在不改变被访问对象的类的前提下,定义新的操作和行为。本文将详细介绍访问者模式,包括其定义、举例说明、结构、实现步骤、Java代码实现、典型应用场景…

卷积神经网络-卷积层

卷积神经网络 卷积神经网络(convolutional neural network,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分…

算法:强连通分量(SCC) Tarjan算法

强连通分量&#xff0c;不能再加任何一个点了&#xff0c;再加一个点就不是强连通了 vector<int>e[N]; int dfn[N],low[N],tot; bool instk[N]; int scc[N],siz[N],cnt; void tarjan(int x){//入x时,盖戳,入栈dfn[x]low[x]tot;q.push(x);instk[x]true;for(auto y:e[x]){i…

卷积神经网络-池化层和激活层

2.池化层 根据特征图上的局部统计信息进行下采样&#xff0c;在保留有用信息的同时减少特征图的大小。和卷积层不同的是&#xff0c;池化层不包含需要学习的参数。最大池化(max-pooling)在一个局部区域选最大值作为输出&#xff0c;而平均池化(average pooling)计算一个局部区…

新款UI动态壁纸头像潮图小程序源码

新款UI动态壁纸头像潮图小程序源码&#xff0c;不需要域名服务器&#xff0c;直接添加合法域名&#xff0c;上传发布就能使用。 可以对接开通流量主&#xff0c;个人也能运营&#xff0c;不需要服务器源码完整。整合头像&#xff0c;动态壁纸&#xff0c;文案功能齐全。 源码…

pyqt5使用经验总结

pyqt5环境配置注意&#xff1a; 安装pyqt5 pip install PyQt5 pyqt5-tools 环境变量-创建变量名&#xff1a; 健名&#xff1a;QT_QPA_PLATFORM_PLUGIN_PATH 值为&#xff1a;Lib\site-packages\PyQt5\Qt\plugins pyqt5经验2&#xff1a; 使用designer.exe进行设计&#xff1…

智慧公厕:将科技融入日常生活的创新之举

智慧公厕是当今社会中一项备受关注的创新项目。通过将科技融入公厕设计和管理中&#xff0c;这些公厕不仅能够提供更便利、更卫生的使用体验&#xff0c;还能够极大地提升城市形象和居民生活质量。本文将以智慧公厕领先厂家广州中期科技有限公司&#xff0c;大量的精品案例项目…

黑豹程序员-架构师学习路线图-百科:CSS-网页三剑客

文章目录 1、为什么需要CSS2、发展历史3、什么是CSS4、什么是SASS、SCSS 1、为什么需要CSS 作为网页三剑客的第二&#xff0c;CSS为何需要它&#xff0c;非常简单HTML只能完成页面的展现&#xff0c;但其做出来的页面奇丑无比。 随着网络的普及&#xff0c;人们的要求更高&…

cmip6数据处理之降尺度

专题一 CMIP6中的模式比较计划 1.1 GCM介绍全球气候模型&#xff08;Global Climate Model, GCM&#xff09;&#xff0c;也被称为全球环流模型或全球大气模型&#xff0c;是一种用于模拟地球的气候系统的数值模型。这种模型使用一系列的数学公式来描述气候系统的主要组成部分…

arm 汇编基础指令

实现1-100求和 .text .globl _start_start:mov r0, #1 i&#xff0c;i1mov r1, #100 条件变量i<100mov r2, #0 sumLoop: 循环cmp r0,r1 比较r0和r1的大小bhi stop 当r0>r1时&#xff0c;跳到stop标签a…

STM32G070RBT6-MCU温度测量(ADC)

1、借助STM32CubeMX生成系统及外设相关初始化代码。 在以上配置后就可以生成相关初始化代码了。 /* ADC1 init function */ void MX_ADC1_Init(void) {/* USER CODE BEGIN ADC1_Init 0 *//* USER CODE END ADC1_Init 0 */ADC_ChannelConfTypeDef sConfig {0};/* USER COD…

十天学完基础数据结构-第八天(哈希表(Hash Table))

哈希表的基本概念 哈希表是一种数据结构&#xff0c;用于存储键值对。它的核心思想是将键通过哈希函数转化为索引&#xff0c;然后将值存储在该索引位置的数据结构中。 哈希函数的作用 哈希函数是哈希表的关键部分。它将输入&#xff08;键&#xff09;映射到哈希表的索引位…

全志ARM926 Melis2.0系统的开发指引⑧

全志ARM926 Melis2.0系统的开发指引⑧ 编写目的12.5. 应用程序编写12.5.1. 简单应用编写12.5.1.1. 注册应用12.5.1.2. 创建管理窗口12.5.1.3. 实现管理窗口消息处理回调函数12.5.1.4. 创建图层12.5.1.5. 创建 framewin12.5.1.6. 实现 framewin 消息处理回调函数 -. 全志相关工具…