Xilinx系FPGA学习笔记(四)VIO、ISSP(Altera)及串口学习

系列文章目录


文章目录


VIO(Vivado)

VIO 的全称叫 Virtual Input/Output,建立一个虚拟的输入/输出信号,可以对需要调试的模块的输出信号的数值进行在线的查看,以及模拟一些信号输给需要调试模块,方便调试查找问题和验证模块的实际上板工作的正确性。该工具和 Altera Quartus 中的 ISSP 工具类似。

设置输入

这里有一个提示,提示通过该界面设置最多可设置 64 个探针,如果想设置更多的探针需要使用 Tcl 脚本命令去设置

设置输入输出的个数/位数、默认值

使能 Input Probe 的 Active detectors 功能,每个 VIO Croe 输入都有额外的单元来捕获输入信号的变化。由于设计时钟(待捕获的信号所处的时钟)可能比分析仪的采样时钟要快,因此被监测的信号可能在连续采样之间多次变化。Active detectors 功能就是用来捕获此行为,让其结果与 vivado 逻辑分析器中的值一起显示。

然后我们在对应的模块里面例化该ip核就行

c 复制代码
//使用 vio 设置串口发送数据
vio_0 vio_0 (
.clk(clk), // input wire clk
.probe_out0(test_en), // output wire [0 : 0] probe_out0
.probe_out1(data_byte) // output wire [7 : 0] probe_out1
);

之后编译下载 bit 文件,还同时需要下载 ltx 文件,ltx 文件是由于添加在线调试工具 VIO IP Core 额外产生的,这个文件生成位置和 bit 文件是在同一个目录下,下载的时候,软件会自动关联到 ltx 文件和 bit 文件一起下载到板子

下载后,点击右边 vio 界面的 +,选择要添加的信号

对于单bit信号,右键可以设置为按键,以右键Active-High Button为例,可以将其设置为一个按键,按键按下,test_en 的值变为 1,松开鼠标后值变为 0

ISSP(Altera)

IP核--ISSP (Iln-System Sources and Probes),这个IP核可以提供一个输出用来在线输出,相当于一个简单的信号发生器--Source,此外还可以提供探针Probes来在线监控信号的输出。

选择是否指定例化IP的编号,默认设置,不用修改

是否设置IP核的ID号。因为在一个工程中,可以例化多个In-System Sources and Probes Editor IP核,该ID号就是用来区分不同的IP核

用来设置探测(Probes)端口,probe功能我们用来检测信号,以此验证输入数值是否能有对应的正确输出,位宽设置为7,

用来设置驱动(Sources)端口,比如我们检测一个模块是否正常的时候,source可以用于输入,probes用于检测输出

高级设置选项。可以用来设置驱动信号的初始值以及发送驱动信号是否与源时钟同步。(通常保持默认即可)

下载程序后,在Quartus ll中Tools打开In-System Sources and Probes Editor,然后就可以观测数据了,看上去类似signeltap

c 复制代码
//例化ISSP IP核
Sou_Pro	Sou_Pro_inst (
	.probe 			(xxx	),			
	.source 		(xxxxx  )			
);

串口学习

FPGA串口发送

首先根据波特率设置一个合适的数据发送时钟,之后在发送端口赋值就行,有起始位、数据位、停止位的共10bit

设置一个发送开始和结束标志信号,方便外部模块调用

有一点注意:发送的数据是外部给的,这个数据该打几拍,是否是跨时钟域的

下图是打排一次的情况,这是必要的,串口数据发送的时候,这个数据不能变,但如果跨时钟域,是否该打拍两次呢?这样数据会延后两个时钟周期,对应的程序设计也要打排,可以把使能信号也打排延迟,进行对齐

FPGA串口接收

串口接收,首先要对数据线打拍寄存,捕获边沿,抓取起始位,之后如何获取数据有各自不同的方式

可以在一位数据的时钟周期中间抓取高低电平,也可以抓取几次,例如在中间抓8次,累计,最后计数值大于4就是高电平

相关推荐
charlie11451419112 分钟前
勇闯前后端Week2:后端基础——Flask API速览
笔记·后端·python·学习·flask·教程
深蓝海拓28 分钟前
OpenCV学习笔记之:调整ORB算法的参数以适应不同的图像
笔记·opencv·学习
d111111111d29 分钟前
STM32外设--SPI读取W25Q64(学习笔记)硬件SPI
笔记·stm32·单片机·嵌入式硬件·学习
摇滚侠30 分钟前
2025最新 SpringCloud 教程,Nacos-配置中心-数据隔离-动态切换环境,笔记18
java·笔记·spring cloud
q***563831 分钟前
Springboot3学习(5、Druid使用及配置)
android·学习
TracyCoder12332 分钟前
微服务概念理解学习笔记
学习·微服务·架构
零匠学堂20251 小时前
如何通过培训考试系统提升网络学习平台的效果?
学习
f***24111 小时前
java学习进阶之路,如果从一个菜鸟进阶成大神
java·开发语言·学习
后端小张1 小时前
【AI 学习】从0到1深入理解Agent AI智能体:理论与实践融合指南
人工智能·学习·搜索引擎·ai·agent·agi·ai agent
九年义务漏网鲨鱼2 小时前
【大模型学习】现代大模型架构(二):旋转位置编码和SwiGLU
深度学习·学习·大模型·智能体