VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用

随着FPGA行业热度的水涨船高,越来越多的学校开设了对应的课程,但是相信有部分同学的学校和我们一样,采用的试验箱比较老旧,对应的芯片类型不支持目前主流的VIVADO,自己购入卡发板后熟悉软件是一个比较磨人的过程。本系列文章便是为了为想要熟悉VIVADO和入门SOC的同学分享一些经验。

1.建立FPGA工程

为你的工程命名并选择对应路径

可以选择在这里创建源文件,也可以选择在工程创立后创建,这里我们选择之后再添加。一直点NEXT就可以了。

根据你的芯片选择对应的芯片型号,可以通过封装啊,速度啊来减小筛选范围 。

再工程建立完成后,添加你的需要用到的自定义IP到工程的文件夹中,这里我们添加的IP文件夹名为user_src(用户源文件)里面一共有两个IP核,一个叫math是一个简单的加法器,另外一个为GPIO_LITE_ML_0.

 点击SEETING--->IP---->Repostiory,点击加号,添加上述文件夹路径。

再将被识别后的IP选中,连击OK。

 2.搭建 FPGA BD 工程

VIVADO本质上来说是一个调用IP核来实现功能的分步设计软件,SOC的设计的精髓就是IP核的调用。VIVADO的拖拽和绘图式连接无疑使得这一过程更加的直观,同时大大的降低了难度。

点击 IP INTEGROR 中的create Bolck Design

因为是SOC设计,所以这个实验工程中,除了我们上述添加的两个自定义IP,还需要调用一个处理器核。 我用的是ZYQN7020,这个芯片里自己集成了一块硬核,Z系列的其他芯片也有对应的硬核,如果卡发板上是其他系列的FPGA芯片可以从ARM官网上下载软核的IP来进行调用。除了处理器核,这里还会调用两个将来会很常用的IP核;Processor System Reset --复位 IP AXI Interconnect-- 总线互联 IP。

按住Ctrl+L后,输入这些IP核的名字,查找并调用他们,将它们摆放在相同位置后,如下图进行连线。在连线之前,双击这里的AXI Interconnect,设置成1个Slave,2个Mater的形式。然后注意时钟连线在一起,保证全局同步。

 添加逻辑分析仪IP,同样是Ctrl+L,查找ila模块。调用后双击该模块,进行参数设置,将其设置的与GPIO部分相匹配,然后相连接。这个里为了后续方便观察,我们引出GPIO_LED.只用选中该口后Ctrl+T即可。

下面一步我们添加vioIP。老规矩Ctrl+L,查找模块vio。添加进来后,双击VIO core 修改参数 。

然后将它与mathIP进行连接。

 右击需要观察的总线,这里选择 math_ip 的 S_AXI 接口,然后点击Debug。添加完成后,单击 内容框上方出现的Run Conection Automation。 

整体架构图如下所示 

 紧接着,根据电路板情况,编写引脚约束文件

1、分配引脚

2、电压设置

 3、对生成的bit文件进行压缩

3.SDK部分的搭建 

创建一个空的工程

同时创建并将下面的代码复制到main.c

/*
 * main.c
 *
 *  Created on: 2016年11月8日
 *      Author: Administrator
 */
#include <stdio.h>
#include "xparameters.h"
#include "xil_io.h"
#include "sleep.h"
#include "xil_types.h"

#define XGpio_axi_WriteReg(BaseAddr, RegOffset, Data)	\
		Xil_Out32((BaseAddr) + (u32)(RegOffset), (u32)(Data))
#define XPAR_GPIO_LITE_ML_0 XPAR_GPIO_LITE_ML_0_BASEADDR
#define GPIO_LITE_ML_REG0 0


#define MATH_IP_BASE XPAR_MATH_IP_0_BASEADDR
#define BIAS_ADDR0 0
#define BIAS_ADDR1 4
#define BIAS_ADDR2 0
u8 val=0;
int main()
{
	u8 i=0;


	Xil_Out32(MATH_IP_BASE+BIAS_ADDR0,0X42);
	Xil_Out32(MATH_IP_BASE+BIAS_ADDR1,0X12);
	val = Xil_In32(MATH_IP_BASE+BIAS_ADDR2);
	xil_printf("val=%x",val);


	XGpio_axi_WriteReg(XPAR_GPIO_LITE_ML_0,GPIO_LITE_ML_REG0,0X00);
	while(1)
	{
		for(i=0;i<=3;i++)
		{
		XGpio_axi_WriteReg(XPAR_GPIO_LITE_ML_0,GPIO_LITE_ML_REG0,1<<i);
		usleep(500000);
		}
		i=0;
	}

}

 对代码进行一定的解释,这是一段很简单的给加法器送数据和读数据的代码,while循环里放的是GPIO口值移位的程序。对总线概念不是很明确的同学可能不是很明白,去学习总线的相关概念后,整体就明朗了。

可以看到math IP的基地址为0x43C00000,所以在main中进行这个设置。两个地址偏移量和读地址偏移量是在IP核自定义时设置的,在后续我们也会分享如何自定义IP核心。

为了方便调试,我们可以在代码中添加一些断点,只需要双击main函数左边的蓝色框,即可在你期望的位置停下来。

 准备工作都玩成了,我们连接上JTAC准备进入到调试模式。调试模式的打开方式如下图。 

双击下图蓝色框部分

勾选下面两个选项,然后单击Apply,单机Debug

 进入调试模式后,可以连接串口

点击加号后,设置串口的端口号和波特率,方便接受我们在main中写的print函数打印出的结果。

 点击此处可以开始运行软核代码

4.观察时序图

 点击Open Taeget打开逻辑分析仪

可以看到我们打开了三个调试块,

第一部分是GPIO口的部分,运行后可以看到它会定时跳转。

第二部分是我们添加的AXI4总线部分可以设置好触发条件后,观察自己想了解的信号,同样这部分需要有一些总线基础知识。

 第三部分为VIO部分,我们也可以通过关闭片选信号,来测试逻辑的正确性

逻辑分析仪调用这部分就到此为止了,希望对大家有一点参考价值,下面是打包好的工程的链接,顺带安利一下不限速的阿里云盘。

「project_1」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 链接:https://www.aliyundrive.com/s/PxfVVkj9s4g

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vivado Logic Analyzer是Xilinx Vivado开发套件中的一个工具,用于分析和调试FPGA设计中的信号和时序。下面是使用Vivado Logic Analyzer的一般步骤: 1. 打开Vivado工程:在Vivado IDE中,打开你的FPGA设计工程。 2. 创建一个新的逻辑分析仪:在Flow Navigator面板中,选择"Open Elaborated Design"并点击"Run Synthesis"和"Run Implementation"以确保设计被综合和实现。 3. 打开逻辑分析仪:在Flow Navigator面板中,选择"Open Implemented Design"并点击"Open Hardware Manager"以打开硬件管理器。 4. 添加逻辑分析仪:在硬件管理器中,选择你的FPGA设备并点击右键,在菜单中选择"Add Configuration Memory Device"。按照向导选择适合你的FPGA设备的配置存储器。 5. 配置逻辑分析仪:在硬件管理器中,选择你的FPGA设备并点击右键,在菜单中选择"Add/Remove Debug Cores"。在弹出窗口中,选择Logic Analyzer并按照向导配置逻辑分析仪参数。 6. 生成Bitstream文件:在硬件管理器中,点击右上角的"Generate Bitstream"按钮以生成Bitstream文件。 7. 下载Bitstream文件到FPGA:在硬件管理器中,点击右上角的"Program Device"按钮以下载Bitstream文件到FPGA设备。 8. 配置信号采样:在硬件管理器中,选择Logic Analyzer并点击右键,在菜单中选择"Configure Sampling"以配置逻辑分析仪的采样参数。 9. 启动逻辑分析仪:在硬件管理器中,选择Logic Analyzer并点击右键,在菜单中选择"Start"以启动逻辑分析仪。 10. 查看和分析结果:在硬件管理器中,选择Logic Analyzer并点击右键,在菜单中选择"Analyze Traces"以查看和分析逻辑分析仪的结果。 请注意,以上步骤只是一个一般的指导,具体的操作可能会根据你的设计和需求有所不同。建议参考Vivado用户指南和相关文档以获取更详细的信息和指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值