现场故障最怕“灯亮了但不知道哪一段先错”。原厂诊断缓冲只存系统事件,业务级急停、阀超时、通讯闪断、批次异常要自己建日志。统一模型为“故障码+等级+时间戳+触发条件+相关IO/数据区+确认状态”,PLC写环形缓冲,HMI/上位按时间倒序筛,1分钟可定位到具体工位和软元件。
纯软件跑AES、SM4这类分组密码,瓶颈在SubBytes查表、MixColumns异或乘、多轮循环调度。RISC-V软核优势是可扩展:把“单轮加密/解密、Sbox、列混合、轮密钥加”硬化成自定义指令,软件只做分块、CBC异或和调度,热点从通用ALU转移到专用数据通路,实测可做到数倍提速。
复杂FPGA模块手写testbench费时且易漏。落地用“Python出向量+参考模型→RTL/cocotb跑DUT→自动比对→JUnit/HTML报告→CI门禁”闭环,定向覆盖边界、随机覆盖异常、回归覆盖每次改码。小模块用文件向量配Icarus,复杂AXI/ready-valid用cocotb,大批量用Verilator,三层互补。
低成本EtherCAT从站别自己解析完整以太网帧,正确做法是MCU外挂ESC(ET1100/LAN9252/AX58100),由ESC做帧转发、FMMU、SyncManager和AL事件;MCU裸机只做SPI/并口读写、PDO刷新、邮箱SDO和应用控制。IO模块用M3/M4即可,运动同步再上H7或带DC的ESC。
半主动假肢的脚踝要在一次摆动相里完成姿态调整。人正常行走时摆动相只有几百毫秒,这段时间里通信、计算和执行都得做完。摆不到位,脚就会磕在地上。留给通信协议的时间,按毫秒算已经算宽裕了。
8路并行ADC要稳到100MSPS,关键是“同源采样时钟+统一触发+每通道独立捕获+延迟校准+FIFO对齐”。并行SAR用CONVST/BUSY最直观,LVDS高速ADC用随路时钟+IDDR/ISERDES,GSPS级再考虑JESD204B SYSREF确定性延迟。
SPI四线SCLK/MOSI/MISO/CS全双工,FPGA做主控最合适:分频出SCLK、状态机发命令地址、按Flash手册配CPOL/CPHA。NOR Flash常用Mode0(CPOL=0/CPHA=0)或Mode3,MSB先发;读可连续、写必须WREN→擦除→页编程→轮询状态。
LUT爆满别先加器件,先按“报告定位热点—RTL瘦身—综合/实现引导—专用资源替换”四步收。复杂控制+DSP混合设计靠单项往往不够,组合拳才容易把Slice LUT压下来。
工业分布式IO、运动控制、采集记录要对到亚微秒,不能靠软件读系统时间。FPGA做PTP的核心是把时间戳打在MAC/PHY边界:本地维护纳秒TSU,RX在帧起始锁t2、TX在帧起始锁t1/t3,协议栈只算offset和路径延迟,本地时钟用频率字驯服,级联设备再上透明时钟补驻留时间。
720P即1280×720,按60fps算像素率约55.3M像素/秒,1像素/时钟用60~75MHz即可跑满;做预处理不存整帧,采用“灰度化—行缓冲—3×3 Sobel—阈值输出”流式管线最省资源。 先转灰度再进算法,避免RGB三通道各建行缓冲,BRAM和带宽都能降三分之一。
纯FPGA做采集直写DDR3,核心是“采集流→入口FIFO→AXI写主控/AXI DMA→MIG DDR3→环形缓冲”,不用CPU参与。处理器只在上电配一次基地址和长度,之后由硬件状态机按帧自增、回绕、出完成标志。
板间10G不能只把TX/RX差分线连上就跑,核心是“低抖动参考钟+GT收发器配置+8B/10B/64B成帧+PRBS自检+IBERT扫眼+PCB阻抗闭环”。Xilinx 7系用GTX/GTH,UltraScale用GTY;10.3125G光口常配合64B/66B,背板/直连可用8B/10B降低调试难度。
FPGA验证最费人的是手写testbench:功能点一多,定向用例、边界用例、随机回归全靠手工,既慢又容易漏。用Python做“向量生成—testbench渲染—仿真调用—结果比对—报告汇总”闭环,可把几百个组合用例一键跑完,适合加法器、FIFO、SPI、滤波器、AXI片段等中小规模数字逻辑。
音频降噪别用CPU轮询整帧FFT,FPGA走“I2S/PDM采集→定点FIR→饱和输出→I2S回放”流式通路,单样本几拍出结果,群延迟按采样周期算,48kHz下低阶FIR可做到亚微秒到几微秒级,远比软件批处理低。
工业闭环别把所有控制都扔给CPU。合理切法是:FPGA跑采样、误差、PID、PWM、过流联锁,做到采样即算、逐拍输出;嵌入式C只做参数整定、模式切换、故障诊断、HMI和日志。关键回路不进中断批处理,整体延迟从“毫秒级软件环”降到“微秒/亚微秒级硬件环”。