- 博客(104)
- 收藏
- 关注
原创 FPGA中约束扇出:一文搞懂MAX_FANOUT的用法!助力时序收敛!
在FPGA设计中,导致时序无法收敛的原因之一就是信号的扇出过大。本文将带你从零了解FPGA中的MAX_FANOUT属性,如何利用它约束信号扇出、从而优化逻辑驱动以达到时序收敛的目的,并通过多个案例手把手教你如何使用MAX_FANOUT来约束扇出。目录:一、什么是扇出 二、RTL代码中使用MAX_FANOUT限制扇出示例 三、XDC中使用MAX_FANOUT限制扇出示例 四、多bit信号怎么只对某指定bit执行扇出约束示例
2026-01-06 20:34:15
299
原创 一文搞懂多速率信号处理中信号插值的本质:从插 0、插原值到线性插值!
信号插值在数字信号处理中经常被使用,但“插值”背后究竟发生了什么,却常被忽略。插0、插原值、线性插值看似只是不同的实现方式,实则对应着完全不同的频域效应与滤波特性。本文将结合公式与MATLAB仿真,深入剖析插0、插原值与线性插值三种典型策略的本质区别。
2025-12-22 16:49:11
725
原创 Vivado FPGA 中的ILA还能级联使用?一文搞懂,助你提升调试效率!
在FPGA中用ILA抓取数据时,有些时候,想要抓取的数据有前后顺序但又希望一次抓出来,该怎么办呢?这时候可以借助ILA的级联方式,借助前一个ILA的触发信号当作下一个ILA触发的条件之一。本文将详细讲解ILA级联的实现方法与使用技巧,助你大幅提升FPGA调试效率。
2025-12-04 16:00:53
725
原创 一种无需IP核的FPGA RAM初始化方法:基于源码定义与赋值实现
在FPGA设计中,许多人仍习惯用RAM IP核来初始化存储数据,但每次修改初始化文件或参数都要重新生成IP,会降低效率。其实,我们可以直接在Verilog代码中定义并初始化RAM,让综合工具自动推断出对应的块RAM或分布式RAM。这种方式灵活、便于维护。本文将介绍这种更灵活的RAM初始化方式。
2025-11-01 12:50:04
561
2
原创 你真的会用FPGA中的function和task吗?详解function和task用法
在FPGA设计中,合理使用function和task不仅能让代码变简洁,还能极大提升模块复用性与可读性。function可用于组合逻辑运算和常数计算,而task则能执行多步操作甚至包含延时语句。合理使用两者,能让复杂设计结构化、调试更高效。
2025-10-23 15:51:06
1036
原创 半带低通滤波器简介及VIVADO IP核之FIR半带滤波配置仿真
半带低通滤波器(Half-Band LPF)广泛应用于低通滤波、采样率转换等数字信号处理场景。相比普通FIR滤波器,它具有系数对称、近一半系数为零等特点,可显著减少乘法器与加法器资源,适合在FPGA上实现。Vivado提供了 FIR Compiler IP核,可快速完成半带滤波器的设计与仿真。本文将介绍半带低通滤波器原理,并通过MATLAB设计仿真与Vivado IP核实现设计和验证。
2025-09-15 07:30:00
1006
原创 均匀圆形阵抗干扰MATLAB仿真实录与特点解读
均匀圆形阵(UCA)凭借其独特的环形对称布局,展现出显著的全向感知与抗干扰优势。该结构能够在水平方向实现360°无差异覆盖,方向图均匀稳定,不存在传统阵列中固有的主瓣与副瓣性能差异,从而在复杂干扰环境下具备更一致、更稳健的抗干扰能力,尤其适用于需全向均匀防护的高动态场景。本文将以7阵元带圆心的均匀圆形阵为例,通过仿真实录直观展示其在不同干扰个数以及不同干扰条件下的抗干扰表现,并结合结果对其主要特点进行解读。
2025-09-05 20:55:07
914
原创 阵列信号处理之均匀面阵波束合成方向图的绘制与特点解读
本文基于MATLAB给出均匀面阵方向图的绘制方法,绘图包含球坐标系和直角坐标系下的方向图以及在UV坐标系下的方向图,并通过二维方向图与一维切片对比,直观展示阵元规模、阵元间距对主瓣宽度、副瓣电平的影响。
2025-09-04 20:10:05
1460
原创 为什么xilinx FPGA中的LUT可以当作移位寄存器使用?
在 Xilinx FPGA 中,查找表(LUT)不仅仅是实现逻辑函数的核心单元,还能被巧妙地配置成移位寄存器(Shift Register),这种特殊模式被称为 SRL(Shift Register LUT)。与传统由触发器级联实现的移位寄存器相比,SRL 利用 LUT 内部的存储结构完成移位操作,大幅节省逻辑单元和触发器资源,同时提升时序性能。本文将详细介绍为什么xilinx FPGA中的LUT可以当作移位寄存器使用?
2025-08-16 08:30:00
1168
原创 ADC采样信号时过采样有什么好处?
在模拟信号数字化过程中,奈奎斯特定理告诉我们,ADC采样一个信号时用大于信号最高频率的2倍的采样率即可无失真恢复信号,那为什么有的地方还要用过采样呢?过采样究竟有什么好处?本文将简要探讨ADC过采样的优势。
2025-08-03 08:00:00
835
原创 ADC采样信号时的量化噪声仿真与分析
在ADC采样信号时,量化噪声是影响信号精度的关键因素之一。本文通过对ADC采样过程的MATLAB仿真,仿真了量化噪声的时域波形图、频谱图、直方图,并进行了直观的比较和简单的分析,验证了量化噪声的特性。
2025-08-01 08:00:00
1352
原创 为什么ADC精度每加1位,SNR就多6dB?一文讲透!
“理想ADC的量化信噪比为6.02n+1.76dB”这句常见公式你真的理解了吗?它为什么和比特数n成正比?这1.76又从何而来?本文将一步步推导该经典公式的由来,让你真正搞懂ADC量化误差背后的原理。
2025-07-30 08:00:00
1206
原创 带通采样信号频谱搬移后,如何完整还原信号才算正确?
带通采样技术通过低于奈奎斯特率定理的采样速率实现对带通信号的采样,但带通采样后信号频谱发生搬移。由于搬移后的频谱保留了原信号的所有信息,所以可以直接对采样后的进行处理。问题在于处理后如何还原信号呢?本文将通过画图详细介绍信号还原的方式及整个过程。
2025-07-28 08:00:00
941
原创 结合图解一文搞懂带通采样定理的原理及数学推导过程
在数字信号处理中,低通采样定理要求采样频率大于信号带宽的两倍,适用于基带信号。而实际中常见的是频谱位于高频段的带通信号,若仍按低通定理采样,所需的采样率将非常高,给系统带来不必要的负担。这时,带通采样定理就派上用场了。它允许我们以远低于信号最高频率的采样率采样带通信号实现无失真重建,显著降低采样开销。本文将系统讲解带通采样定理的原理与推导过程,并举例说明带通采样定理的应用。
2025-07-03 16:42:57
2280
原创 PIC单片机MPLAB编译报错的一些问题及解决方法
本文记录了在第一次使用MPLAB来编译程序遇到的许多报错及解决办法。需要给一块单片机下个程序,第一次使用MPLAB,解决这些问题花了五六个小时,在此记录一下,可以帮助到更多的人。
2025-06-28 11:37:08
1355
原创 VIVADO设定寄存器/存储器的初始值
在 FPGA 开发过程中,合理设定寄存器或存储器(如 BRAM、ROM)的初始值对于系统功能验证与上电行为控制至关重要。许多设计者习惯使用复位信号对寄存器或存储器进行初始化。然而,依赖复位并非总是最优解。复位逻辑会增加额外的资源开销,拉长时序路径,甚至在复杂设计中影响时钟收敛。我们可以利用 Vivado 提供的“赋初值”方法,在 HDL 代码中直接为寄存器和存储器设置上电初值,该方法能确保电路在上电时进入预期状态,避免因不确定初值导致的逻辑错误或测试失败。
2025-06-26 17:06:49
982
原创 VIVADO导出仿真数据到MATLAB中进行分析
在使用 Xilinx Vivado 进行 FPGA 开发时,如何将 RTL 仿真生成的数据导出,进行进一步分析与可视化,是很多开发者常遇到的问题。Vivado自带仿真工具不支持直接导出仿真数据,但是我们可以通过编写一段简单的RTL代码即可将需要的仿真数据保存到txt文件中,后续MATLAB有自带的的textscan函数可以将txt中的数据读出来,本文将详细介绍这一过程。
2025-06-24 19:43:58
2126
原创 在MATLAB中绘制阵列天线的散射方向图
在无线通信、雷达和天线设计中,分析阵列天线的散射特性至关重要。散射方向图(Radiation Pattern)直观地展示了天线在不同方向上的散射强度,目标的散射强度随角度变化而显著不同,是评估天线性能的关键指标之一。本文将以均匀线性阵列(ULA, Uniform Linear Array)和单基地雷达(Monostatic Radar)为例,介绍如何在 MATLAB 中计算和绘制单基地雷达下均匀线阵的散射方向图(Scattering Pattern),包含RCS元因子、RCS阵因子、总的RCS的绘制。
2025-06-18 21:21:47
954
原创 FPGA点亮ILI9488驱动的SPI+RGB接口LCD显示屏(二)
ILI9488是一款广泛应用于嵌入式系统和电子设备的彩色TFT LCD显示控制器芯片。本文将介绍ILI9488关于RGB接口的时序和相关的一些配置,笔者多次阅读芯片手册多次调试之后最终成功用FPGA点亮了一块分辨率为320*320的ILI9488驱动的TFT LCD显示屏,实现了稳定的RGB三基色显示功能,分别显示了RGB三基色图片。SPI初始化后,即可用RGB接口来传输像素值。
2025-06-16 11:30:03
1051
原创 vivado IP核High speed/Low latency设置对系统性能的影响
在使用 Vivado 设计时,IP 核配置是影响综合结果和时序性能的关键因素之一。特别是在涉及高速数据处理或对延迟敏感的应用场景中,Vivado IP 核常常提供 “High Speed” 与 “Low Latency” 两种优化选项。很多开发者在配置IP核时往往忽略了这些选项对实际时序性能的深远影响。本文将以实际示例出发,对比分析 Vivado 中Accumulator Floating Point IP在不同配置下的资源消耗和时序表现,帮助开发者在设计早期做出更合理的架构权衡,为实现更可靠的时序收敛。
2025-06-09 16:30:22
785
原创 FPGA点亮ILI9488驱动的SPI+RGB接口LCD显示屏(一)
ILI9488是一款广泛应用于嵌入式系统和电子设备的彩色TFT LCD显示控制器芯片。本文将介绍ILI9488先关的基础知识和ILI9488的寄存器配置,笔者多次阅读芯片手册多次调试之后最终成功点亮了一块分辨率为320*320的ILI9488驱动的TFT LCD显示屏,见文末提供的点亮视频。使用的SPI+RGB接口,SPI用来初始化,RGB接口用来传输像素值。
2025-06-05 21:32:22
2529
1
原创 FPGA仿真中阻塞赋值(=)和非阻塞赋值(<=)区别
网上很多人介绍verilog语法中的阻塞赋值和非阻塞赋值几乎都是基于设计module介绍的,很少从testbench仿真介绍。笔者在仿真的时候,尤记得老师说过仿真时用=和<=没区别,但其实区别很大,如果仿真时不加以区分,单独仿真小模块对但将小模块加入整个工程仿真不对的BUG就可能是仿真用错了赋值。本文将以一个具体的实例介绍testbench中的阻塞赋值和非阻塞赋值。
2025-06-02 14:57:25
1391
原创 xilinx 7系列底层可配置逻辑块CLB中的LUT、FF等资源
在Xilinx FPGA 架构中,CLB(Configurable Logic Block,可配置逻辑块)作为最基本的逻辑单元,是实现复杂逻辑功能的核心。CLB 的主要组成包括查找表(LUT)和触发器(Flip-Flop, 简称 FF),它们协同工作,实现组合逻辑与时序逻辑的有效结合。理解 LUT 和 FF 的工作原理及其在 CLB 中的组织方式,对于优化逻辑资源使用、提高设计性能具有重要意义。本文将深入介绍 Xilinx CLB 中 LUT 与 FF 的结构特点、作用机制以及它们在实际设计中的应用策略。
2025-05-27 20:16:24
1267
原创 不同坐标系下MATLAB绘制阵列的方向图
在阵列信号处理和天线设计中,方向图(Pattern)是描述波束形成性能的关键工具,能够直观展示波束的主瓣、旁瓣和零点特性。然而,方向图的绘制方式因其坐标系的选择而呈现不同的特点,极坐标系能清晰呈现俯仰角的增益分布,球坐标系能清晰呈现方位角和俯仰角的增益分布,而直角坐标系适合展示三维空间中的增益分布。极坐标系适合一维阵列,球坐标系和直角坐标系适合二维阵列。本文将介绍如何在MATLAB中实现球坐标系、极坐标系和直角坐标系下的方向图绘制,欣赏不同坐标系下的阵列方向图。
2025-05-16 10:27:33
2033
原创 基于Cholesky分解求解逆矩阵
本文介绍了Cholesky分解的基本概念及其在数值线性代数中的应用。Cholesky分解是一种将对称正定矩阵分解为下三角矩阵与其转置矩阵乘积的方法,适用于实矩阵和复矩阵。文章详细说明了Cholesky分解的适用条件,并通过数值计算例子展示了如何对一个实矩阵进行Cholesky分解。此外,文章还通过MATLAB仿真验证了Cholesky分解的正确性,并指出分解后的矩阵具有唯一性。最后,文章提到可以利用Cholesky分解得到的下三角矩阵来求逆矩阵。
2025-05-14 17:07:22
1419
2
原创 MATLAB仿真定点数转浮点数(对比VIVADO定点转浮点)
在FPGA上实现算法时,相比MATLAB实现往往需要更长的开发周期,且调试过程更为复杂。因此,可以先用MATLAB对基于FPGA的定点和浮点运算的算法进行仿真验证,只要仿真结果正确,在FPGA上实现时通常只需解决资源和时序问题即可。笔者在仿真算法时,需要模拟一个定点转浮点的IP核功能,为此专门编写了MATLAB定点转浮点转换函数。
2025-05-05 17:01:56
1414
原创 单精度浮点运算/定点运算下 MATLAB (VS) VIVADO
本文介绍了怎么在MATLAB中使用单精度浮点数进行运算,另外还将MATLAB单精度浮点数运算的结果和VIVADO浮点数IP核运算的结果作了对比,会发现二者结果是吻合的。最后还介绍了怎么在MATLAB中进行定点运算的仿真,也将其和VIVADO仿真的结果进行了对比,二者也是吻合的。
2025-04-25 21:10:53
1128
原创 VIVADO中单bit信号的跨时钟域处理(快时钟到慢时钟)
本文介绍了两种单bit信号快时钟的脉冲到慢时钟的同步的方法。两种方法均可以把快时钟的脉冲同步到慢时钟。除此之外还在考虑线延迟的情况下结合仿真图片说明了组合逻辑输出不加触发器会带来的风险,文字加仿真图片可以帮助读者理解电路。最后还介绍了同步触发器的约束,确保软件布局布线时把同步的触发器放到同一个SLICE中,以降低MTBF(平均无故障时间)。
2025-04-24 20:32:14
2503
原创 MATLAB仿真多相滤波抽取与插值的频谱变化(可视化混叠和镜像)
在多速率系统中增加信号采样率的运算叫做内插(Interpolation)或上采样(Up-sampling),降低采样率的运算叫做抽取(Decimation)或下采样(Down-sampling)。抽取和内插均会对信号本身和其频谱产生一定影响,需要通过加低通滤波器去除这种影响。本人在MATLAB软件上仿真了抽取和插值对频谱造成的影响,并在此记录一下,记录一是为了传播知识,二是方便自己回顾。
2025-04-14 19:46:01
2082
原创 FPGA上实现SD卡连续多块读的命令
在用FPGA驱动TFT LCD显示屏播放视频时,视频数据是存到SD卡里面的,播放视频对数据量的读需求非常大。如果用单块读CMD17命令显然无法满足我屏幕320*320的分辨率单像素16bit 24帧的需求,因为实测发现SD卡每次发单块读CMD17命令后,中间都要等很长一段时间,SD卡才会开始返回数据,这个等的时间比返回512个字节的时间还要多。所以得发送CMD18命令,改命令发一次可以连续读取多个块,直到发送停止命令CMD12,SD卡停止读,这样方可满足播放视频的需求。
2025-04-12 15:47:28
1031
原创 FPGA同步复位、异步复位、异步复位同步释放仿真
本文将详细介绍FPGA同步复位、异步复位、异步复位同步释放,并用实际的例子在VIVADO上面完成这三种复位的仿真,仿真包括行为仿真、综合后功能仿真、综合后时序仿真、实现后功能仿真、实现后时序仿真五种仿真。同时也将给出RTL、综合、实现后的电路图。仿真和电路图可以帮助我们彻底搞清楚这三种复位。最后的总结给出了几点结论,对设计可以起到一定的指导作用。
2025-04-06 17:03:56
1308
1
原创 宽带空时波束形成算法原理及MATLAB仿真
空时波束形成(Space-Time Beamforming)是一种结合空间和时间维度的信号处理技术,主要用于增强特定方向的信号并抑制干扰和噪声。它广泛应用于雷达、无线通信(如5G/6G)、声呐等领域,能够有效改善系统在复杂环境中的性能。空时波束形成结构由 Frost 最先在 1972 年提出,在传统的空域波束形成结构上添加了时间维度。其核心思想是在每个阵元后添加时域抽头,增加了阵列的自由度,通过组成 FIR 滤波器,从而捕捉宽带信号的频率信息。本文简介其原理后给出了MATLAB仿真结果。
2025-04-02 10:03:53
1223
原创 Vivado IP核之定点复数乘法器Complex Multiplier使用说明
在数字信号处理、通信系统以及其他嵌入式应用中,复数运算是不可或缺的基础。Vivado设计套件作为Xilinx公司的一款强大工具,提供了丰富的IP核,其中复数乘法器(Complex Multiplier)是实现高效复数运算的重要组件。本文将说明Vivado IP核中的定点复数乘法器(Complex Multiplier)的使用方法,介绍该IP核的配置选项,并编写verilog代码测试了该IP核的累加功能。
2025-03-13 16:54:53
4030
原创 Vivado IP核之定点数累加Accumulator使用说明
在现代数字信号处理和通信系统中,对数据进行快速而精确的累加操作是至关重要的。Vivado Accumulator IP核提供了一种灵活、可配置的硬件累加方案,用于在FPGA上实现数据的累加法(也可以配置为累减)操作。本文详细介绍了IP核配置选项,并编写verilog代码测试了该IP核的累加功能。
2025-03-11 21:16:06
1724
原创 Karhunen-Loeve 展开理论详解及数值计算验证
Karhunen-Loeve 展开理论揭露了零均值平稳随机过程构成的随机向量为可以表示为协方差矩阵的归一化特征向量的线性组合。本文将介绍Karhunen-Loeve 展开理论及其证明,并通过MATLAB数值计算验证该理论。
2025-02-20 18:11:55
1916
原创 基于MATLAB的均匀面阵MUSIC算法DOA估计仿真
在波达角估计算法中,MUSIC 算法与ESPRIT算法属于特征结构子空间算法,是波达角估计算法中的基石。在前面的文章一文读懂MUSIC算法DOA估计的数学原理并仿真中详细介绍了一维MUSIC算法即线阵MUSIC算法DOA估计的原理及仿真,本文将介绍二维MUSIC算法即均匀面阵的MUSIC算法DOA估计原理及MATLAB仿真。
2025-02-19 19:52:48
1971
原创 Quartus18.1标准版的下载安装以及联合Modelsim使用
本文介绍Quartus18.1标准版的下载安装以及联合Modelsim使用,每一个操作步骤都有图片或者文字说明,确保学会Quartus18.1标准版的下载安装以及联合Modelsim使用。按照本文操作步骤进行安装,可一直使用该软件,无时间限制。
2025-02-18 10:45:21
11055
38
原创 均匀面阵抗干扰算法原理及MATLAB仿真
在阵列信号处理中,信号的抗干扰处理是重中之重,传输期望信号的时候总是会伴随有人为的或者非人为的干扰,那么就需要经过信号处理算法将干扰抑制掉。在之前的文章中已经介绍过MVDR算法应用于线阵的情况,本文介绍均匀面阵抗干扰算法的原理和MATLAB仿真,通过绘制方向图,频谱图,计算阵列输出信号的SNR、INR、SINR来验证成功抑制掉了干扰。
2025-02-13 21:01:01
1159
原创 MATLAB 生成脉冲序列 pulstran函数使用详解
MATLAB中的pulstran函数用于生成脉冲序列,支持连续或离散脉冲。该函数通过将原型脉冲延迟并相加,生成脉冲序列,适用于信号处理和系统分析。本文将一 一详细解释该函数中的每个参数的含义并列举多个仿真实例展示如何去使用这个函数。本文详细介绍了pulstran函数的使用,介绍的东西对于大部分场景都是够用的。
2025-02-11 15:43:24
2272
原创 ZYNQ中使用AXI4-Lite协议实现PS和PL数据交互 (整型、浮点型)
在 ZYNQ 开发过程中,PS和PL之间经常需要做数据交互,当数据量较少时,可以通过AXI4-Lite协议进行数据交互。AXI4-Lite是简化版的AXI4接口,用于较少数据量的存储映射通信。通过生成一个带有AXI4-Lite接口的IP核,实现PS和PL的数据通信,即可以把不同类型的数据从PS传给PL,也可以从PL传给PS,文章中串口打印和在线调试的结果均成功验证了PS和PL不同类型的数据交互。
2025-02-07 09:00:00
2806
8
C语言之实现了一个基础的乒乓球游戏的源代码
2025-09-21
STM32 单片机中IIC的配置开始停止读写函数
2025-09-21
MATLAB实现视频中多目标检测与标记的源代码
2025-09-18
MATLAB实现简易交互式井字棋游戏的源代码
2025-09-18
MATLAB编写的K-means算法对Iris数据聚类
2025-09-17
Java编写的基于Swing的贪吃蛇游戏舞台实现
2025-09-17
Java编写的贪吃蛇游戏:实现蛇身移动与碰撞检测
2025-09-17
Java编写的扑克牌游戏:实现纸牌属性与图形绘制
2025-09-15
Java编写的纸牌接龙游戏:实现双人对战与自动出牌
2025-09-15
Java编写的俄罗斯方块游戏:实现方块旋转与移动逻辑
2025-09-15
Java编写的扫雷游戏逻辑:实现地雷生成与格子操作
2025-09-14
Java编写的扫雷游戏格子类:实现地雷标记与数字显示
2025-09-14
Java编写的俄罗斯方块游戏:实现方块生成与碰撞检测
2025-09-14
Java编写的捕鱼游戏分数管理器:实现得分特效与动画展示
2025-09-13
一文搞懂多速率信号处理中信号插值的本质:从插 0、插原值到线性插值的MATLAB代码
2025-12-22
图像的无监督平滑轮廓线检测识别算法的R包实现
2025-11-28
基于STM32与OV7670的嵌入式数字图像采集与显示系统设计与实现
2025-11-10
AI图像识别的完整实战项目:基于CNN的验证码智能识别系统
2025-11-05
基于STM32的主从式远程视频监控与温度监测系统设计
2025-10-27
C语言实现稀疏矩阵的转置、加法与乘法等运算
2025-10-13
C语言之单向链表右旋转k次的算法的实现code
2025-10-07
C语言实现Dijkstra最短路径算法实现:寻找图中单源最短路径
2025-10-03
C语言实现图数据结构实现之邻接表存储与DFSBFS遍历
2025-09-29
C语言实现线段树数据结构实现:区间查询与单点更新
2025-09-25
C语言实现二叉搜索树的插入、查找、遍历与删除操作
2025-09-25
C语言实现6阶B+树的数据插入与中序遍历算法的代码
2025-09-25
LCD显示屏播放视频有竖线
2025-03-25
LCD屏幕RGB色彩显示不对是哪里出了问题?
2025-03-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅