FPGA即插即用Verilog驅動系列——高速12位ADC

實現功能:

  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;所以專門記錄以用于梳理思路和復習基礎。這里著重講解反射機制實現新建對象這里…