实现功能:

  1. 单通道ADC驱动,速率由驱动的时钟决定
  2. 12位数据并行,可轻松修改为其他位宽,适应不同的ADC模块
  3. 将ADC输入的unsigned数据转换为signed,便于后续FIR,MULTI操作
  4. 匹配AXI4-STREAM协议,有tvalid输出,便于和vivado标准IP连接,不需要也可以删掉
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2025/07/17 18:12:32
// Design Name: 
// Module Name: AD_in_single
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
//   这是一个可复用的、处理单通道ADC的接口模块。
//   1. 为单个ADC通道提供一个时钟输出。
//   2. 接收来自单个ADC通道的12位并行数据。
//   3. 使用2级同步器将数据安全地跨时钟域同步到FPGA系统时钟。
//   4. **将无符号的偏移二进制码转换为有符号的二进制补码。**
//   5. 将处理后的有符号数据通过独立的12位端口输出。
//
// Dependencies: 
// 
// Revision:
// Revision 1.0 - 从双通道版本拆分而来,实现了模块化和可复用性。
// Revision 1.1 - 增加了无符号到有符号的转换逻辑。
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////module AD_in_single(// =================== 系统接口 ===================input                aclk,    // FPGA系统主时钟 (例如 2MHz)input                aresetn, // 低电平有效复位// =================== ADC物理接口 ===================output               adc_clk_out,     // 提供给ADC芯片的时钟input       [11:0]   adc_data_in,     // 来自ADC通道的12位数据 (假定为偏移二进制码)// =================== 输出数据接口 ===================output signed [11:0] m_axis_data_out,      // **已修改**: 输出12位有符号数据output               m_axis_data_out_tvalid  // 数据有效信号);// =================================================================
// 内部信号定义
// =================================================================
// --- 2级同步器寄存器 ---
// 用于将来自ADC的数据安全地同步到FPGA的aclk时钟域
reg [11:0] data_sync1, data_sync2;
reg        tvalid_reg;   // tvalid信号的寄存器版本// --- 新增: 用于存储转换后有符号数据的线网 ---
wire signed [11:0] signed_data;// =================================================================
// 逻辑实现
// =================================================================// 1. 为ADC提供时钟
assign adc_clk_out = aclk;// 2. 输入数据跨时钟域同步
always @(posedge aclk) begindata_sync1 <= adc_data_in;data_sync2 <= data_sync1;
end// 3. **新增**: 无符号到有符号转换 (组合逻辑)
//    假定输入的adc_data_in是范围从0到4095的偏移二进制码。
//    减去中间值2048 (2^11) 即可将其转换为范围从-2048到2047的二进制补码。
assign signed_data = data_sync2 - 12'd2048;// 4. 输出tvalid信号生成
always @(posedge aclk or negedge aresetn) beginif (!aresetn) begintvalid_reg <= 1'b0;end else begintvalid_reg <= 1'b1;end
end// 5. 数据输出
//    输出经过同步和格式转换后的、稳定的有符号数据。
assign m_axis_data_out        = signed_data;
assign m_axis_data_out_tvalid = tvalid_reg;endmodule

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

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

相关文章

DeepSeek 部署中的常见问题及解决方案:从环境配置到性能优化的全流程指南

一、引言随着大模型技术的发展&#xff0c;以 DeepSeek 为代表的开源中文大模型&#xff0c;逐渐成为企业与开发者探索私有化部署、垂直微调、模型服务化的重要选择。然而&#xff0c;模型部署的过程并非 “一键启动” 那么简单。从环境依赖、资源限制&#xff0c;到推理性能和…

【机器人-开发工具】ROS 2 (4)Jetson Nano 系统Ubuntu22.04安装ROS 2 Humble版本

文章目录1. 系统环境准备1.1. Jetpack简介1.2. 下载Jetpack安装系统2. 安装ROS2 Humble2.1. ROS2 简介2.2. ROS2 Humble对比Foxy版本2.3. 安装2.3.1. 更新系统2.3.2. 添加 ROS 2 GPG 密钥2.3.3. 添加 ROS 2 仓库源2.3.4. 更新软件包索引2.3.5. 安装 ROS 2 Humble 桌面版&#x…

2025年Java大厂面试场景题全解析:高频考点与实战攻略

一、2025年Java面试新趋势与技术栈变化2025年的Java技术生态呈现出明显的云原生与AI集成趋势&#xff0c;各大互联网公司在面试中更加注重候选人对新技术栈的掌握程度和实战应用能力。1.1 技术栈升级趋势分析根据最新统计数据&#xff0c;2025年Java面试的技术考察点分布如下&a…

TCP客户端Linux网络编程设计详解

一、TCP 客户端设计流程TCP客户端模式的程序设计流程主要分为&#xff1a;套接字初始化( socket()函数)&#xff0c;连接目标网络服务器 (connect()函数)&#xff0c;向服务器端写入数据&#xff08;write()函数&#xff09;1、socket() 函数#include <sys/types.h> …

webpack》》

Webpark 介绍 官网 Webpack的功能 在现代前端开发中,我们会使用模块化、Sass、TypeScript、图片、字体等资源。但浏览器并不天然支持这些格式,因此我们需要工具将它们打包、转换成浏览器能识别的文件格式。Webpack 就是这样一个强大的前端构建工具。 Webpack 是一个现代 J…

软件测评中HTTP 安全头的配置与测试规范

服务器若缺乏必要的安全头配置&#xff0c;其安全防护能力将大幅降低。X-Content-Type-Options 作为基础安全头&#xff0c;需设置 nosniff 参数&#xff0c;以阻止浏览器对 MIME 类型进行自主猜测&#xff0c;避免 text/css 等资源被误当作脚本执行&#xff0c;从源头切断此类…

5G专网项目外场常见业务测试指南(六)-PingInfoView

5G项目必然涉及到终端用户的使用&#xff0c;终端使用情况测试最常用的手段就是长时间7*24小时长ping&#xff0c;对于一个有着几百用户的5G专网&#xff0c;我们常用的ping工具-PingInfoView。 PingInfoView是一款轻量级工具&#xff0c;用于同时对多个IP地址或主机名执行持续…

C#WPF实战出真汁02--搭建项目三层架构

1、什么是三层架构 三层架构是一种软件设计模式&#xff0c;将应用程序划分为表示层&#xff08;UI&#xff09;、业务逻辑层&#xff08;BLL&#xff09;和数据访问层&#xff08;DAL&#xff09;&#xff0c;以实现高内聚、低耦合的开发目标。 三层架构的核心组成‌ ‌表示层…

什么是费曼学习法?

什么是费曼学习法&#xff1f;一、费曼学习法的核心逻辑 费曼学习法&#xff08;Feynman Technique&#xff09;由诺贝尔物理学奖得主理查德费曼提出&#xff0c;核心思想是通过“以教促学”的方式&#xff0c;用输出倒逼输入&#xff0c;彻底理解知识。其本质是&#xff1a;当…

CVPR 2025 | 北大团队SLAM3R:单目RGB长视频实时重建,精度效率双杀!

北京大学陈宝权团队联合香港大学等推出的实时三维重建系统SLAM3R&#xff0c;首次实现从单目RGB长视频中实时且高质量重建场景稠密点云。该系统通过前馈神经网络无缝集成局部3D重建与全局坐标配准&#xff0c;提供端到端解决方案&#xff0c;使用消费级显卡&#xff08;如4090D…

现代化水库运行管理矩阵建设的要点

2023年8月24日&#xff0c;水利部发布的水利部关于加快构建现代化水库运行管理矩阵的指导意见中指出&#xff0c;在全面推进水库工程标准化管理的基础上&#xff0c;强化数字赋能&#xff0c;加快构建以推进全覆盖、全要素、全天候、全周期“四全”管理&#xff0c;完善体制、机…

【工具】用于视频遮盖行人及车牌的工具,基于YOLO

最近录制数据时&#xff0c;为了保护隐私&#xff0c;我做了一个小工具&#xff1a;video-privacy-blur 在采集街景、测试视频时&#xff0c;经常会拍到人脸和车牌&#xff0c;这些信息在分享或存储前必须做匿名化处理。手动后期太耗时&#xff0c;于是我基于 Ultralytics YOLO…

EtherCAT概念介绍

一、EtherCAT 简介​EtherCAT&#xff08;Ethernet Control Automation Technology&#xff09;是一种工业以太网现场总线&#xff0c;它将计算机网络中的以太网技术应用于工业自动化领域&#xff0c;构成工业控制以太网&#xff08;工业以太网、工业以太网现场总线&#xff09…

【LeetCode】4. 寻找两个正序数组的中位数

文章目录4. 寻找两个正序数组的中位数题目描述示例 1&#xff1a;示例 2&#xff1a;提示&#xff1a;解题思路算法分析问题本质分析二分查找分割算法详解分割策略可视化分割点计算过程边界情况处理算法流程图各种解法对比时间复杂度分析空间复杂度分析关键优化点实际应用场景测…

HarmonyOS 开发实战:搞定应用名字与图标更换,全流程可运行示例

好的&#xff0c;我帮你把这篇《HarmonyOS 开发实战&#xff1a;快速更改应用名字与图标的终极指南》扩展到约 4000 字&#xff0c;重点会放在代码示例和代码解释部分&#xff0c;并且保留你要的口语化、易读风格。 我会在原文的基础上增加&#xff1a; 更完整的目录结构演示&a…

Keep-Alive 的 “爱情故事”:HTTP 如何从 “短命” 变 “长情”?

&#x1f680; 揭秘HTTP Keep-Alive&#xff1a;前端面试不再“短”路&#xff01; 引言&#xff1a;HTTP连接的“爱恨情仇” 各位前端的小伙伴们&#xff0c;在面试中&#xff0c;HTTP协议绝对是绕不开的话题。而其中一个看似简单却又暗藏玄机的知识点&#xff0c;就是HTTP的“…

仅需8W,无人机巡检系统落地 AI 低空智慧城市!可源码交付

一、项目介绍无人机管控系统是融合无人机技术、传感器技术、物联网及人工智能的智能化检测方案。依托先进无人机技术与前沿 AI 算法&#xff0c;该系统可替代传统人工巡检模式&#xff0c;针对高危、复杂或大面积区域实现高效、精准监测&#xff0c;为城市基础设施检查、安防监…

java-JVM详解

一、JVM 是什么&#xff1f; 定义&#xff1a; JVM&#xff08;Java Virtual Machine&#xff09;是一个虚拟计算机&#xff0c;为 Java 字节码提供运行环境。它是 Java “一次编写&#xff0c;到处运行”&#xff08;Write Once, Run Anywhere&#xff09;的核心基础&#xff…

QT中ARGB32转ARGB4444优化4K图像性能的实现方案(完整源码)

QT中ARGB32转ARGB4444优化4K图像性能的实现方案&#xff08;完整源码&#xff09; 一、问题背景 在QT界面项目中&#xff0c;4K图像采用QImage::Format_ARGB32格式&#xff08;4字节/像素&#xff09;时&#xff0c;因数据量大导致编解码叠加性能不足。底层framebuffer实际为AR…

反射在Spring IOC容器中的应用——动态创建Bean

今天在看Java八股文时&#xff0c;对这里产生了一些疑惑&#xff0c;因为在目前做的练手项目中还没有用到过除了new以外的新建对象方式&#xff0c;在请教了其他前辈后对此有了新的理解&#xff0c;所以专门记录以用于梳理思路和复习基础。这里着重讲解反射机制实现新建对象这里…