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

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

1.建立FPGA工程

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第1张图片为你的工程命名并选择对应路径

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第2张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第3张图片根据你的芯片选择对应的芯片型号,可以通过封装啊,速度啊来减小筛选范围 。VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第4张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第5张图片

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

再将被识别后的IP选中,连击OK。VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第6张图片

 2.搭建 FPGA BD 工程

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

点击 IP INTEGROR 中的create Bolck Design

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第7张图片

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

按住Ctrl+L后,输入这些IP核的名字,查找并调用他们,将它们摆放在相同位置后,如下图进行连线。在连线之前,双击这里的AXI Interconnect,设置成1个Slave,2个Mater的形式。然后注意时钟连线在一起,保证全局同步。VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第8张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第9张图片VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第10张图片下面一步我们添加vioIP。老规矩Ctrl+L,查找模块vio。添加进来后,双击VIO core 修改参数 。

然后将它与mathIP进行连接。

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第11张图片VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第12张图片

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第13张图片

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第14张图片

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

整体架构图如下所示 

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第15张图片

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

1、分配引脚

2、电压设置

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

3.SDK部分的搭建 

创建一个空的工程

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第16张图片VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第17张图片同时创建并将下面的代码复制到main.c

/*
 * main.c
 *
 *  Created on: 2016年11月8日
 *      Author: Administrator
 */
#include 
#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<

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第18张图片可以看到math IP的基地址为0x43C00000,所以在main中进行这个设置。两个地址偏移量和读地址偏移量是在IP核自定义时设置的,在后续我们也会分享如何自定义IP核心。

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第19张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第20张图片

双击下图蓝色框部分

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第21张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第22张图片 进入调试模式后,可以连接串口

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第23张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第24张图片

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

4.观察时序图

 点击Open Taeget打开逻辑分析仪

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第25张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第26张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第27张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第28张图片

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

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第29张图片

VIVADO入门教学系列 1.1工程的建立逻辑分析仪的使用_第30张图片

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

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

你可能感兴趣的:(嵌入式硬件,fpga)