- 博客(13)
- 资源 (4)
- 收藏
- 关注
原创 一文理解同步FIFO
FIFO即First In First Out,是一种先进先出数据存储、缓冲器,我们知道一般的存储器是用外部的读写地址来进行读写,而FIFO这种存储器的结构并不需要外部的读写地址而是通过自动的加一操作来控制读写,这也就决定了FIFO只能顺序的读写数据。其实FIFO的流程就像跑圈,写满的时候就等于写信号套了读信号一圈,而读空的时候,等于读信号又追上了写信号。 FIFO是一种先进先出数据缓存器,它与普通存储器的区别是没有外部读写地址线,使用起来非常简单,缺点是只能顺序读写,而不能随机读写。同步FIFO,...
2022-06-17 23:16:00 1756 3
原创 PI闭环的FPGA实现
最近小张同学在做项目的时候发现PI闭环的FPGA学习资料很少,秉持着“既然没有轮子,那么自己就造一个的原则”,于是乎自己写了个PI的Verilog程序。 FPGA中实现PI闭环与DSP、STM32、arm中都不一样,由于FPGA中没有数学库,需要从底层开始解决运算中产生的小数、除法等问题。因此FPGA中实现PI闭环相比来说有一点点难度。 首先,位置式PI和增量式PI的选择问题,由于位置式PI的实现原理包含历史误差的累计,并且启动瞬间或状态突然切换瞬间会有突变现象,突变现象会影响电机的动态性能,...
2022-06-10 21:36:03 1781 34
原创 【手撕代码】—Verilog实现呼吸灯
小张最近痴迷于刷题,恰好看到了这个呼吸灯手撕题,让我回想起本科学EDA的课堂作业,今天趁机来复习一下 实现1s内呼吸灯从暗到亮,下一秒1s呼吸灯从亮到暗,并不断循环此过程。 不整废话,直接干货。**呼吸灯的本质是PWM占空比的改变导致led灯两端的电压的不断改变。**从暗到亮的过程是占空比从0%到100%的过程。从亮到暗即对应从100%到0%。 那么不懂的小伙伴可能会问,什么是PWM?PWM是脉宽调制技术(Pulse-width modulation)。通常情况下,你看到的灯是处于全亮或全灭
2022-06-01 11:44:07 1646 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 1367 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 3074
原创 FPGA中关于ROM表的理解
在很多运算电路中,存储器ROM都起着关键的作用。ROM是只读型存储器。FPGA是基于SRAM的可编程器件。掉电后FPGA上的配置信息将全部丢失,所以由FPGA构造的数学系统在每次上电后要依赖于外部存储器来主动配置二或在线被动配置。真正意义上的ROM应具有掉电后信息不丢失的特性,因此利用FPGA实现的ROM只能认为器件处于用户状态时具备ROM功能。应用时必须首先对ROM单元进行初始化。...
2022-01-01 21:00:11 2169
原创 Simulink中步长、powergui采样时间、模块采样时间、控制周期的关系
Simulink中步长、powergui采样时间、模块采样时间、控制周期的关系最近在搭模型的时候,对simulink中的各个“时间”产生了概念上的混淆,网上的资料也是鱼龙混杂,看了之后更是一知半解。因此本文针对Simulink中的各个时间做一个概念上的总结和辨析,也算是为后人避个坑。仿真步长步长是matlab仿真时运算每步的时间,在Simulink中可以针对离散系统和连续系统,选择性的设置定步长仿真和变步长仿真。设置的渠道在下图。这里介绍几个概念:仿真时间:注意这里的时间概念与真实的时间并不一
2021-12-25 19:16:05 21200 2
原创 关于Verilog的output,应该是reg型,还是wire型?
在Verilog编程中常常遇到输出端口的类型问题,究竟是输出wire类型和reg类型,常常困扰着大家,针对这两种类型,两种类型综合出来的电路完全不同,wire是线网型,reg是寄存器类型。区分的方法可以这样简单粗暴的来区分:如果output作为过程赋值语句的左值,则应该用reg类型;如果output作为连续赋值语句的左值,则应该用wire类型。...
2021-10-20 20:48:32 11753 3
原创 FPGA Verilog 警告合集(持续更新):
FPGA Verilog 警告合集(持续更新): 在FPGA中,有些人在debug的过程中往往只关心出现了什么错误,但选择性的忽略警告,因此很多时候会出现程序正常运行但电路不工作的情况,其实这个时候往往警告会提醒你电路逻辑的异常,因此良好的编码习惯应该关注警告对电路的影响,分析那些警告是无影响的,哪些警告会使电路综合分析时出错,哪些警告会导致电路出现异常。巧用 警告,将会大大提高你的debug能力。 本文主要将警告分为两类:无影响的警告和有影响的警告。有影响警告合集:1. War
2021-09-27 11:04:24 2082
原创 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 1405
原创 基于FPGA的FOC电流采样Bug调试记录
#基于FPGA的FOC电流采样Bug调试记录博主在调试FOC闭环控制中遇到了一个bug,冥思苦想两三天,最终一步步地调试时序,最终找到了bug,在调试过程中学会了debug的思想,也明白了调试过程中要循序渐进,采用一步步的排除bug,先排除硬件bug,在排除软件Bug,软件bug通过时序一步步排除问题,最终找到是哪个环节出了问题,谨以此博客来记录这次难忘的调试经历。Bug现象本次FOC出现的BUG主要是电流采样的问题,电流采样是针对三相电机的相电流进行采样,正常情况下应该是复制相等相差120°的正弦波
2021-09-08 16:42:54 2958 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 4373 19
转载 2021-01-20
Java 编译错误:缺少返回语句示例:import java.util.;import java.io.;public class tt {public static void main(String[] args) {foo();}public static String foo() { int i=0; while(i<10) { return "ggg"; }}}该函数编译便会报错:缺少返回语句。尽管看起来(i<10)是肯定为
2021-01-20 21:52:55 171
基于MATLAB的电力系统潮流计算
2019-03-13
电力系统潮流计算matlab代码
2019-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人