自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 【无标题】

为什么是复数信号呢,因为频谱小,实数信号是关于y轴对称,复数就单边频谱。

2025-12-13 19:06:51 96

原创 sublime的纵向操作(列操作)原来这么用

增加选择:Command,减少选择:Command+Shift。-增加选择:Ctrl,减少选择:Alt。-增加选择:Ctrl,减少选择:Alt。-鼠标左键+Option。-鼠标右键+Shift。-鼠标右键+Shift。

2025-12-04 09:15:46 78

原创 解决cmd转不进D盘的问题

切换Windows系统盘符目录时,不能直接使用"cd d:"命令。正确方法是在cd命令后添加"/d"参数,格式为"cd/d 路径"。例如要切换到D盘,应输入"cd/d d:";若要切换到D盘下的ProgramFiles文件夹,则输入"cd/d "D:\ProgramFiles""。这个/d参数用于实现跨驱动器的目录切换操作。

2025-11-19 17:06:08 103

原创 TCP/IP协议与嵌入式SQL技术解析

TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。TCP/IP协议族提供了点对点的连结机制,并且将传输数据帧的封装、寻址、传输、路由以及接收方式,都予以标准化。首先介绍一下七层ISO模型。国际标准化组织ISO为了使网络应用更为普及,推出了,即开放式系统互联(Open System Interconnect)模型,一般都叫OSI参考模型。

2025-11-18 14:09:10 549

原创 PV操作:高效实现进程互斥与同步

PV操作是一种实现进程互斥与同步的有效方法。PV操作与的处理相关。P(passeren)通过,理解为申请资源,V(vrijgeven)释放,理解为释放资源。P操作的主要动作是:①S减1;②若S减1后仍大于或等于0,则进程继续执行;③若S减1后小于0,则该进程被阻塞后放入等待该信号量的等待队列中,然后转进程调度。V操作的主要动作是:①S加1;②若相加后结果大于0,则进程继续执行;③若相加后结果小于或等于0,则从该信号的等待队列中释放一个等待进程,然后再返回原进程继续执行或转进程调度。

2025-11-18 11:18:24 162

原创 DSI TX IP 初始化和发送DCS命令

本文摘要描述了DSITXIP核心配置寄存器使用方法和初始化配置流程。配置过程分为三个阶段:1)上电后设置协议和时序参数寄存器(0x04、0x50等),2)进入Command模式发送DCS初始化命令(配置0x2c等寄存器),3)切换回Video模式发送图像数据。初始化序列由axi4_reg_cfg模块实现,通过状态机依次配置各寄存器,并采用写后读校验机制确保配置正确。复位模块采用三阶段设计:10ms准备阶段、120ms复位阶段和50ms等待阶段,确保驱动芯片稳定工作。整个配置过程包含39个DCS命令,通过严格

2025-11-11 16:45:46 656

原创 使用DSI TX IP驱动LCD显示屏

本文介绍了MIPI DSI显示屏的寄存器配置方法。主要包括:1) 协议配置寄存器设置,包括像素格式为RGB888、2lane配置等;2) 时序参数计算,包括水平同步参数HBP/HFP和垂直同步参数VSA/VBP/VFP的计算方法;3) DCS显示屏初始化参数设置;4) 基于AXI4-Lite总线的读写模块实现,详细说明了读事务和写事务的接口信号及时序控制。最终计算出线速率为358.56Mbps,向上取整为359Mbps。通过AXI4-Lite接口可实现对IP内部寄存器的配置和DCS命令的发送,完成显示屏驱动

2025-11-10 10:44:38 765

原创 MIPI D-PHY接口IP配置与驱动详解

本文介绍了一款基于D-PHY物理层的MIPI接口IP,支持1-4个数据通道。该IP采用AXI4-Lite接口控制寄存器,AXI4-Stream接口传输图像数据。详细说明了IP的外部接口,包括时钟、复位、200MHz参考时钟以及各类总线接口。重点阐述了核心配置寄存器的功能,包括EoTp设置、空白数据包类型选择等,并指出PixelFormat和ActiveLanes为只读参数,其值在IP配置阶段即已确定。该IP适用于需要MIPI接口的图像数据传输应用场景。

2025-11-07 20:53:49 1613

原创 mipi dsi图像

本文介绍了DSI图像模式的三种工作方式及其相关术语:Non-Burst with Sync Events、Non-Burst with Sync Pulses和Burst Mode。详细定义了DSI协议中的关键信号缩写,包括垂直同步(Vss、VSE)、水平同步(Hss、HSE)、消隐期(HSA、HFP、HBP)、数据包类型(BLLP、RGB)以及低功耗模式(LPM)。同时说明了垂直时序参数:VSA(垂直同步有效行)、VACT(有效图像数据行)、VBP/VFP(前后消隐行)。这些术语为DSI接口的时序控制提供

2025-11-07 20:26:12 200

原创 MIPI DSI和MIPI Tx IP 的建立

物理层有A PHY、C-PHY、D-PHY、M-PHY,本次课程使用D-PHY。DSI以MIPI联盟规范为基础,采用DPI(显示像素接口,Display Pixel Interface)、DBI(显示总线接口,Display Bus Interface)和DCS(显示命令集,DisplayCommand set)标准中规定的像素格式和命令集。LP-Tx单端驱动线路:有LP-00、LP-01、LP-10、LP-11四种状态;是基于D-PHY进行工作的,显示器控制芯片ST7701S也是基于D-PHY进行工作。

2025-11-06 20:25:47 755

原创 ZYNQ介绍

这是领域是一个是用 fpga 的新兴领域,使用 Zynq Mpsoc 的多核处理器的场景越来越多,因为 Mpsoc的算力有很多种选择,价格也相对有优势,再就是嵌入式边缘计算中,很多加速数据处理可以放到FPGA 来实现,最终的任务调度和控制使用 ARM 实现,这样充分发挥了 Mpsoc的优势,实现更多的 ADAS 算法。在芯片设计验证领域呢,主要使用传统FPGA的比较多,因为传统FPGA 都是一级一级的寄存器和查找表,与 IC设计的功能类似,可以为前期逻辑验证铺平道路。Zynq 系列芯片的发展和前景。

2025-11-06 15:00:32 290

原创 vivado中常见错误

在文件夹中找到这个文件,然后给他删了。

2025-11-04 20:21:22 160

原创 二谈-双FIFO流水案例

本文设计了一个基于FIFO控制器的矩阵运算系统,用于处理86×86矩阵数据。系统通过串口接收数据,每10个波特时间传输一次。采用双FIFO结构实现三行滚动相加运算:FIFO1存储第0-83行数据,FIFO2存储第1-84行数据。当接收第2-85行数据时,控制器将当前行与FIFO1、FIFO2中前两行数据相加,共进行84×86次加法运算。模块包含行列计数器、写使能控制和数据缓存逻辑,最终结果通过UART发送。

2025-10-28 14:38:04 311

原创 基于Verilog手撕卡尔曼滤波器例程

是一种随时间推移进行测量并预测下次测量结果的算法。它被广泛应用于传感器、GPS等许多领域,用于在信号丢失几秒钟的情况下预测位置,在计算机视觉领域也能看到类似的应用。例如,对于雷达来说,人们感兴趣的是其能够跟踪目标。但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)。

2025-10-27 15:55:25 301

原创 双FIFO流水线操作

FIFO在图像处理中的应用 FIFO(先入先出)是一种数据缓冲存储器,其核心特性是顺序读写操作。与RAM不同,FIFO没有地址线,数据按写入顺序依次读出,且读写可同时进行。FIFO具有空和满两种状态,当写满时新数据无法写入,读空时无法读取有效数据。 FIFO可分为同步(同一时钟)和异步(不同时钟)两种类型。标准FIFO模式下,读出数据滞后读使能信号一个周期;而FWFT(首字直通)模式下,数据在读使能有效时即已准备好。FIFO的深度和位宽可配置,支持非对称位宽操作,并可通过计数器监控数据量。 在图像处理中,F

2025-10-27 13:49:55 897

原创 利用FFT检测FIR输出频率

本文介绍了FFT频谱分析的基本原理和应用。通过2048点FFT处理50MHz采样率的4MHz和5MHz混频信号,观察到频谱的对称性,前1024点为正频谱。计算得出频率分辨率为24.414kHz,并验证了1MHz和9MHz的混频结果。同时给出了Verilog HDL实现的32位数据分路模块(mux)的代码示例,展示了FPGA设计中数据处理的简单实现方法。

2025-10-24 16:44:32 188

原创 重探FIR滤波器

混频之后的信号是1Mhz和9Mhz我们滤除9Mhz保留1Mhz,因为我们信号动态范围是48db,那么1Mhz和9Mhz的动态范围各自是24b,我们要想把9Mhz抑制掉需要至少滤波器要抑制信号24db。所以我们设计的滤波器,在9Mhz位置需要是有至少-24db的衰减,在1Mhz位置通带尽量平滑,并接近于0db,也就是没有增益没有衰减。通过数字信号处理学习,就会知道其实FIRFilter的核心思想就是卷积运算,然后再稍微了解一下卷积的时域卷积定理,你就可以轻易的想象出FIR滤波器的原理。

2025-10-24 14:15:20 473

原创 二探DDS直接数字频率合成器

设置DDS,采样时钟50Mhz,产生4Mhz和5Mhz正弦波频率信号。然后进行混频,使用modelsim仿真,观察三个正弦波信号。例如:255, 20*log(255) = 48db。动态范围:20*log(动态最大值)

2025-10-23 16:09:28 233

原创 ADC串口控制(3)

该Verilog模块实现了一个ADS1256 ADC控制器的SPI接口通信逻辑。摘要如下: 主要功能: 通过状态机控制ADC的初始化流程(IDLE、WREG、SYNC_S等10个状态) 生成SPI时钟(sclk)和MOSI数据信号 处理ADC的DRDY(drdy)同步信号 关键特性: 支持多种ADC命令:WREG(写寄存器)、SYNC(同步)、RDATAC(连续读取)等 包含复位控制逻辑(500周期复位序列) 通过移位寄存器实现命令发送 提供MISO数据接收处理 接口: 时钟/复位信号:clk, rst_n

2025-10-21 20:45:31 155

原创 基于ads1256的ADC控制实现

本文描述了一个ADC控制器模块adc_ctrl_ads1256的Verilog实现。该模块通过SPI接口控制ADS1256模数转换器,包含状态机控制逻辑、时钟生成、寄存器配置等功能。主要特点包括:定义了10种状态(IDLE、WREG等),使用移位寄存器发送配置命令(如WREG、SYNC等),支持复位控制和DRDY信号检测。测试模块tb_adc_ctrl_ads1256验证了基本功能,包括时钟生成、复位控制和DRDY信号模拟。该设计实现了ADC芯片的初始化配置和数据采集控制功能。

2025-10-18 17:10:24 230

原创 DDS的IP核使用

DDS(Direct Digital Synthesis,直接数字频率合成),作为信号发生器使用。使用vivado调用DDS的ip核进行仿真。设计单通道信号发生器(固定频率)、Verilog查表法实现DDS、AM调制解调、DSB调制解调、可编程控制的信号发生器(调频调相)。DDS的基本结构主要由相位累加器、相位调制器、波形数据表ROM、D/A转换器等四大结构组成,其中较多设计还会在数模转换器之后增加一个低通滤波器。系统时钟CLK为整个系统的工作时钟,频率为fCLK;

2025-10-17 21:40:51 986

原创 采用ADS1256的SPI接口ADC控制

本文介绍了基于TI公司ADS1256芯片实现数据采集与传输的系统设计。该系统通过串口指令控制ADC采集振动/音频信号,经DAC转换后通过Matlab实时显示。重点阐述了SPI通信时序参数设置(SCLK周期1μs)、寄存器配置方法(如WREG指令格式)以及连续读取模式的状态机设计(包含IDLE到SDATAC共8个状态)。系统采用921600波特率,利用RDATAC命令实现连续数据读取,并详细说明了各状态转换条件及数据读取时序要求(如t6=10μs等待时间)。该设计为高精度数据采集系统提供了完整的硬件控制和通信

2025-10-16 20:10:01 716

原创 用串口控制DAC

摘要:本文介绍了一个通过串口控制DAC模块(AD5324)输出指定电压的方案。系统采用四字节指令格式:首字节AA为起始标志,次字节选择通道(A1A0),后两字节组合成12位数据。电压输出公式为VOUT=VREF*D/2^12,其中VREF=2.5V。通过Verilog实现的状态机控制模块(uart_cmd.v)解析串口数据,DAC控制模块(dac_ctrl_ad5324.v)将16位数据转换成SPI信号驱动DAC。示例展示了如何产生1.6V电压(对应数据2621,二进制101000111101)。系统包含U

2025-10-16 16:02:52 429

原创 SPI数模转换实现

本文介绍了一个基于AD5324 DAC芯片的SPI控制器设计。该设计包含三个主要模块:dac_ctrl_ad5324(主控制模块)、tb_dac_5324(测试平台)和top_dac_ctrl(顶层模块)。主控制模块采用有限状态机实现SPI协议,包含IDLE、SYNC和SYNC_SHIFT三个状态,通过分频计数控制SCLK信号,实现16位数据移位输出。测试平台验证了模块功能,顶层模块整合了控制器、复位模块和调试接口(ILA和VIO IP核)。设计最终映射到FPGA引脚,实现了完整的DAC控制方案。

2025-10-15 11:25:31 200

原创 SPI接口数模转换DAC手册学习

DAC称为数模转换器。DAC的作用是将输入的二进制数字信号转换成模拟信号,以电压或电流的形式输出。此型号DAC芯片可以将输入的二进制数字信号转换成对应的电压值,将电压输入到其中一个寄存器中(一共四个寄存器)。

2025-10-11 16:45:06 289

原创 异步串口通信和逻辑分析仪

x_data信号是参与移位的数据,在移位的过程中数据是变动的,不可以被后级模块所使用,而可以肯定的是在移位完成标志信号rx_flag为高时,rx_data信号一定是移位完成的稳定的8bit有用数据。由于在PC机中波特率和rx信号是同步的,而rx信号和FPGA的系统时钟sys_clk是异步的关系,我们此时要做的是将慢速时钟域(PC机中的波特率)系统中的rx信号同步到快速时钟域(FPGA中的sys_clk)系统中,所使用的方法叫电平同步,俗称。有两根线,分别是rx和tx,这两根线都是1比特位宽的。

2025-10-09 20:26:50 991

原创 使用乒乓ram去直流分量

【代码】使用乒乓ram去直流分量。

2025-10-08 14:14:30 286

原创 RAM的IP核——读写乒乓操作

说到FPGA,不得不提的是存储器,当我们做相关项目时,经常会遇到存储数据的问题,数据量过大时,我们可以将其存储在FPGA芯片的外设存储器上,比如sdram、ddr sdram、ddr3 sdram等,然而访问外设存储器相对比较麻烦,因此当数据量较小时,我们可以直接使用FPGA芯片内部自带的ram的IP核。Ram是random access memory的简称,即随机存储器的意思,ram可以按照所需进行随机读/写。读取会慢一拍,在上升沿之后读取。易失性存储器,掉电消失。

2025-10-07 20:40:12 263

原创 PLL(锁相环)IP核时钟分频

D:分频器PFD:鉴相,鉴频器,主要作用CLKIN(输入)时钟和CLKBF(反馈)时钟的相位频率是否一致CP:电荷泵,充放电,控制频率,控制VCO电压,有阻尼效应LF:模拟电路,过滤噪声VCO:压控振荡器,依靠电压控制,电压高,频率高,电压低,频率低MMCM\PLL参数计算:MMCM\PLL作为频率合成器示例:clk50m = 0;reset = 0;endendmodule相位变化90(1/4周期)

2025-10-07 11:40:48 339

原创 按键控制售货机

【代码】按键控制售货机。

2025-10-07 10:18:56 228

原创 按键消抖处理

我们知道按键被按下时key值为低电平(O),在抖动期间key既有高电平也有低电平,我们可以使用clk的上升沿计算key连续为低电平的时间,期间当检测到key为高电平时,则从头开始计数,当计数超过5~10ms时,我们可以认定按键有被按下的时候,此时我们可以产生一个clk周期为高电平的标志,当该标志位高电平认为有一次按键即可,具体波形如图所示。由图3可知,当用clk的上升沿检测到key等于1的同时key_reg等于o,此时则为key的上升沿,若key等于o的同时key_reg等于1则为key的下降沿。

2025-10-06 14:44:30 323

原创 状态机练习

练习:使用状态机描述一个自动售货机,该售货机中的商品2.5元一件,每次投币既能投入1元,也能投入0.5元,当投入3元时,需要设定找零。要求画出状态转移图,写出状态转移及输出数据模块,使用do文件运行仿真。

2025-09-30 20:32:07 216

原创 有限状态机

状态机分为mealy型和moore型,其中mealy型指的是输出不仅与当前状态有关,还与输入有关,moore型指的是输出只与当前状态有关。三段式指使用三个always块,一个always模块采用时序逻辑描述状态转移,一个always块采用组合逻辑判断状态转移条件,描述状态转移规律,另个always块描述状态输出(可以用组合电路输出,也可以时序电路输出)。Mealy型状态机产生次态的组合逻辑和状态寄存器与Moore型状态机是一致的,而不同的是,Mealy型状态机的输出不仅与现态有关,

2025-09-30 11:08:48 343

原创 TOP-DOWN设计

本文介绍了FPGA自顶向下的设计方法,通过Verilog代码实现了一个模块化设计示例。设计包含三个主要模块:顶层模块top_down、分频计数器div_cnt和逻辑运算模块a_and_b。源代码展示了模块化设计、参数化配置和时序控制等技术特点,同时提供了测试平台tb_top_down用于验证功能。相比传统原理图输入方式,这种基于HDL的自顶向下设计方法具有更好的灵活性和可维护性,便于模块复用和大规模复杂电路设计。代码注释规范,包含版权声明和版本信息,体现了良好的工程实践。

2025-09-29 14:21:21 236

原创 FPGA_时钟分频灯

本文展示了一个FPGA实现的LED闪烁控制模块。主要包含两个部分:1)flash_led模块实现LED周期性闪烁,通过50MHz时钟分频产生1Hz控制信号;2)div_clk_5模块实现5分频奇数分频功能,采用双计数器(上升沿和下降沿)通过或运算产生。测试文件tb_flash_led和tb_div_clk验证了模块功能。此外还包含约束文件设置引脚位置和电平标准,以及一个PWM呼吸灯练习的简要说明。

2025-09-29 09:25:08 247

原创 FPGA时钟分频

不建议直接使用自分频的时钟用到always 的posedge clk 中,因为fpga的布线线工具无法保证布线到全局时钟网络,Clock skew(时钟偏斜)影响时序违例的严重度。不用组合逻辑,使用reg可以有效避免延时不统一,保证采集窗正常,取消BUS SKEW。clk_4:进行分频,周期4倍,频率1/4。分频的基础上,再进行了一次分频。clk:50M晶振,20ns。用产生的时钟进行分频。

2025-09-27 10:13:09 133

原创 条件判断语句

电路模型输出相当于一个D触发器,clk为时钟,b为二位选择器,a的判断为电压比较器if-else 不能过多,一旦过多,就会造成延时过久,时序不正确case:多路选择器注意锁存器。

2025-09-26 21:15:14 197

原创 verilog运算符

关系运算符(> < >= <= ==!一般不用,调用IP核运算,数字IC设计可以综合乘法。有符号乘法和无符号乘法不一样。逻辑运算符:&&、||、!在tenchband中。按位逻辑运算:&、|

2025-09-25 21:14:08 174

原创 Verilog中数值表示

原码,反码,补码(1)原码:最高位表示符号位,次高位到最低位表示十进制的二级制0表示正数,1表示复数。数据表示范围(127~-127)原码不能正确表示负数之间的计算。例如--8-1原码不适合做加减法运算2.反码正数的反码和原码相同,负数的原码则是最高位不变,此高位到最低位取反-8:反码:11110111, 1:00000001保持符号位不变,剩余位取反,得到10001001,为--9但是反码的负数计算也会出问题,例如--7+9当反码跨0时,会出现错误,也不适合运算。

2025-09-25 15:07:26 347

原创 赋值语句注意

注意时钟上升沿时候的数据变化。

2025-09-25 10:34:45 130

空空如也

空空如也

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

TA关注的人

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