- 博客(43)
- 资源 (25)
- 收藏
- 关注
转载 序列信号发生器的三种实现方式
一、状态转移型的序列信号产生器的verilog HDL 设计用一个不断循环的状态机,循环产生序列信号001011。过程过于简单,我就不画状态图了。直接给出verilog HDL设计代码://有限状态机方式实现001011序列信号产生器 module sequence_signal_fsm(clk, rst_n, dout); ...
2020-09-04 21:48:31
9381
原创 三段式moore状态机实现典型交通灯
交通灯说明作为IC/FPGA应聘者,交通灯的verilog设计是必须掌握的基本技能。本文以典型交通灯为例,即在主干道和支路相交的十字路口,主干道具有较高优先级。首先,应该明确:【1】除红灯外,其他有效灯转为另个状态,中间都应设定黄灯作为缓冲,如:交通灯由绿灯转为红灯之前,应该有一段黄灯作为缓冲段,同理,如果拐弯等转为红灯,也应设定黄灯作为缓冲段;【2】主干道处于红灯时,支路应处于非红灯的几个状态的转换过程,支路处于红灯时,主干道同理;本文假定灯的状态包括:绿灯、黄灯、左拐,主干道绿灯亮40s,支路绿
2020-08-28 16:17:53
3260
原创 三六相PMSM的FOC算法的数字实现(二)
三六相PMSM的FOC算法的数字实现(二)第二章 SVPWM算法2.1 基本电压矢量的由来2.2 扇区判断2.3 非零矢量(基本电压矢量)作用时间计算2.4 SVPWM的调制原则(开关顺序如何切换)2.5 七段式PWM驱动电机转动机理分析第二章 SVPWM算法以三相FOC为例,阐述SVPWM原理及其具体实现。根据1.2.3,SVPWM主要包括:扇区判断、基本矢量作用计算、Tcomp计算及PWM生成,如下图2-0.1所示。图2-0.1 SVPWM算法整体框图NOTE:本次采用的三相PMSM的电机定子
2020-08-20 12:40:12
4717
4
原创 三六相PMSM的FOC算法的数字实现(一)
三六相PMSM的FOC算法的数字实现(一)第一章 电机FOC原理1.1 电机基本概念1.1.1 交/直流电机1.1.2 同/异步电机1.2 电机控制策略1.2.1 磁场定向控制(FOC)原理1.2.2 空间矢量脉宽调制(SVPWM)原理1.2.3 FOC的系统构成第一章 电机FOC原理1.1 电机基本概念1.1.1 交/直流电机交流:将交流电能转换为机械能直流:将交流电能转换为机械能1.1.2 同/异步电机同步:转子转速与定子的旋转磁场的速度一致,转子上嵌有永磁体,直接产生转子磁场;异步(感
2020-08-19 23:00:25
4556
1
原创 整数(奇偶)+分数分频器的verilog实现(大合集)
异步FIFO设计分频器实现一、50%占空比整数分频1.1 奇数分频器1.1.1 方法1:2N分频上下沿波形相异或1.1.2 方法2:N分频上下沿波形相或(输出初始态为0)1.2 偶数分频器二、非50%占空比分频三、小数(分数)分频3.1 N+0.5分频3.2 任意小数分频3.2.1 基于脉冲删除小数分频的算法描述3.2.2 脉冲删除小数分频的仿真分频器实现分频在数字设计中应用广泛,通常可以使用锁相环PLL和计数器实现。本文介绍的分频器是基于计数器实现的,由于使用的是DFF(D触发器),这实际上是行波计数
2020-07-31 12:24:44
5715
1
原创 神奇的补码
目录1. 补码诞生的背景2. 原码、反码、补码2.1 原码2.2 反码2.3 补码3. 加减法3.1 普通算术加减法3.2 模N加减法4. 总结1. 补码诞生的背景 不论是在生活中还是虚拟网络中,人们总是习惯与10进制数字打交道,很容易理解10...
2020-07-29 23:09:49
375
转载 从vivado(Xilinx)谈约束文件
对于一个完整的FPGA设计,既要有时序约束,也要有物理约束(例如:管脚分配与管脚电平设置)。Xilinx建议将这两类约束分开写在不同的约束文件中。此外,考虑到某些设计中可能会用到手工布局,从而会有相应的Floorplan约束(对应Pblock,可理解为面积约束)。同时,在大多数情形下都需要对FPGA设计进行调试,这样就会用到ILA,同时需要对相应的net设置MARK_DEBUG属性,这可理解为第三种约束即调试约束。因此一个完备的约束会包含时序约束、物理约束和调试约束,如下图所示。对于约束文件,Vivado
2020-07-21 09:36:41
5856
2
原创 可综合的异步fifo设计(二)
本篇是继可综合的async_fifo设计(一)的下半篇,给出了testbench代码、测试波形及几个注意事项。异步FIFO设计三、重难点四、仿真波形4.1 读写不同时进行的逻辑测试4.1.1 FIFO初始化功能验证4.1.2 FIFO空标志产生逻辑的验证4.1.4 FIFO写满保护功能的验证4.1.5 FIFO读空保护(不再读)功能的验证4.2 读写同时进行的逻辑测试4.2.1 写信号不做间隔控制4.2.2 写信号做间隔控制4.3 testbench代码三、重难点整个设计前后,提出以下几个问题://
2020-07-14 23:12:13
1301
2
原创 可综合的异步fifo设计(一)
异步FIFO设计一、基本概念二、设计思路2.1 设计前准备工作2.1.1 系统框图2.1.2 格雷码基础2.1.3 异步fifo工作流程举例2.2 RTL建模2.2.1 DPRAM建模2.2.2 WR_LOGIC建模2.2.3 RD_LOGIC建模2.2.4 PIPE模块建模2.2.5 格雷码处理模块建模一、基本概念1.异步fifo定义:跨读写时钟域的dpram(双口ram),fifo的读写时钟是相互独立的两个时钟,在各自时钟下实现fifo数据的读写功能。2.异步fifo用途:【1】跨时钟域的多bi
2020-07-14 11:01:54
3469
原创 深度卷积神经网络的数字实现——二维卷积的纯数字电路实现(二)
继第一篇卷积神经网络博客,这里继续更新后文。3 数字模块实现方案3.1 总体模块总体模块不做过多说明,详细请看各底层子模块的介绍。3.1.1 接口定义3.2 乘法器子模块3.2.1 模块功能实现两个8位有符号数之间的乘法,并输出一个16位的数据。对输出结果不进行截取或饱和处理,保证数据的完备性。3.2.2 接口定义3.2.3 实现方案本乘法器采用类似booth乘法器的算...
2019-11-14 23:05:51
2887
8
原创 开关电源损耗分析 以Buck为例
PART1:前言本文以一个12V-2.5V/2A的DC-DC电源为例,阐述BUCK电路损耗产生及其估算算法。先做以下几点声明:1、开关电源的主功率开关管的工作区域:开区和关区,实际上是线性区(可变电阻区)和截至区,一定注意,不是饱和区和截止区。解释1:MOS工作区域的划分可以根据Vds与Vgs-Vth的大小关系判定(Vds表示漏源电压),具体如下:当然, 处于线性和饱和区之间,归结在任...
2019-11-13 21:12:02
11523
3
原创 深度卷积神经网络的数字实现——二维卷积的纯数字电路实现(一)
这是我2019.09这个月的项目任务。之前比较忙,现在以此文记录之。这实际上是第一届复旦微电子设计大赛数字赛道的参赛题目。借此题可以主动对深度学习,机器学习进行学习了解,由于是零基础,所以都是重零开始,对于初学者,文中难免有些生僻概念,部分会给出参考文献。此外,本次数字设计要求使用UVM平台进行设计的验证,故也可以借此机会入手UVM,毕竟对于数字IC设计来说,多掌握验证的知识,也是锦上添花。...
2019-10-31 22:17:25
2265
原创 信号源输出的负载阻抗与输出幅值的关系
实际使用信号源时,相信你一定遇到过设置的输出与示波器上观察的值不相等?一般情况下,信号源是没有坏的,而是你的设置有问题。如下:给出一般信号源的内部等效电路:实际上,信号源的正确使用首先,要掌握几个概念:1、Us为信号源标志符,也表示为实际信号源内部信号幅值;2、Ri为信号源的输出阻抗,一般是50欧姆(也存在其他值,一般电压信号源内阻越小越好),也可以理解为信号源内阻;3、Ro为信号源的...
2019-10-26 20:47:24
7119
原创 Pid算法在闭环dc-dc中的应用
时间:2019.10.25至此,已经初步完成闭环pid算法应用的仿真。以下对本次工作作关键性笔记记录。PART1:项目简述第一, 项目内容与试验目的。项目内容:搭建硬件BUCK平台(开环,平台上包括栅极驱动电路),使用fpga完成数据采集和数据处理,设计一个fpga数控电源。本次设计,采用的adc型号为ad9200。试验目的:1】 在fpga开发平台上成功运行pid算法;2】 熟悉数...
2019-10-25 21:27:03
4241
2
原创 数字设计中的小数处理——在加法与乘法运算中
先提两个问题:【1】 数字设计中小数的处理【2】 加法器、乘法器中输出数据的位宽问题1、有符号数和无符号数的定义,最高位表示符号位,其他位为数据位。无符号数则没有符号位;2、有符号数和无符号数转化为10进制表示的时候唯一的区别就是最高位的权重不同,这里的负数的表示与3中的表示不相同,这里的每一个位都具有权值,只不过最高位(即符号位)也是参与到权值贡献中,且其表示的为负值;举例:如4bit...
2019-10-16 10:09:21
2043
1
原创 BUCK电路输出LC值的选取
2-1 输出电感的选取依据1:BUCK电路在不同工况下具有不同的工作模式,在某些情况下会由CCM进入DCM(即连续到断续模式),这之间便是BCM(临界导通模式);依据2:(参考博客https://blog.youkuaiyun.com/zhy295006359/article/details/79054258)在BCM模式下,Io=(Ip-Iv)/2,其中Ip为峰值电流,Iv为谷值电流,如果,Io继续减...
2019-10-14 22:10:52
10853
4
原创 开关电源BUCK电路SW节点电压尖峰产生原因
如下,为典型BUCK电路等效电路图:在主功率开关管Q1由关态进入开态时,Q1导通瞬间,正在导通的VD突然被加上反向电压,在瞬间会产生非常大的反向恢复电流,即从SW到GND会产生很大的di/dt,通过计生电感L2会产生很高的电压幅值(在SW节点)。且,之后L1、L2与VD反向恢复时的等效电容C产生谐振,进而引发更高的电压尖峰,且伴随着振铃现象。NOTE:本质上是因为1】寄生L和C(储能元件)的...
2019-10-14 22:04:03
13778
1
原创 Verilog之非阻塞赋值(三)—— 赋值延后一个周期
总结:(一、二为一组,不延后;三、四为一组,延后1周期)其一,当在always块中的每一个条件分支中,仅有一条赋值语句(不管是阻塞与非阻塞),且要满足条件中的条件判断式不含有在本模块中定义并赋值的reg变量(采用非阻塞赋值)或者来自其他模块的非阻塞reg型信号,此时阻塞与非阻塞表现的结果是一样的,都是在时钟边沿瞬间完成的;理解非阻塞赋值分两个过程,RHS的计算为第一步,LHS的赋值为第二步,这...
2019-08-27 21:19:18
11280
11
原创 51单片机能否实现硬件仿真
stm32使用stlink进行硬件仿真,具有很大的优点,能够实时监测到io电平,对于时序分析和debug具有很大帮助,而对于stc系列单片机,如果单纯地使用软件仿真,实际中仿真会很不方便,这就为寻求51单片机的硬件仿真奠定了基础。寻找到解决方法如下:一般51单片机是不能在线硬件仿真的(当然不排除使用昂贵的硬件仿真器),而iap15w4k58s4单片机是支持硬件仿真的。具体如下:Step1:点...
2019-08-26 23:12:06
2622
原创 19Ti杯调试笔记
8月是忙碌的1个月,这个月一路奔波,先是去了兰州,而后去了南京,做了两个比赛,很刺激。先罗列一下几个问题,下文一一解释:1、称重(压力)传感器Hx711调试;2、水压(液位)传感器Lwp5010调试;3、iic通信进一步理解(应答、主机向总线上读取一字节数据子函数);4、sprintf函数用法;回答:1、主要是错误使用sprintf函数,导致在oled上显示不到正确的目标数据。原错...
2019-08-26 22:56:26
409
原创 黑金高速AD-DA模块使用
这个月是假期的第一个月,从10号开始就在忙碌比赛的事情,总是没有时间更新博客。前不久使用了黑金的高速AD-DA模块,本文介绍一下。模块外形图如下,市面上很常见。整体评价一下板子做工。做工上整体比较美观,不足之处有二,其一是输入输出接口值留了BNC接口,这在实际应用时可能带来不便(可以使用高频头接口外加测试口的方式进行改进);其二是电源电路的电容的型号,如图所示,实物中的电容高度较高,实际使用...
2019-07-28 22:21:19
4169
1
转载 示波器的带宽概念
示波器基本原理之一:带宽示波器最重要的单一特性,即带宽在频率域提供范围标示。 带宽是大多数工程师选择示波器时首先考虑的技术指标。带宽以Hz衡量,根据频率决定信号范围,以便能精确显示及进行测试。 带宽不足,则示波器将不能显示出实际信号的准确表现。例如,信号的幅度也许会不准确、边缘也许会不平整、波形细节情况也许会丢失。1. 示波器带宽的定义如图 1 所示,所有示波器都会在较高频率时出...
2019-07-12 15:27:28
25558
2
原创 FPGA控制DDS_AD9850输出正弦波(“并行spi”)
本次介绍ADI公司的数字频率合成(DDS)芯片——AD9850以及如何使用FPGA控制其输出正弦波。本文分三个部分讲解:一是AD9850芯片介绍,包括基本引脚功能、驱动时序以及相关注意事项;二是基于FPGA的AD9850的驱动的建模;三是仿真和调试结果。PART1:AD9850认知1、模式选择:并行和串行两种。2、通信协议:实际上属于SPI协议的变种。串行时很好理解,并行时可...
2019-07-09 21:38:08
6757
5
原创 信号之建立时间和保持时间
这篇文章讨论的对象是数字设计或FPGA设计中一对重要概念——信号的建立时间和保持时间。最初考虑写这篇文章仅是因为在建模PCF851(一款AD-DA芯片)时,由于笔者没有考虑到这方面的时序要求,虽然整体时序框架正确,但细节部分(具体的信号时序,如上升沿到来前信号的到来时间)没有注意,最终导致花了很长时间才找到问题所在。而后,逐渐了解到时序约束、STA等概念,其实在面试相关工作岗位时,有关建立时间...
2019-07-04 16:53:47
14208
1
转载 很多人觉得FPGA难学,因为他们没总结出数电的尽头是模电!
问:本人零基础,想学FPGA,求有经验的人说说,我应该从哪入手,应该看什么教程,应该用什么学习板和开发板,看什么书等,希望有经验的好心人能够给我一些引导。如果想速成,那就上网看视频吧,这样主要是面对应用的,一个小时内让你的板子运行起来。早期起来的快,活学活用,就是后期没有系统理论支持,会有些吃力,特别是大项目,那完全是个悲剧。国内做的可以的,我知道的就是周立功了,艾米电子也可以吧。这两家都有学...
2019-06-29 22:45:12
8128
3
原创 IIc通信协议之(二)——PCF8591控制
本章继上节iic通信协议,在理论学习之后,找到一块iic接口的片子——PCF8591,它是一款AD-DA集成芯片。所以本节对iic通信协议不做过多的介绍,重心放在iic的rtl建模,本次通过iic控制PCF8591实现DAC输出功能。PART1:建模前的准备包括两部分,一是芯片手册阅读,二是建模思路;一、阅读PCF8591芯片手册,获得以下信息:>PCF8591的...
2019-06-28 21:08:53
5336
2
原创 FPGA之串口收发字符串之(四)——串口屏USART_HMI介绍
之前对串口各模块的设计都做了相关介绍。这里介绍串口屏的相关知识。本次项目使用的串口屏型号是陶晶驰串口屏TJC3224T024_011,这个型号的串口屏的资料在官网可以找到。本文抛转引玉,简单介绍以便在本工程中更好的应用。下图是该串口屏的实物图:一般地,使用单片机或者嵌入式MCU控制串口屏,都会用到串口,同样地,在FPGA中实现也是类似,不过稍微复杂,具体代码设计过程中有以下问题需要...
2019-06-27 16:50:57
6522
3
原创 IIc通信协议(一)
-->物理结构:-->通信原理:通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。-->iic总线协议:1】起始和结束信号总是由主设备产生。起始信号:SCL高电平空闲,SDA由高变低;(SDA拉低后SCL再拉低)结束信号:SCL高电平空闲...
2019-06-26 22:35:24
14215
2
原创 Verilog之非阻塞赋值(二)——赋值延后一个周期
阻塞与非阻塞赋值,当在always块中的每一个条件分支中,仅有一条赋值语句(不管是阻塞与非阻塞,且要满足条件中的条件判断式不含有在本模块中定义并赋值的reg变量(采用非阻塞赋值)),那么阻塞和非阻塞都是在时钟边沿瞬间完成的;(理解非阻塞赋值分两个过程,RHS的计算为第一步,LHS的赋值为第二步,这是第一层面;第二,由于两步时间非常短,变现出来就是在时钟边沿瞬间完成,故表现的和阻塞一样,这是第二个层...
2019-06-26 15:04:19
11186
2
原创 异步FIFO(一)
写fifo这篇博客的主要原因是想强调异步fifo在跨时钟域处理以及读写数据宽度不同的异步fifo的设计。本篇文章先从简单开始,即先讨论ip调用——异步fifo使用。异步fifo,顾名思义与同步fifo最大的区别是在时钟上,异步fifo的读写是中国不同。本次设计,通过调用quartus ii自带的ip核(具体的ip调用生成在上篇文章已有说明,不会的可以回顾一下)。写时钟采用系统主时钟,运用...
2019-06-21 22:41:47
3111
原创 Ip核调用——FIFO学习(一)
FIFO-first in first out,正面意思很好理解。这部分着重介绍同步FIFO,之后再介绍异步FIFO。通过fifo的学习,同时为大家介绍quartus ii 中的ip核的调用。具体步骤如下:在MegaWizard Plug-in Manager中搜索fifo,即可进入fifo的io核编辑界面。编辑界面如下:选择8bit数据位宽,fifo深度32字节(红色标注1、2...
2019-06-19 15:45:46
7382
1
原创 FPGA控制——基于FSM的TLC5615之SPI建模
真的是好久不见!此篇博客介绍TLC5615的控制之SPI建模。PART1:TLC5615及其时序控制原理介绍TLC5615是TI公司的一款10位DAC芯片,控制兼容SPI接口。其引脚图如下:从引脚图看到,通信接口为:DIN、SCLK、CS_N和DOUT,其中DOUT用于级联方式,本次设计采用的是非级联方式,故不用到DOUT;模拟接口:OUT(模拟电压输出)、REF(基准电压输入...
2019-06-12 19:18:24
1527
原创 Simulink使用之HDL Code使用步骤(一)
这几天比较忙,特殊出差,很久没有更新了。借此篇博客开创一个新的专栏——Matlab & Simulink,是因为Matlab功能之强大,之前也使用了simulink搭建了一些模型,此篇介绍Simulink中的HDL Code之使用,即,将SImulink的model文件转化为hdl代码输出。Step1:找到HDL-supported blocks,simulink库中名为HD...
2019-05-15 21:27:26
10526
原创 FPGA之串口收发字符串控制HMI串口屏之(三)——调控模块及波特率发生模块
本次将探讨串口收发字符串的最后一部分,所谓调控,不过是我取得一个名字罢了。因为FPGA要通过串口发送数据给HMI,而我们的数据并不是人为自定义随意发送,我们最终的目的是将整个系统(如电机伺服控制系统)中的某些参数(来自系统的其他模块的数据)传递给串口模块,由串口模块进行数据整合(整合成特殊格式,HMI的指令格式所要求的),然后再发送至HMI进行数据的显示,谓之调控。调控模块也是整个串口模块中最...
2019-05-07 21:34:36
2238
3
原创 FPGA之串口收发字符串控制HMI串口屏之(二)——接收模块
今天,对之前写好的UART程序进行了进一步优化,解决了历史遗留问题。先回顾一下,上一节写到的发送模块,这里作特别说明:本次串口模块主要是用于控制HMI屏幕的(之前也有提到),因为是特定的目标对象,所以也就要具体问题具体对待。比如:之前的串口发送模块的写法与常规的写法有所不同,主要就是:一般地,可以将串口的应用分为两种,一者是接收模块和发送模块一起使用,构成回环的形式(比如FPGA的实验课中,板...
2019-05-06 21:11:14
1924
原创 数字电路设计中的竞争与冒险和时序同步always块的问题分析
本次讨论数字电路设计中的竞争与冒险以及一些不好理解的概念。PART1:竞争与冒险step1:基本认识在组合逻辑电路中,常常具有发生竞争现象的可能性,以及会带来冒险的后果。首先明确,一般情况下我们将逻辑门电路视为理想电路,即没有考虑延迟,而实际中,输入信号经过门电路获得输出,总是需要传输时间的,即门电路的传输延迟。所谓竞争:在组合电路中,某个变量(或信号)经过两条以上的路径到达...
2019-05-04 15:02:15
2460
原创 可调恒流/恒压源设计
这次分享的是我大学时候的毕业设计,题目是自己出的,不是很难,旨在温习一下基础知识,对分离式开关电源的设计和参数调试有更直接的认知,也让我在闲暇之余不再那么累(偷下懒哈哈,因为刚刚考过研)。闲话不多说,上要求:本设计拟采取buck拓扑,利用同步整流技术和数字闭环技术,设计实现一个可调的恒压/恒流源。该电源指标如下:具有恒压/恒流模式切换功能;整机最大功率大于200W;整机效率大于92%;系统输入...
2019-05-03 20:50:37
19815
16
原创 FPGA之串口收发字符串控制HMI串口屏之(一)——发送模块
1、总体概述串口通信是一种常见的通信方式。在FPGA中也是比不可少,本专题实现FPGA的串口收发字符串,属于Uart通信,通信方式:串行、异步、全双工的。用verilog实现,包括以下几个模块:串口发送模块、串口接收模块、波特率发生器模块、字符串接收与发送调度模块(可以独立于串口接收模块,这里的输入数据位并行的,主要是为了将要待发送字符串(来自其他模块)进行数据重组(本次的通信外部设备为HMI,...
2019-05-02 16:28:50
4884
原创 杂文:个人自述——电子之旅
发布了三篇博文之后,特此写一篇博文正式记录我的博客之旅。实际上,我很早就开始接触了优快云,很早之前也发布了第一篇优快云博文(开关电源自举电路那篇,后来见的是删除了第一篇,改了图片方向后从新上传的),但是后来就没有更新了。首先谈谈我的大学及大学所学。我是2014级成都信息工程大学的一名电子信息工程专业的学生。上了大学后,第一次接触电子是2014年11月左右,后来真正踏入电子之旅大概是在201...
2019-04-29 13:51:00
686
4
divider_all.zip
2020-08-11
async_fifo_sys.zip
2020-07-19
2001 V:IEEE1364-2001 Verilog lrm.zip
2020-07-14
可调恒流恒压源设计pcb
2019-12-10
fpga控制DDS_AD9850输出正弦波(方波).zip
2019-07-09
iic通信之PCF8591_AD_DA控制.zip
2019-06-28
基于Usart的串口屏(USART_HMI)驱动.zip
2019-06-27
基于状态机的tlc5615之spi控制建模.zip
2019-06-12
电子科技大学2018级 研究生图论课程四次测试题(期末相关)之四——图论作业4.pdf
2019-05-29
电子科技大学2018级 研究生图论课程四次测试题(期末相关)之三——图论作业3.pdf
2019-05-28
电子科技大学2018级 研究生图论课程四次测试题(期末相关)之一——图论作业1.pdf
2019-05-23
FPGA之按键消抖
2019-04-29
Nonblocking and blocking Assignments
2019-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人