AD9226 65M采样 模数转换

用 vivado 写的

AD9220_ReadTEST

module AD9220_ReadTEST(
input clk,
input rstn,output clk_driver,	//模块时钟管脚
input [12:0]IO_data,	//模块数据管脚output [11:0]ADC_Data,//12位ADC数据
output ADC_OTR			//信号过压标志位
);wire areset, pll260m_lockedPIN;
wire pll_260M;
assign areset = ~rstn;/*
锁相环:
用于产生240M时钟
*/pll260m	U0_pll260m_inst (.clk_in1  ( clk ),.clk_out1 ( pll_260M ),.locked   ( pll260m_lockedPIN ));/*
AD9226控制器:
将输入的260M时钟4分频(在AD9220_ReadModule.V中定义)后,用于驱动AD9226模块,并采集信号电压数据。
数据输入电压对应关系(受信号调理电路器件值公差影响,不同模块可能有微小差异):
信号(-10V)~(+10V):数据(0~4095)
*/
AD9220_ReadModule U1_AD9220_ReadModule(
.clk(pll_260M),
.rstn(rstn),.clk_driver(clk_driver),
.IO_data(IO_data),.ADC_Data({ADC_OTR, ADC_Data})
);endmodule

AD9220_ReadModule

module AD9220_ReadModule(
input clk,
input rstn,output reg clk_driver,
input [12:0]IO_data,output reg [12:0]ADC_Data
);`define clkOutPeriod  4		//模块驱动时钟分频,clk_driver = clk/4 = 260M/4 = 65M
reg [31:0]clkCnt;
always @(posedge clk or negedge rstn)if(!rstn)clkCnt <= 32'd0;else if(clkCnt == (`clkOutPeriod-1)) beginclkCnt <= 32'd0;endelse beginclkCnt <= clkCnt + 32'd1;endalways @(posedge clk or negedge rstn)if(!rstn) beginclk_driver <= 1'd0;ADC_Data <= 13'd0;endelse if(clkCnt == `clkOutPeriod/2-1) beginclk_driver <= 1'd1;ADC_Data <= IO_data;endelse if(clkCnt == `clkOutPeriod-1) beginclk_driver <= 1'd0;ADC_Data <= ADC_Data;endelse beginclk_driver <= clk_driver;ADC_Data <= ADC_Data;endendmodule

AD9226_TEST_tb

`timescale 1ns/1ns`define clock_period 20
module AD9226_TEST_tb;reg Clock;
reg Rst_n;
//reg a,b,c;
wire clk_driver;
//wire [1:0]out;
reg [12:0]IO_data;
wire [12:0]ADC_Data;//block_nonblock block_nonblock0(Clock,Rst_n,a,b,c,out);AD9220_ReadModule U0_AD9220_ReadModule(.clk(Clock),.rstn(Rst_n),.clk_driver(clk_driver),.IO_data(IO_data),.ADC_Data(ADC_Data)
);initial Clock = 1;
always#(`clock_period/2) Clock = ~Clock;initial beginRst_n = 1'b0;IO_data <= 13'd0;#(`clock_period*200 + 1);Rst_n = 1'b1;#(`clock_period*200);		IO_data <= 13'd0;#(`clock_period*200);		IO_data <= 13'd1;#(`clock_period*200);		IO_data <= 13'd2;#(`clock_period*200);		IO_data <= 13'd3;#(`clock_period*200);		IO_data <= 13'd4;#(`clock_period*200);		IO_data <= 13'd5;#(`clock_period*200);		IO_data <= 13'd6;#(`clock_period*200);		IO_data <= 13'd7;#(`clock_period*200);$stop;	
endendmodule

自己再写个 260M的时钟,四分频来提供65M的时钟。

 

OK 最终生成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/484966.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BigTime赛前季:2.027亿美金$BIGTIME玩家空投,塑造Web3游戏新时代

公开游戏策略和统计数据&#xff0c;证明游戏的未来在于真正以玩家为中心。 Big Time 工作室宣布&#xff0c;其旗舰作品 Big Time 的 pre-alpha 版本季前赛预开发阶段取得成功&#xff0c;这是一款混合了动作游戏与 MMORPG 的免费游戏。这是独一无二的类型融合&#xff0c;它结…

项目解决方案:校园云视频平台方案(视频接入、汇聚、联网、分享)

目 录 一、项目需求 二、系统设计方案 三、平台功能 四、案例展示 本方案分四个部分&#xff1a;项目需求、系统设计方案、平台基础功能、案例展示&#xff0c;如下&#xff1a; 一、项目需求 二、系统设计方案 通过AS-V1000视频资源综合管理平台实现监控视频的接入、…

JavaWeb——003Axios Vue组件库(Element)

目录 一、Ajax 1、同步与异步​编辑 2、原生Ajax&#xff08;繁琐&#xff09;​编辑 2.1、写一个简易的Ajax 3、Axios&#xff08;推荐使用&#xff09;​编辑 3.1、Axios入门 3.2、Axios请求方式别名 3.3、案例&#xff1a;基于Vue及Axios完成数据的动态加载展示​编…

将一个 PostgreSQL 数据库复制到另一个数据库中

以管理员身份进入cmd窗口&#xff0c;输入如下命令 语法&#xff1a; pg_dump -C -h 本机IP -U 本机postgresql用户名 源数据库名 | psql -h 服务器IP -U 服务器postgresql用户名 目标数据库名 示例&#xff1a; pg_dump -C -h 127.0.0.1 -U postgres test01-dbname | psql…

十七、鼠标操作与响应

项目功能实现&#xff1a;通过移动鼠标&#xff0c;在图片上实现类似画板绘制矩形的功能&#xff0c;并把绘制的矩形区域单独显示出来 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 mouse.h #pragma once#include<opencv2/opencv.hpp>using namespac…

C/C++的内存管理(1)

内存管理 C与C的内存分布C语言中动态内存管理方式回顾C内存管理的方式 C与C的内存分布 我们学习C语言时就知道&#xff0c;储存不同的变量计算机会相应分配不同区块的内存。那为什么要把内存化为不同的区域呢&#xff1f;实质上是为了方便管理 下面我们来看看下面一道例题&…

JAVAEE初阶 网络编程(十二)

HTTP协议 一. 状态码1.200 OK2. 404 NOT FOUND3.403 forbidden4. 405 Method Not Allowed5. 500 Interval Server Error6.504 Gateway Timeout7.302 Move temporarily 二. 如何构造HTTP请求1.通过第三方工具构造. 二.HTTPS三. 密码学中的重要概念1.明文2.密文3.密钥4.对称加密5…

普中51单片机学习(EEPROM)

EEPROM IIC串行总线的组成及工作原理 I2C总线的数据传送 数据位的有效性规定 I2C总线进行数据传送时&#xff0c;时钟信号为高电平期间&#xff0c;数据线上的数据必须保持稳定&#xff0c;只有在时钟线上的信号为低电平期间&#xff0c;数据线上的高电平或低电平状态才允许…

串的相关题目

于是他错误的点名开始了 我发现有关hash得题目有些是可以通过map数组来完成的&#xff1a;何为map数组&#xff0c;我们先思考一下最简单的桶的排序&#xff0c;桶排序是将我们需要数字最为下标输进数组中&#xff0c;而数组是存放的数字是这个数字出现的次数&#xff0c;但是由…

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法)

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法) 写上篇文章时测试过程比较乱&#xff0c;写的时候有些地方有点失误&#xff0c;所以重新写了这篇 本文内容均在RGB-D环境下进行程序测试 本文涉及到的动态特征点剔除速度均是以https://cvg.cit.tum.de/data/datasets/rgbd-dat…

Kubernetes 卷存储 NFS | nfs搭建配置 原理介绍 nfs作为存储卷使用

目录 1、NFS介绍2、NFS服务部署2.1安装nfs服务 (服务端配置)2.2启动NFS服务2.3 服务检查2.4 客户端配置 3、nfs作为存储卷使用3.1 nfs作为volume3.2 nfs存储的缺点3.3 nfs作为PersistentVolum 4、nfs作为动态存储提供5、总结 1、NFS介绍 NFS&#xff08;Network File System&a…

模糊的照片怎么变清晰?这些方法让你快速完成

在我们日常生活中&#xff0c;拍照已经成为记录生活点滴的重要方式。然而&#xff0c;有时候由于各种原因&#xff0c;拍摄出来的照片会显得模糊不清&#xff0c;这让我们感到十分苦恼。尤其是当我们希望珍藏那些对我们有着特殊意义的照片时&#xff0c;却因为清晰度不足而无法…