FPGA
文章平均质量分 74
爱折腾的张Sir
略懂嵌入式,熟悉FPGA,喜欢技术交流~
展开
-
一文理解同步FIFO
FIFO即First In First Out,是一种先进先出数据存储、缓冲器,我们知道一般的存储器是用外部的读写地址来进行读写,而FIFO这种存储器的结构并不需要外部的读写地址而是通过自动的加一操作来控制读写,这也就决定了FIFO只能顺序的读写数据。其实FIFO的流程就像跑圈,写满的时候就等于写信号套了读信号一圈,而读空的时候,等于读信号又追上了写信号。 FIFO是一种先进先出数据缓存器,它与普通存储器的区别是没有外部读写地址线,使用起来非常简单,缺点是只能顺序读写,而不能随机读写。同步FIFO,...原创 2022-06-17 23:16:00 · 2299 阅读 · 3 评论 -
PI闭环的FPGA实现
最近小张同学在做项目的时候发现PI闭环的FPGA学习资料很少,秉持着“既然没有轮子,那么自己就造一个的原则”,于是乎自己写了个PI的Verilog程序。 FPGA中实现PI闭环与DSP、STM32、arm中都不一样,由于FPGA中没有数学库,需要从底层开始解决运算中产生的小数、除法等问题。因此FPGA中实现PI闭环相比来说有一点点难度。 首先,位置式PI和增量式PI的选择问题,由于位置式PI的实现原理包含历史误差的累计,并且启动瞬间或状态突然切换瞬间会有突变现象,突变现象会影响电机的动态性能,...原创 2022-06-10 21:36:03 · 2041 阅读 · 34 评论 -
【手撕代码】—Verilog实现呼吸灯
小张最近痴迷于刷题,恰好看到了这个呼吸灯手撕题,让我回想起本科学EDA的课堂作业,今天趁机来复习一下 实现1s内呼吸灯从暗到亮,下一秒1s呼吸灯从亮到暗,并不断循环此过程。 不整废话,直接干货。**呼吸灯的本质是PWM占空比的改变导致led灯两端的电压的不断改变。**从暗到亮的过程是占空比从0%到100%的过程。从亮到暗即对应从100%到0%。 那么不懂的小伙伴可能会问,什么是PWM?PWM是脉宽调制技术(Pulse-width modulation)。通常情况下,你看到的灯是处于全亮或全灭原创 2022-06-01 11:44:07 · 1965 阅读 · 1 评论 -
牛客Verilog刷题__01 四选一多路选择器
牛客Verilog刷题__01 四选一多路选择器1 题目概述描述制作一个四选一的多路选择器,要求输出定义上为线网类型状态转换:d0 11d1 10d2 01d3 00信号示意图:输入描述:输入信号 d1,d2,d3,d4 sel类型 wire输出描述:输出信号 mux_out类型 wire2 题解有两种方法可解:解法1always块内赋值,使用case语句或者if…else语句。(if_else 太繁琐 我就不展开讲了) 注意:always块内赋原创 2022-04-20 22:29:47 · 1447 阅读 · 1 评论 -
FPGA实现边沿检测电路(上升沿、下降沿)
FPGA实现边沿检测电路(上升沿、下降沿)1、什么是边沿检测边沿检测用于检测信号的上升沿或下降沿,通常用于使能信号的捕捉等场景。2、采用1级触发器的边沿检测电路设计(以下降沿为例)2.1、设计方法设计波形图如下所示:各信号说明如下:sys_clk:基准时钟信号(这里设定为50MHz,周期20ns)sys_rst_n:低电平有效的复位信号in:输入信号,需要对其进行下降沿检测~in:输入信号的反相信号in_d1:对输入信号寄存一拍in_neg:得到的下降沿指示信号,该信号为 ind1转载 2022-04-08 20:19:28 · 3390 阅读 · 0 评论 -
关于Verilog的output,应该是reg型,还是wire型?
在Verilog编程中常常遇到输出端口的类型问题,究竟是输出wire类型和reg类型,常常困扰着大家,针对这两种类型,两种类型综合出来的电路完全不同,wire是线网型,reg是寄存器类型。区分的方法可以这样简单粗暴的来区分:如果output作为过程赋值语句的左值,则应该用reg类型;如果output作为连续赋值语句的左值,则应该用wire类型。...原创 2021-10-20 20:48:32 · 12917 阅读 · 3 评论 -
FPGA Verilog 警告合集(持续更新):
FPGA Verilog 警告合集(持续更新): 在FPGA中,有些人在debug的过程中往往只关心出现了什么错误,但选择性的忽略警告,因此很多时候会出现程序正常运行但电路不工作的情况,其实这个时候往往警告会提醒你电路逻辑的异常,因此良好的编码习惯应该关注警告对电路的影响,分析那些警告是无影响的,哪些警告会使电路综合分析时出错,哪些警告会导致电路出现异常。巧用 警告,将会大大提高你的debug能力。 本文主要将警告分为两类:无影响的警告和有影响的警告。有影响警告合集:1. War原创 2021-09-27 11:04:24 · 2489 阅读 · 0 评论 -
FPGA 分析综合错误 Warning (12241)2 hierarchies have connectivity warnings - see the Connectivity Checks re
FPGA 分析综合时警告 Warning (12241): 2 hierarchies have connectivity warnings - see the Connectivity Checks report folder警告: Warning (12241): 2 hierarchies have connectivity warnings - see the Connectivity Checks report folder出错原因:工程中顶层文件的数据类型的大小未声明或数据类型的位宽原创 2021-09-27 10:56:03 · 1696 阅读 · 0 评论 -
基于FPGA的FOC电流采样Bug调试记录
#基于FPGA的FOC电流采样Bug调试记录博主在调试FOC闭环控制中遇到了一个bug,冥思苦想两三天,最终一步步地调试时序,最终找到了bug,在调试过程中学会了debug的思想,也明白了调试过程中要循序渐进,采用一步步的排除bug,先排除硬件bug,在排除软件Bug,软件bug通过时序一步步排除问题,最终找到是哪个环节出了问题,谨以此博客来记录这次难忘的调试经历。Bug现象本次FOC出现的BUG主要是电流采样的问题,电流采样是针对三相电机的相电流进行采样,正常情况下应该是复制相等相差120°的正弦波原创 2021-09-08 16:42:54 · 3553 阅读 · 2 评论 -
PI闭环的FPGA实现
PID闭环的FPGA实现1 原理分析FPGA中实现PI闭环与DSP、STM32、arm中都不一样,由于FPGA中没有数学库,需要从底层开始解决运算中产生的小数、除法等问题。因此FPGA中实现PI闭环相比来说有一点点难度。 首先,位置式PI和增量式PI的选择问题,由于位置式PI的实现原理包含历史误差的累计,并且启动瞬间或状态突然切换瞬间会有突变现象,突变现象会影响电机的动态性能,同时启动电流会很大,而这会对电机工作状态产生影响,因此采用增量式PI控制更优。当然,我觉得用位置式pi也能适用于电机的pi闭原创 2021-09-01 09:57:43 · 5202 阅读 · 21 评论