自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whm128的博客

专注硬件及FPGA开发10余年,入门指导/方案设计支/毕业设计请联系

  • 博客(638)
  • 收藏
  • 关注

原创 技术方案支持及咨询服务范围

公司提供声学、光通信、数据采集、视频采集和电源五大产品线技术服务。声学产品线涵盖降噪耳机设计与电路开发,支持数字/模拟降噪处理;光通信产品线基于FPGA开发各类通信板卡,支持10G高速传输;数据采集产品线覆盖100K-20G速率范围;视频采集产品线包含各类相机及传感器设计;电源产品线专注智能电源开发。同时提供硬件/FPGA开发、技术咨询及外包服务,适配国产平台定制需求。

2026-04-04 09:00:00 62

原创 电子工程师-高质量工具包

电子工程师工具包:共有各类元器件基础资料,电源设计资料,大厂参考资料,开发工具,仿真工具,各类电路接口设计,优质电子书,硬件,FPGA,单片机工具教程,优质方案资料,各类协议资料,入门指导

2024-11-02 15:45:06 3144 14

原创 FPGA时序约束有什么用,物理上的实际意义是什么

时序约束的本质是为FPGA设计建立物理层面的时间规则。由于信号传输存在固有延迟(线缆电阻电容、触发器响应时间等),必须确保数据在时钟边沿前后满足建立时间和保持时间要求。未加约束会导致亚稳态、逻辑错误和性能下降:信号延迟超标可能使数据未被正确采样,时钟偏移会造成不同步,工具随意布线将导致时序违规。通过设定最大/最小延迟和时钟偏差等约束,强制布线工具遵守半导体器件的物理时序特性,从而保证电路稳定工作在目标频率。这相当于为芯片内部信号传输设置了精确的交通管制,确保所有数据都能按时到达目的地。

2026-05-06 15:57:58 31

原创 TI-ADC原理与误差分析

摘要:时间交织型模数转换器(TI-ADC)系统由多个并行子ADC和数字处理模块构成,通过时间交错采样实现高速数据采集。系统误差主要来源于子ADC间的非一致性,包括偏置、增益和时间失配误差。数字处理模块通过数据重排、误差估计与补偿等算法进行信号矫正。TI-ADC性能指标包含动态性能(SNR、SNDR等)和静态性能(分辨率、ENOB等)。误差建模分析表明,偏置误差导致固定偏差,增益误差造成倍数关系,时间误差引起采样间隔不均。这些误差会降低系统精度,需通过数字处理进行补偿优化。

2026-04-25 17:00:00 71

原创 大带宽数据存储架构设计

本文设计了一个8通道高速信号同步采集系统,采样速率≥2.5GHz,精度14bit,存储容量≥5GB。系统采用FPGA架构,使用1片NORFLASH存储程序数据,1片DDR4作为运行内存。为满足320-384Gbps的数据存储带宽需求,创新性地采用8片DDR4 SDRAM分两簇扩展存储,通过并行控制实现32Gbit存储容量和带宽倍增。数据通过JESD204B接口接收224bit宽信号,并转换为14bit位宽存储。该设计解决了高速大容量数据实时存储的挑战,同时兼顾了硬件成本控制。

2026-04-25 17:00:00 137

原创 如何判断探测器信号是否处于半阱

摘要:探测器的“半阱”状态位于线性响应最佳区间,是性能标定的关键参考点。工程师通过调整积分时间使探测器工作在“半阱”状态,此时信噪比和动态范围最优,可准确测量NETD等核心参数。具体操作需先获取探测器的阱容参数,通过逐步增加积分时间使输出值达到半阱值,并验证线性度(R²>0.99),确保信号质量。该状态对探测器校准和成像质量优化具有重要工程价值。

2026-04-14 17:02:41 40

原创 红外相机-非均匀性校正算法

本文摘要: 针对红外图像的非均匀性噪声问题,提出基于FPGA的四模块校正方案。锅盖噪声模块采用两点校正法,通过双辐照度辅助图像获取校正参数;固定模式噪声模块运用单点校正法,利用均匀挡片图像提取噪声特征;条纹噪声模块采用二维高斯核维纳滤波,结合行/列中值和方差分析保留高频细节。系统通过多点采样平均提升信噪比,并创新性地引入像素强度差卷积运算来增强边缘特征,最终通过参数映射实现噪声校正。该方案有效解决了红外成像中因工艺缺陷和环境因素导致的图像质量问题,显著提升了成像均匀性。

2026-04-11 09:13:57 367

原创 案例3:串口程序的实现

它的核心思想是一位一位地(串行)发送数据,并且收发双方不使用统一的时钟信号(异步)进行同步,而是依靠预先约定好的参数来解码数据。相对于并行通信(多根线同时传输多个位),其优点是需要的物理线路少,成本低,抗干扰能力强,适合长距离通信,但速度相对较慢。这样做的目的是采用高频时钟来锁存低频时钟,减少数据的误码率,增加接收模块的自纠错能力。数据的奇偶校验位是可以选择的,如果不使用奇偶,那么就没有这个数据位,我们本课程中没有用到奇偶校验。数据接收模块:在设置好传输波特率的情况下,根据串口传输时序,进行解串。

2026-04-07 08:36:12 43

原创 案例2:封装自定义的IP

Step2:单击 Add SourceAdd or Creat design SourcesNext。Step6:单击 ToolsCreate and Package New IPNext。Step4:单击 Finish,完成 Verilog 文件的创建。选择 Review and PackagePackage IP。Step3:单击 Create File输入文件名OK。Step1:打开 VIVADO 软件,新建一个工程。Step7:选择 IP 的保存路径,单击 Next。Step9:查看生成 IP。

2026-04-07 08:35:28 385

原创 50天学习FPGA第42天-MIG的介绍及使用

本文介绍了Xilinx MIG DDR控制器的配置流程及测试方法。主要内容包括:1)在Vivado中创建MIG控制器的详细步骤,重点说明频率设置(如400MHz DDR时钟对应100MHz用户时钟)、接口类型选择(AXI4)、DDR3参数配置等关键选项;2)配置过程中的注意事项,如引脚约束验证、内部参考电压选择等;3)DDR测试方法,通过软核调用官方SDK代码进行验证,并需修改时钟配置和复位信号。文章提供了从IP核配置到硬件验证的完整指导,强调参数设置需严格参照DDR3芯片手册。

2026-04-06 09:16:51 184

原创 50天学习FPGA第41天-PCIe的的介绍及使用

摘要:XDMA是Xilinx提供的高性能PCIe DMA IP核,支持PCIe 2.0/3.0协议,可配置为AXI4或AXI4-Stream接口。配置过程包括Basic、ID、BAR、MISC和DMA五个部分:Basic设置PCIe物理参数;ID配置厂商信息;BAR扩展用户逻辑访问;MISC设置MSI/MSI-X中断方式;DMA配置H2C(主机到设备)和C2H(设备到主机)传输通道数量,支持多数据源并行传输。该IP核适用于大数据量异步传输和低延迟数据流场景。

2026-04-06 09:15:33 185 1

原创 50天学习FPGA第40天-JESD204B的介绍及使用

end // 总错误计数 error_counter <= error_counters[0][15:0] + error_counters[1][15:0] + error_counters[2][15:0];end end // 调试数据输出 assign debug_data = { error_counters[0][7:0], error_counters[1][7:0], error_counters[2][7:0], link_status };

2026-04-03 08:44:02 89

原创 50天学习FPGA第39天-CLOCK的介绍及使用

/ 时钟复位 // 时钟向导 IP 实例 clk_gen clk_gen_inst ( // 时钟输入 .clk_in1(sys_clk_100m), // 复位(低有效) .resetn(sys_rst_n), // 时钟输出 .clk_out1(clk_200m), .clk_out2(clk_100m), .clk_out3(clk_50m), .clk_out4(clk_25m), // 状态 .locked(locked) );input wire clk_par_in, // 并行时钟。

2026-04-03 08:43:28 82

原创 50天学习FPGA第38天-XADC的介绍及使用

什么是 XADC?XADC(Xilinx Analog-to-Digital Converter)是 Xilinx FPGA 内部集成的模拟数字转换器模块,可以在不占用外部 ADC 芯片的情况下实现模拟信号的采集和监控。内部监控功能片上结温监测(精度 ±4°C)VCCINT(核心电压)VCCAUX(辅助电压)VCCBRAM(BRAM 电压)VCCPINT/VCCPAUX(特定系列)部分型号支持XADC 的三种访问方式1. 通过 IP 核访问(推荐)2. 通过原语(Primitive)直接访问3. 通过 JT

2026-04-02 08:40:58 130

原创 50天学习FPGA第37天-BRAM的介绍与使用

/ 端口 B .clkb(clk_b), // 时钟 B .enb(enb_b), // 使能 B .web(web_b), // 写使能 B .addrb(addr_b), // 地址 B .dinb(din_b), // 写数据 B .doutb(dout_b) // 读数据 B。

2026-04-02 08:39:58 73

原创 50天学习FPGA第36天-fifo的使用

FPGA中的FIFO是实现数据缓冲和时钟域转换的核心组件,主要分为同步和异步两种类型。同步FIFO采用单时钟控制读写操作,适用于同频系统;异步FIFO通过格雷码转换和双时钟域同步技术解决跨时钟域问题。FPGA FIFO具有硬件并行处理、资源优化和内置流控等优势,典型应用包括数据速率匹配和AXI-Stream接口适配。实现时需合理选择深度(公式:突发长度×写读时钟比+余量),建议优先使用厂商优化的IP核。正确配置的FIFO能显著提升系统可靠性和吞吐量。

2026-04-01 17:30:00 61

原创 50天学习FPGA第35天-增量编译

摘要:增量编译是一种优化设计流程,通过重用参考设计的布局和布线数据来加速时序收敛。该流程包含参考设计(已完成综合和布局布线)和当前设计(包含小改动)。当两者相似度≥95%时,增量编译可提升3倍效率;低于80%时效果有限。关键影响因素包括RTL修改幅度、约束变更及关键区域改动数量。Vivado工具通过report_incremental_reuse命令评估设计相似度,并支持工程/非工程模式下的增量编译设置。建议慎用opt_design-resynth_area命令以保持设计稳定性。

2026-04-01 17:15:00 342

原创 50天学习FPGA第34天-VIO的原理及应用

摘要:本文介绍了在FPGA设计中添加虚拟输入输出(VIO)核的实现方法。VIO核可定制输入/输出端口数量与宽度,用于实时监控和驱动FPGA内部信号。通过Vivado开发环境,详细说明了从IP核配置(设置3个输出端口和1个输入端口)到比特流文件生成的完整流程。重点阐述了VIO核如何通过probe_out0端口控制信号选择,实现FPGA设计的动态调试功能,最终将设计输出z连接到VIO的probe_in0端口完成交互验证。该方案为FPGA实时调试提供了有效手段。

2026-03-31 08:42:33 74

原创 50天学习FPGA第33天-使用HDL例化调试核调试探测流程

本文详细介绍了在Vivado环境中调试FIFO设计的完整流程。主要包括:创建并配置ILA(集成逻辑分析仪)IP核,设置4个探针信号(2个1位信号和2个8位信号);将ILA实例化到顶层设计文件中;完成设计实现并生成比特流文件;通过硬件管理器添加待观测信号(din、dout、rd_en和wr_en);设置触发条件为"rd_en=1或wr_en=1";最后启动捕获功能并调整波形显示。该流程为FPGA设计中的FIFO调试提供了标准化的操作指南。

2026-03-31 08:41:18 489

原创 50天学习FPGA第31天-网表插入调试

如图所示,在“Netlist”窗口中找到并展开“Inst_fifo1”选项。在展开项中,找到并选择“din(8)”选项,然后单击鼠标右键,出现浮动菜单。当出现该对话框时,单击【OK】按钮。第一步:在Vivado主界面左侧的“FlowNavigator”窗口中选择并展开“IMPLEMENTATION”选项。第二步:在Vivado主界面左侧的“FlowNavigator”窗口中选择并展开“Synthesis”选项。在该对话框中,选中“OpenHardware Manager”前面的复选框,单击[OK】按钮。

2026-03-30 20:30:00 283

原创 50天学习FPGA第32天-添加HDL属性调试

本文介绍了在Vivado中使用VHDL设计时添加HDL属性参数的完整流程。主要包括:在top.vhd文件中声明属性参数,进行综合并打开综合后设计,查看标记了调试信号的网络(din_0、dout_OBUF等),设置时钟网络和约束文件,生成比特流文件并下载到FPGA。最后通过设置rd_en和wr_en触发条件为"1",启动调试器观察波形。该过程详细说明了从属性参数设置到硬件调试的完整步骤。(149字)

2026-03-30 20:30:00 287

原创 FPGA工程高级研修资料大全分享

【摘要】作者参加上海FPGA高级研修班后,整理了包括高级研修班讲义、设计技巧、配置开发等系列资料。主要内容涵盖:1)流水线处理、同步设计等核心技术;2)设计检查要点,如层次划分、时钟域处理;3)可靠性设计规范,包括全局时钟使用、单边沿触发等注意事项。资料特别强调避免异步信号使用,以降低设计风险。该系列为FPGA工程实践提供了系统性指导。

2026-03-27 08:00:00 59

原创 50天学习FPGA第30天-创建新的设计

摘要:本文介绍了在Vivado中创建FIFO调试工程的详细步骤。首先创建新工程并配置参数,然后通过IP Catalog添加FIFO Generator IP核并进行定制。接着创建顶层设计文件(VHDL/Verilog)并例化FIFO核,最后添加约束文件完成设计。整个过程包括:1)创建RTL工程;2)添加并配置FIFO IP;3)生成顶层文件;4)添加约束条件。该设计为后续调试工作奠定了基础。(150字)

2026-03-26 08:46:20 61

原创 50天学习FPGA第29天-调试方法和原理

摘要:本文介绍了FPGA设计中系统内调试的三个关键阶段。Vivado工具提供逻辑分析和串行I/O分析功能,支持在真实系统环境下验证设计时序和信号质量。调试过程分为探测(确定待测信号和方法)、实现(添加调试IP)和分析三个阶段,可采用HDL例化或网表插入两种探测流程。系统内调试能准确验证设计功能,但相比仿真会降低信号可视性并可能延长调试周期。串行I/O分析仪的优势在于可直接测量接收器均衡后的信号质量,确保通道优化准确性。

2026-03-26 08:43:33 60

原创 基于C#的工业测控软件-依赖库

采用依赖抽象与实现分离的设计模式,核心是对第三方库进行封装与适配。一句话记住所有依赖作用Newtonsoft.Json = 操作 JSONSerilog = 记录日志YamlDotNet = 操作 YAML。

2026-03-25 17:15:00 56

原创 50天学习FPGA第28天-时序设计案例分析

本文通过三个案例探讨了跨时钟域路径的时序约束方法。案例1展示了用户生成时钟与主时钟的异步交互,需使用create_generated_clock和set_clock_groups命令进行约束;案例2分析了BUFGMUX选择输出时钟时-logically_exclusive的应用场景;案例3则处理了BUFGMUX输出时钟与其他时钟交互的情况,强调通过重命名和创建生成时钟来确保约束生效。三个案例均通过时序报告验证了约束方法的正确性,为复杂时钟域设计提供了实用的约束策略。

2026-03-25 08:54:57 211

原创 50天学习FPGA第27天-TCL在的应用

摘要:Vivado支持使用Tcl语言进行设计管理,其内置Tcl解释器可通过Vivado Tcl Console或Shell执行命令。Tcl脚本可用于获取设计属性、管理流程及生成报告,是GUI的有效补充。在Non-Project模式下,Tcl脚本直接处理源文件;Project模式下则需创建工程。两种模式均可通过Tcl实现自动化设计流程,且支持在特定步骤插入Hook脚本。XDC约束文件本质上是Tcl的子集,用户可通过日志文件学习Tcl命令。

2026-03-25 08:53:40 46

原创 基于C#的工业测试控制软件-总体框架

目前工业控制领域域中,经常采用C#/.net开发工业控制平台,本专栏从实战架构出发,深入解析K设计原理及架构,本专栏跳过基础语法描述,重点从业务领域出发,深入解析整体设计框架。

2026-03-24 10:10:08 573

原创 50天学习FPGA第26天-verilog的时序与延时

摘要:本文介绍了FPGA时序分析的基本概念和方法。时序分析基于时序约束,主要针对片间和片内两类时序路径。Vivado采用XDC约束语言,包含时钟周期约束和引脚分配两部分。时钟周期约束针对主时钟和高速收发器时钟,引脚分配需指定引脚位置和电平标准。此外,还介绍了多周期路径约束和伪路径约束两种时序例外情况:多周期路径用于复杂逻辑或延时较大的情况,伪路径指存在但无需约束的路径。时序约束需准确表达设计意图,以避免工具误报时序违规。

2026-03-24 08:49:20 262

原创 50天学习FPGA第25天-vivado的IP的管理

摘要:Vivado设计工具采用以IP为核心的设计理念,支持将HLS工程、SystemGenerator工程及用户代码封装为IP。IP可通过IP Catalog直接使用,或在ManageIP中创建独立IP工程。Vivado生成.xcix格式IP文件(默认),该二进制文件包含所有输出结果,便于版本管理,功能上与.xci文件等效。两种格式在Vivado中使用方式相同,但.xcix更利于工程维护。(148字)

2026-03-24 08:47:11 56

原创 50天学习FPGA第23天-vivado设计综合

本文分析了Vivado综合工具中几个关键选项的影响:1)flatten_hierarchy选项对层次结构优化的三种模式;2)fsm_extraction选项对状态机编码方式的控制;3)keep_equivalent_registers选项对同源寄存器的处理;4)async_reg属性在跨时钟域设计中的应用;5)max_fanout属性对高扇出信号的优化。通过Wavegen示例工程,展示了这些选项如何影响综合结果,包括状态机编码选择、寄存器布局优化以及高扇出信号处理等关键设计要素。

2026-03-23 17:15:00 194

原创 50天学习FPGA第24天-vivado设计实现

本文介绍了Vivado设计实现的关键步骤与方法。主要内容包括:1)实现流程中的必要与可选操作,重点说明物理优化针对时序违例路径的特性;2)增量实现技术,强调其在设计改动较小时复用原始布局布线结果的优势;3)实现后的资源与时序分析方法,指出实现后报告更详细,并展示了通过Device窗口查看模块位置和布线资源的技术要点。文章特别指出增量实现适用于改动不超过5%的设计场景。

2026-03-23 17:15:00 39

原创 50天学习FPGA第21天-verilog的时序与延迟

本文摘要:Verilog硬件描述语言中主要包含三种延迟模型:分布延迟(独立元件级)、集总延迟(模块级汇总)和引脚到引脚延迟(路径级)。文章详细阐述了如何通过specify块设置路径延迟,介绍了并行/全连接、specparam参数定义以及状态依赖路径延迟的配置方法。同时讲解了建立时间($setup)、保持时间($hold)和脉冲宽度($width)等关键时序检查任务,并概述了延迟反标注流程:从RTL功能仿真到门级网表转换,通过版图前后延迟计算进行时序验证,最终通过迭代优化满足时序约束。这些方法为高速数字电路的

2026-03-21 18:15:00 228

原创 50天学习FPGA第22天-vivado工具概述

Vivado是Xilinx针对7系列及以上FPGA的开发平台,提供完整设计流程,包括设计输入、综合、实现、调试和验证。相比ISE,Vivado的实现环节更复杂,包含可选的设计优化、功耗优化和物理优化步骤。Vivado支持Project模式(图形界面/Tcl脚本)和Non-Project模式(纯Tcl脚本),采用统一DCP网表格式。Project模式通过FlowNavigator提供可视化流程,支持多runs并行;Non-Project模式类似ASIC流程,需手动生成网表和报告。两种模式均可结合图形界面进行分

2026-03-21 18:15:00 68

原创 制冷片工作原理

制冷片,通常指的是半导体制冷片(也叫热电制冷片或帕尔帖),它的工作原理基于一个有趣的物理现象:当直流电通过两种不同的半导体材料时,会在一端吸热、另一端放热,从而实现热量的转移。你可以把它理解为一个电驱动的热量"搬运工"。

2026-03-05 18:00:00 863

原创 深度解析-为什么调整set_input_delay对延时没有效果

本文探讨了在FPGA项目中遇到的RGMII接口数据位对齐问题。通过分析set_input_delay命令的-max和-min参数含义,指出它们分别代表外部器件到FPGA的最大和最小传输延迟,用于建立时间和保持时间分析。文中给出了RGMII接口的时序约束实例,包括创建虚拟时钟、设置输入延迟、配置多周期路径以及设置假路径等关键步骤。这些约束方法能有效解决RGMII接口的双沿数据传输时序问题,确保设计稳定运行。正确理解和使用set_input_delay是FPGA与外部器件时序匹配的关键。

2026-02-28 17:00:00 95

原创 易灵思PLL几种反馈模式解释

本文分析了易灵思FPGA中PLL相位不稳定的问题。首先介绍了PLL的基本原理,包括其负反馈系统结构和信号处理流程。然后详细说明了易灵思Trion系列PLL的三种工作模式(Internal、Local、Core)及其特点,重点分析了不同模式下时钟反馈路径的差异对相位稳定性的影响。最后探讨了PLL输出时钟的相位调节方法,包括不同分频条件下的相移选项(45°、90°、135°、180°、270°)以及差分信号的处理方式。通过系统分析PLL配置与功能,为理解并解决相位不稳定问题提供了理论基础。

2026-02-27 17:45:00 342

原创 如何均衡模拟链路的各个模块的性能指标以达到最高的信噪比

射频系统设计的关键在于平衡噪声、增益、线性度和动态范围等性能指标。核心策略包括:前级优先降低噪声系数(LNA设计),后级重点保证线性度;通过合理的增益分配压制噪声并避免信号饱和;利用AGC动态调节增益,优化系统信噪比。设计流程需进行链路预算分析,在冲突指标间反复权衡,最终实现系统整体性能最优。

2026-02-10 18:00:00 123

原创 RTL8211以太网通信概率上电正常,那就正常,如果上电不正常,那就不正常

摘要:针对FPGA与RTL8211芯片采用RGMII协议连接时出现的随机丢包问题,进行了四项排查:1)调整接收时序延迟;2)检查上电状态干扰;3)修正复位时序;4)发现FPGA锁相环(PLL)的相位不确定性,导致数据采样时延不一致。该问题表现为上电状态决定通信稳定性,符合"正常则持续正常,异常则持续异常"的现象特征。

2026-02-05 18:15:00 651

原创 PCIe快速加载,FPGA硬件设计上有什么要求(以KCU060为例)

摘要:针对FPGA在PCIe规范要求的120ms内完成链路训练的挑战,提出采用分阶段配置策略。首先加载仅含PCIe硬核的"黄金位流"快速建立链路,再通过PCIe进行动态重配置加载完整逻辑。KCU040支持通过XDMA等IP核利用已建立的PCIe链路实现二次加载,其中Tandem PCIe功能采用两阶段位流(先加载必要PCIe模块,再传输用户应用)。配置时需注意选择PCIe端点模式、设置链路参数(如X1通道、Gen3速度)并启用Tandem PCIe功能。

2026-02-05 18:15:00 270

计算机专业学习资源,基于RK3588软件开发

计算机专业学习资源,基于RK3588软件开发

2025-01-12

模数转换器的误差来源和校准报告

模数转换器的误差来源和校准报告

2025-01-12

verilog 好用的资料

verilog 好用的资料

2024-10-26

IICDebugTools v2.0(1)(1).rar

IICDebugTools v2.0(1)(1).rar

2023-11-24

Programming Microcontrollers with Python 2021.pdf

一本很好的python学习资料

2023-06-16

单片机安卓Android开发Java基础.pdf

主要作单片机机安卓应用的java开发。是一部很好的参考资源。

2023-06-15

PCIE2.0规范,英文原版

This specification describes the PCI Express architecture, interconnect attributes, fabric management, and the programming interface required to design and build systems and peripherals that are compliant with the PCI Express specification.

2023-04-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除