ZYNQ之高速AD/DA验证实验

您所在的位置:网站首页 奥迪车哪年进入中国市场的 ZYNQ之高速AD/DA验证实验

ZYNQ之高速AD/DA验证实验

2024-07-16 20:37:18| 来源: 网络整理| 查看: 265

文章目录 前言一、ADDA模块介绍二、添加ROM IP核三、添加ILA IP核四、编写测试程序五、管脚分配六、连接开发板测试总结

前言

本实验是高速AD/DA验证实验,将使用高速DA芯片实现数模转换,产生正弦波模拟电压信号,并通过高速AD芯片将模拟信号转换成数字信号。本实验用到的硬件是黑金AX7020开发板和与其配套的ADDA模块——AN108。

一、ADDA模块介绍

本实验中使用的ADDA模块型号为AN108,该模块如下图所示。 在这里插入图片描述 其中,ADC的最大采样率为32MHz,精度为8位,DAC的最大采样率为125MHz,精度也为8位。 该ADDA模块不管是AD IN口还是DA OUT口都是通过BNC接口与外界连接的。 AN108的硬件结构图如下图所示。 在这里插入图片描述 DA电路由高速DA芯片AD9708、7阶巴特沃斯低通滤波器、幅度调节电路和信号输出接口组成。高速DA芯片AD9708是8位,125MSPS的DA转换芯片,内置1.2V参考电压,差分电流输出。AD9708芯片差分输出以后,为了防止噪声干扰,电路中接入了7阶巴特沃斯低通滤波器,其带宽为40MHz。在滤波器之后,连接了2片高性能的145MHz带宽的运放AD8056,以实现差分变单端、幅度调节等功能,从而使得整个电路性能得到最大限度的提升,幅度调节使用的是5K的电位器,因此最终的输出范围是-5V—5V,即10Vpp。 需要注意的是,由于电路器的精度不是很精确,最终的输出有一定误差,有可能波形幅度不能达到10Vpp,也有可能出现波形削顶等问题,这些都属正常情况。 AD电路由高速AD芯片AD9280、衰减电路和信号输入接口组成。高速DA芯片AD9280是8位,32MSPS的AD转换芯片。在信号进入芯片AD9280之前,使用一片AD8056芯片构建衰减电路,接口的输入范围是-5V至5V,通过衰减电路以后,输入范围满足AD芯片的输入范围,即0~2V,相应的转换公式如下。 在这里插入图片描述 黑金7020开发板与ADDA模块的连接如下图所示,开发板排针的1脚2脚和39脚40脚都在开发板上标出来了,ADDA模块的1脚2脚也在ADDA模块上标注出来了,由于AN108是34脚,而开发板的排针是40脚,因此要注意不要插反,先将ADDA模块的1脚2脚和开发板的1脚2脚口对齐,再依次从上至下插入即可。 请添加图片描述

二、添加ROM IP核

这部分的细节可以参考博文:ZYNQ之FPGA 片内ROM读写测试实验。 首先创建一个名为adda_test的工程,新工程汇总的界面如下图所示,点击Finish即可完成创建。 在这里插入图片描述 在本次实验中,将正弦波的波形数据存储在ROM中,这是因为实验中并不需要写数据(如果需要,就要用RAM),然后通过读取ROM中的数据,继而发送给DA转换芯片即可。 首先打开波形数据生成器,选择数据长度为256,数据位宽为8,选择正弦波生成,然后点击保存。 在这里插入图片描述 将该文件最好保存在工程目录下,选择保存的格式为.coe。 如果没有波形数据生成器,可以点此下载。 接着来创建ROM IP核,将其命名为rom_256x8b,各栏目的设置如下图所示。 Basic栏目设置。 在这里插入图片描述 Port A Options栏目设置。 在这里插入图片描述 Other Options栏目下,选择加载初始文件,就是上面保存的.coe文件。 在这里插入图片描述

三、添加ILA IP核

ILA下各栏目的设置如下图所示。 这里设置两个探针,分别用来监测ad的数据和da的数据。 在这里插入图片描述 探针位数的设置如下图所示。 在这里插入图片描述

四、编写测试程序

新建名为adda_test的Verilog文件,依次按照下图中标注的序号进行即可。 在这里插入图片描述 在新建好的adda_test.v文件中写入如下代码。

//本代码来自正点原子 `timescale 1ns / 1ps module adda_test( input sys_clk , //系统时钟 input sys_rst_n , //系统复位,低电平有效 //DA芯片接口 output da_clk , //DA(AD9708)驱动时钟,最大支持125Mhz时钟 output [7:0] da_data , //输出给DA的数据 //AD芯片接口 input [7:0] ad_data , //AD输入数据 //模拟输入电压超出量程标志(本次试验未用到) //input ad_otr , //0:在量程范围 1:超出量程 output ad_clk //AD(AD9280)驱动时钟,最大支持32Mhz时钟 ); //wire define wire [7:0] rd_addr; //ROM读地址 wire [7:0] rd_data; //ROM读出的数据 //DA数据发送 da_wave_send u_da_wave_send( .clk (sys_clk), .rst_n (sys_rst_n), .rd_data (rd_data), .rd_addr (rd_addr), .da_clk (da_clk), .da_data (da_data) ); //ROM存储波形 rom_256x8b u_rom_256x8b ( .clka (sys_clk), // input wire clka .addra (rd_addr), // input wire [7 : 0] addra .douta (rd_data) // output wire [7 : 0] douta ); //AD数据接收 ad_wave_rec u_ad_wave_rec( .clk (sys_clk), .rst_n (sys_rst_n), .ad_data (ad_data), // .ad_otr (ad_otr), .ad_clk (ad_clk) ); //ILA采集AD数据 ila_0 ila_0 ( .clk (ad_clk ), // input wire clk .probe0 (da_data), // input wire [7:0] probe0 .probe1 (ad_data) // input wire [7:0] probe0 ); endmodule

同样的方法新建名为da_wave_send.v的文件并写入如下代码。

//本代码来自正点原子 module da_wave_send( input clk , //时钟 input rst_n , //复位信号,低电平有效 input [7:0] rd_data, //ROM读出的数据 output reg [7:0] rd_addr, //读ROM地址 //DA芯片接口 output da_clk , //DA(AD9708)驱动时钟,最大支持125Mhz时钟 output [7:0] da_data //输出给DA的数据 ); //parameter 频率调节控制 parameter FREQ_ADJ = 8'd5; //频率调节,FREQ_ADJ的值越大,最终输出的频率越低,范围0~255 //reg define reg [7:0] freq_cnt ; //频率调节计数器 //数据rd_data是在clk的上升沿更新的,所以DA芯片在clk的下降沿锁存数据是稳定的时刻 //而DA实际上在da_clk的上升沿锁存数据,所以时钟取反,这样clk的下降沿相当于da_clk的上升沿 assign da_clk = ~clk; assign da_data = rd_data; //将读到的ROM数据赋值给DA数据端口 //频率调节计数器 always @(posedge clk or negedge rst_n) begin if(rst_n == 1'b0) freq_cnt


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭