news 2026/2/26 6:35:13

【正点原子FPGA学习日记】DAY4:在线逻辑分析仪的使用和VivadoModelsim联合仿真以及IP核的使用流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【正点原子FPGA学习日记】DAY4:在线逻辑分析仪的使用和VivadoModelsim联合仿真以及IP核的使用流程

一,在线逻辑分析仪

1,简介

在线逻辑分析仪的功能被称为“集成逻辑分析器(Integrated Logic AnalyzerILA”,它以 IP 核的形式来加入到用户设计中。Vivado提供了三种具有不同集成层次的插入ILA方法,本文中主要介绍最常用的一种;
① 在 HDL 代码综合之前为想要观察的 reg 或 wire 信号添加“Mark Debug”综合属性;
②然后通过一个简单的“Setup Debug”向导来设置各个探针和 ILA IP 核的工作参数,工具会根据用户设置的参数,自动地生成各个 ILA IP 核,这个方法也被称为“使用 Debug 标记创建 ILA 调试环境”。
③用户设置的调试信息会以 Tcl XDC 调试命令的形式保存到 XDC 约束文件中,在实现阶段,Vivado 会读取这些 XDC 调试命令,并在布局布线时加入这些 ILA IP 核。
④在调试工作完毕之后,用户可以在HLD 代码中删除之前添加的“Mark Debug”综合属性,并且在 XDC 文件中删除调试命令,然后再对设计进行重新编译,以生成最终的比特流。

2,具体步骤

2.1打开综合后的设计

选择其中的debug界面

2.2添加mark debug属性

方法1:在debug图形化界面右键标记mark debug

方法2:在netlist网表文件中选择mark debug

方法3:找到.v文件,在reg或者wire定义行输入(*mark_debug="true"*)

通常使用的顺序是从方法1使用到方法3,有些无法用方法1标记,但是最终都能够被方法3进行标记

2.3重新进行综合操作

前面对.v文件进行了修改,因此需要对整个文件进行重新综合

2.4开始debug

debug完成之后记得按cltr s保存文件,然后生成比特流文件。然后下载程序

2.5调试完成恢复原样

删除xdc文件中新增的多余信息

删除.v文件中的mark debug指令(不删除也可以,但是影响阅读),然后再重新生成比特流文件就行

二,IP核之PLL

1,PLL简介

Xilinx7 系列器件中的时钟资源包含了时钟管理单元 CMT(全称Clock Management Tile,即时钟管理单元),每个 CMT一个MMCM(全称Mixed-Mode Clock Manager,即混合模式时钟管理)和一个PLL(全称 Phase Locked Loop,即锁相环)组成。接下来我们讲解一下MMCMPLL各自的含义以及两者的区别。

(1)PLL:为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取数据等。PLL 用于振荡器中的反馈技术。锁相环作为一种反馈控制电路,其特点是利用外部输入的参考信号来控制环路内部震荡信号的频率和相位。

(2MMCM(混合模式时钟管理):是基于PLL的新型混合模式时钟管理器,实现了最低的抖动和抖动滤波,为高性能的 FPGA设计提供更高性能的时钟管理功能。
(3)MMCM是一个PLL上加入DCM的一部分以进行精细的相移,也就是说MMCMPLL的基础上加上了相位动态调整功能,又因为 PLL是模拟电路,而动态调相是数字电路,所MMCM被称为混合模式,MMCM相对PLL优势就是相位可以动态调整,但PLL占用的面积更小,而在大部分的设计当中大家使用 MMCM或者PLL来对系统时钟进行分频、倍频和相位偏移都是完全可以的。

2,IP核的配置

IP核可以理解为32中的库,都是由公司封装好提供给使用者提高设计效率的东西

本次任务目标:使用开发板输出 4个不同频率或相位的时钟,四个时钟分别为一个倍频时钟100MHz,一个倍频后相位偏移180度的时钟(100MHz),一个与系统时钟相同的时钟(50MHz)和一个分频时钟(25MHz),并在Vivado中进行仿真以验证结果,最后生成比特流文件并下载到开发板

2.1新建工程

新建一个空的工程,然后点击IP核的列表,找到想要使用的IP核,本实验中采用PLL的IP核,在列表中搜索CLOCK,选择clock wizard;

2.2配置IP核信息

之后双击IP soucre 列表中的IP名称,将会弹出IP核的配置窗口(可以理解为个性化定制)

修改输入时钟信号的频率为50Mhz(具体选项解释见开发指南504页)

如果对一个新的ip核不够了解,想要知道每个选项的具体意思,可以选择左侧的docutments,然后选择Product web选项,查看详细的使用文档

将output clock设置完后,点击summry界面,点击ok,点击generate,ip核配置完成

2.3编写代码

注意代码中的instance name和后面括号中的内容,都应该与实际代码内容相对应

这里的是主程序,实际上相当于有多个模块时的top程序,当多个模块之间需要数据传输时,需要用wire 定义数据名,如这里的locked

2.4Vivado&Modelsim联合仿真

共同步骤(联合仿真和使用vivado)

为什么之前用modelsim仿真,现在偏要联合仿真呢?

因为使用了Vivado的ip核,使用原语编辑而成的,modelsim没法识别

(联合仿真只用配置一次就行,后续视角以非第一次的视角进行)

2.4.1 在prj工程中,添加tb文件
2.4.2仿真

如果直接点击运行行为化仿真,就是调用Vivado自带的仿真软件进行仿真,缺点是仿真速度较慢

想要看到波形图,需要点击u_ipxx中的add to wave才能查看

如果在setting中选择第三方仿真,将会自动打开modelsim的界面进行仿真

(前提是需要配置好,如何配置见正点原子b站教程)

三,IP核之RAM

1,RAM简介

RAM 的英文全称是 Random Access Memory,即随机存取存储器,简称随机存储器,它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址的存储单元中读出数据,其读写速度是由时钟频率决定的。
存储器包括随机存储器RAM和只读存储器ROM,随机存储器包括静态 RAM和动态RAMRAM易失性存储器,断电之后内部存储的数据容易丢失,ROM是非易失性存储器,即使断电之后数据也不丢失。
静态RAM 的特点是存储容量相对不是很大,但是读写速度非常高。动态 RAM是存储容量非常大、但是读写速度相比于静态RAM 会稍低一些。只读存储器一般包括 PROM、EPROM 和 EEPROM 等,是非易失性的存储器。目前使用率较高的是EEPROM,其特点是容量相对较小,存储的一般是器件的配置参数信息。
本章我们学习的 RAM属于静态RAM,我们重点看下几种静态RAM的特性与区别
单口RAM的端口简介

2,RAM IP核配置

2.1新建工程

选择其中的block memory界面

2.2 IP核配置

其他选项保持默认

2.3代码书写

1,顶层代码,包含一个ip核与读写模块

这里的ip核例化模板,照样在ip中赋值模板工程即可

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/22 3:54:27

仅限内部使用的监控策略:私有化Dify资源观测性实践秘籍

第一章:私有化 Dify 资源监控的背景与意义在企业级 AI 应用快速落地的今天,大模型服务平台 Dify 因其灵活的编排能力和低代码开发体验被广泛采用。然而,当 Dify 部署于私有化环境时,资源使用情况变得复杂且难以统一掌控。服务器 C…

作者头像 李华
网站建设 2026/2/20 15:50:55

打通 C++ 与 Node.js 的跨语言交互通道

这里写自定义目录标题从实际需求出发:为何需要 callJS?核心功能:从注册到调用的完整闭环注册回调:setCallBack 搭建沟通桥梁合理的创建标题,有助于目录的生成同步调用:call 实现即时交互异步调用&#xff1…

作者头像 李华
网站建设 2026/2/25 0:17:43

list类

namespace bite {// List的节点类template<class T>struct ListNode{ListNode(const T& val T()) : _pPre(nullptr), _pNext(nullptr), _val(val){}ListNode<T>* _pPre;ListNode<T>* _pNext;T _val;};//List的迭代器类template<class T, class Ref, …

作者头像 李华
网站建设 2026/2/21 19:09:25

Mac电脑往U盘拷贝文件有同名的“._”开头的文件,怎么避免?

在Mac电脑上往U盘拷贝文件时&#xff0c;操作系统自动创建一些“._”开头的文件。这些文件称为AppleDouble文件&#xff0c;是Mac OS在非Mac格式的磁盘上存储额外的文件属性、资源分支等信息。 避免产生这些文件的方法有&#xff1a; 使用CleanMyDrive或DotCleaner等第三方应用…

作者头像 李华
网站建设 2026/2/24 4:03:44

智能体完全指南:从理论到实践,适合小白和程序员的AI学习宝典

本文系统介绍了智能体的定义、类型及运行原理&#xff0c;详细阐述了从传统智能体到大语言模型驱动智能体的演进过程。通过PEAS模型和智能体循环解析了智能体的工作机制&#xff0c;并以智能旅行助手为例展示了实践方法。文章还探讨了智能体作为开发工具和自主协作者的两种应用…

作者头像 李华
网站建设 2026/2/22 23:11:07

如何用R语言完成高精度生态风险评估?这4个包你必须掌握

第一章&#xff1a;环境监测的 R 语言生态风险评估在环境科学领域&#xff0c;R 语言因其强大的统计分析与可视化能力&#xff0c;成为生态风险评估的重要工具。研究人员可利用其丰富的包生态系统对污染数据、物种分布及气候变量进行建模分析&#xff0c;从而识别潜在生态威胁。…

作者头像 李华