当前位置:首页 > 工业控制 > 工业控制
[导读]工业多通道同步采集(振动分析、电网监测、声源定位)要求所有AD通道在同一时刻锁存模拟值,通道间延迟差<1ns。16路AD如果用逐颗芯片独立CONVST,PCB走线长度差和芯片内部延迟差会累积到5–10ns,同步性崩溃。正确做法是单一时钟源+全局CONVST+FPGA内同拍捕获。下面以16路AD7606(16位、200kSPS、并行接口)挂到Xilinx Artix-7为主线。

工业多通道同步采集(振动分析、电网监测、声源定位)要求所有AD通道在同一时刻锁存模拟值,通道间延迟差<1ns。16路AD如果用逐颗芯片独立CONVST,PCB走线长度差和芯片内部延迟差会累积到5–10ns,同步性崩溃。正确做法是单一时钟源+全局CONVST+FPGA内同拍捕获。下面以16路AD7606(16位、200kSPS、并行接口)挂到Xilinx Artix-7为主线。

一、硬件同步:CONVST树形扇出

16颗AD7606的CONVST引脚必须同一时刻收到上升沿。PCB上用一颗低抖动时钟Buffer(如SI53302,输出skew<50ps)把FPGA来的CONVST信号扇出4路,每路驱动4颗AD7606,走线等长(误差<±2mm)。AD7606的BUSY引脚(转换结束标志)经或门后送FPGA,所有芯片转换完才启动读数据。

// CONVST产生逻辑:100kHz采样率,脉宽100ns

reg [9:0] cnt; always @(posedge clk_50m) cnt <= cnt + 1;

wire convst = (cnt == 10'd499) ? 1'b1 : 1'b0;  // 100kHz

// 经过OBUF后送时钟Buffer

二、FPGA读时序:同拍捕获16路数据

AD7606并行数据总线(DB0-DB15)是所有芯片共享的,片选CS逐颗拉低读数据。同步采样的关键是:所有芯片在同一CONVST上升沿锁存模拟值,读数据时可以分时读,不影响同步性。

// 读状态机(简化)

localparam IDLE=0, WAIT_BUSY=1, READ_CH=2;

reg [3:0] state, chip_idx;

always @(posedge clk_50m) begin

   case(state)

       IDLE: if(convst_pos) begin state<=WAIT_BUSY; end

       WAIT_BUSY: if(~busy_or) begin state<=READ_CH; chip_idx<=0; end

       READ_CH: begin

           cs_n[chip_idx] <= 0;  // 拉低片选

           rd_n <= 0;            // 读使能

           // 在rd_n上升沿锁存数据

           data_buf[chip_idx*16+:16] <= dbus;

           rd_n <= 1;

           if(chip_idx==15) state<=IDLE;

           else chip_idx<=chip_idx+1;

       end

   endcase

end

⚠ 读时序必须满足AD7606的t2(CS低到RD低)和t3(RD低到数据有效)——50MHz时钟下,一个周期20ns,读16颗芯片共320ns,远小于采样周期10μs,完全来得及。

三、时序收敛:多周期路径约束

16路AD的数据总线是多周期路径——dbus在rd_n拉低后一段时间才有效,不是每个时钟沿都变化。不加约束的话Vivado会按单周期路径分析,报hold violation。正确做法是设多周期和false path:

# 读数据路径:从rd_n输出到dbus输入,延迟2个时钟周期

set_multicycle_path -setup -from [get_ports rd_n] -to [get_ports dbus[*]] 2

set_multicycle_path -hold -from [get_ports rd_n] -to [get_ports dbus[*]] 1

# CONVST路径:到AD7606的延迟不重要,但抖动要小

set_max_delay -from [get_ports convst] -to [get_pins -hierarchical "*CONVST*"] 5

# BUSY路径:异步信号,false path

set_false_path -from [get_ports busy_or] -to [all_registers]

另外,16路数据总线dbus[15:0]是双向IO,Vivado里要设IO标准(LVCMOS33)和驱动强度:

set_property IOSTANDARD LVCMOS33 [get_ports dbus[*]]

set_property DRIVE 8 [get_ports dbus[*]]

四、验证:示波器看CONVST和BUSY

板子回来先看四样:

1. CONVST抖动:示波器测FPGA输出脚,上升沿抖动<200ps(50MHz时钟下)

2. BUSY或门输出:16颗AD转换完的时间差应<2ns(通过BUSY或门的脉宽看)

3. 读数据正确性:给所有AD输入同一电压(如2.5V),读回的16路数值差<3LSB

4. 时序余量:Vivado的report_timing_summary看读数据路径的setup/hold slack,应>0.1ns

五、三个翻车高发点

• CONVST扇出不够:一颗时钟Buffer驱动16颗AD,上升沿变缓,芯片间CONVST到达时间差>5ns。必须用Buffer扇出4路,每路等长

• dbus双向IO没设三态:读某颗芯片时其他芯片的CS是高,但dbus仍然是输出状态,总线冲突。每颗AD的CS拉高后dbus自动高阻,FPGA侧也要在cs_n=1时把dbus设为输入

• BUSY或门逻辑错误:16路BUSY经或门后送FPGA,如果某颗芯片BUSY一直高(坏了),整个采集卡死。加看门狗:BUSY高超过20μs就复位该芯片的CONVST

________________________________________

16路AD同步采样的真谛:CONVST时钟Buffer扇出等长、读状态机同拍锁存、Vivado里设多周期路径约束、BUSY或门加看门狗。这套走完16路200kSPS同步采样,通道间延迟<1ns,时序收敛slack>0.1ns,振动分析/电网监测场景直接能用。




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

FPGA设计中状态机无处不在,但同样的功能用不同写法,综合后的面积和时序可能天差地别。新手常犯的错误是"一段式"把所有逻辑塞进一个always块,导致状态跳转和输出逻辑混在一起,综合工具难以优化,关键路径变长。本文总结几...

关键字: Verilog状态机 编码风格 时序收敛

在现场可编程门阵列(FPGA)、专用集成电路(ASIC)和其他基于多轨处理器的系统中,随着电源时序规则愈发严格、时序要求日益精准、电压容差不断缩小,电源管理变得越来越复杂。时序错误可能造成闩锁或器件永久性损坏,而监控不足...

关键字: FPGA 集成电路 电源管理

FPGA在无线通信和软件定义无线电(SDR)领域的应用尤为出色。尽管无线通信和SDR技术较为复杂,但AMD Versal™ RF系列自适应SoC家族中的多种设备均可胜任相关任务。

关键字: 无线电 FPGA SoC

武汉(11月12日至13日)、上海(11月17日至28日)、深圳(11月26日至27日)三地技术盛会即将线下开启,涵盖20余门专为工程师打造的实战课程

关键字: 边缘AI FPGA 电机控制

通过稀疏神经网络提升性能,更高效地实现PolarFire® FPGA 及片上系统(SoC)的边缘 AI部署

关键字: FPGA SoC 边缘 AI

AMD Kria KV260 于2021年4月20日发布,最初配备的是橙色风扇外壳。与此同时,AMD及其合作伙伴推出了相关教程,指导用户利用该芯片打造各种有趣的项目,从基于其内置自定义AI逻辑模块的面部识别应用,到同年及...

关键字: FPGA 视频帧 KV260主板

本项目展示了一种基于DE1-SoC FPGA板采用有限状态机(FSM)构建的安全数字访问控制系统。该系统允许用户通过键盘或开关输入4位密码,硬件验证密码,并通过LED灯、七段数码管、TFT屏幕和蜂鸣器提供反馈。为增强安全...

关键字: FPGA 蜂鸣器 七段数码管 DE1-SoC板

本项目采用VSD Squadron FPGA Mini板和MYOSA传感器模块,构建了一套基于FPGA的智能水质安全报警系统。该系统设计为低成本的数字原型,用于将水质状况分类为三种简单状态:安全、注意和危险。VSD Sq...

关键字: 传感器 FPGA LED

在产线设备中,PLC常作为主控单元负责工艺流程,FPGA作为高速算法加速/多路采集前端。两者之间通过Modbus RTU(RS485)或 Modbus TCP(以太网)互通,是成本与开发难度最平衡的协同方案。本文以西门子...

关键字: PLC FPGA Modbus

在Xilinx FPGA开发中,Vivado HLS(High-Level Synthesis) 是把C/C++/SystemC算法“翻译”成RTL(Verilog/VHDL)并封装为可重用IP核的利器。相比手写RTL,...

关键字: Vivado FPGA Xilinx
关闭