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就是高电平

相关推荐
云上艺旅5 小时前
K8S学习之基础七十四:部署在线书店bookinfo
学习·云原生·容器·kubernetes
你觉得2055 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
北京太速科技股份有限公司5 小时前
太速科技-FMC144 -八路 250MSPS 14bit AD FMC子卡
fpga开发
A旧城以西6 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
无所谓จุ๊บ6 小时前
VTK知识学习(50)- 交互与Widget(一)
学习·vtk
FAREWELL000757 小时前
C#核心学习(七)面向对象--封装(6)C#中的拓展方法与运算符重载: 让代码更“聪明”的魔法
学习·c#·面向对象·运算符重载·oop·拓展方法
吴梓穆7 小时前
UE5学习笔记 FPS游戏制作38 继承标准UI
笔记·学习·ue5
Three~stone7 小时前
MySQL学习集--DDL
数据库·sql·学习
齐尹秦7 小时前
HTML 音频(Audio)学习笔记
学习
V---scwantop---信8 小时前
英文字体:大胆都市街头Y2Y涂鸦风格品牌海报专辑封面服装字体 Chrome TM – Graffiti Font
笔记·字体