基于xilinx vivado的XADC IP设置使用详解

基于xilinx vivado的XADC IP设置使用详解

1 XADC概述

Xilinx 7系列FPGA全系内置了一个ADC,称呼为XADC。

这个XADC,内部是两个1mbps的ADC,可以采集模拟信号转为数字信号送给FPGA内部使用。

XADC内部可以直接获取芯片结温和FPGA的若干供电电压(7系列不包括VCCO),用于监控FPGA内部状况。同时提供了17对差分管脚,其中一对专用的模拟差分输入,16对复用的模拟差分输入,不使用的时候可以作为普通的User I/O。

在这里插入图片描述

2 引用

《pg091》

《ug480》

3 XADC 端口

XADC的端口如下图所示,其每个端口的具体含义请参考ug480的p19~p20.

在这里插入图片描述

4 XADC IP设置

IP的详细设置,大家可参考pg091。

本例主要是拿XADC来采集FPGA的温度以及电压,不做外部采集,但设置同理,后面会说外部采集时的注意事项。

在这里插入图片描述

图 1 XADC第一页基础设置

第一页如上图主要是设置:

Interface option,常规情况下纯逻辑时一般选DRP,有软核参与时选AXI4Lite;

Startup channel selection ,开始通道选择,一般选通道顺序即可;

DRP timing options,设置的是XADC的时钟,一版默认就行了,最大250MHZ。

在这里插入图片描述

图 2 XADC第2页设置

第2页默认设置即可。

在这里插入图片描述

图 3 XADC第3页

XADC第3页主要是设置警报阈值,可要可不要,当设置阈值后,FPGA内部参数达到阈值后会产生警告输出,通过alarm_out信号引脚。

警告对应的寄存器以及含义如下表所示。

在这里插入图片描述

在这里插入图片描述

图 4 XADC设置第4页

第4页设置是选择通道需要输出的采样种类,这里主要是采集温度和电压,就勾选了以上内容。

5 IP的例程代码的使用

按第三章创建好IP后,打开例程代码,如下图所示:

在这里插入图片描述

图 5 例程代码的打开方式

之后看到代码的顶层只是同步了一个复位信号,如下所示:

在这里插入图片描述

光只是打开顶层只有复位信息以及这个ip的调用,现在还不知道怎么用,则下一步打开仿真文件顶层(xadc_wiz_0_tb)。

然后则看到将CHANNEL补位后赋值给地址ADDR,然后就能通过判断CHANNEL的值来确定现在输出的DO_TB是什么类型的值。如下所示:

在这里插入图片描述

在这里插入图片描述

至于取值为啥是DO_TB[15:4]是因为XADC是12bit的,且高位有效,根据ug480可知,如下所示。

在这里插入图片描述

另外需要注意,从DO读出来的值需要经过公式换算才是实际的值,换算规则如下所示:

在这里插入图片描述

在这里插入图片描述

6 Chanel输出值的含义即寄存器输出含义

Channel输出的值为各个采集信息对应的寄存器的地址,其含义如下所示。

在这里插入图片描述

即状态寄存器的值,如下表所示:

在这里插入图片描述

在这里插入图片描述

7 采集外部信号时需要的注意事项

当采集外部信号时,需要注意外部输入的模拟信号对接的时vp/vn引脚,此外输入的信号电平范围是0v-1v。如下所示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014586651/article/details/121515169
今日推荐