自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FPGA驱动SDRAM

SDRAM(同步动态随机存取存储器)。

2023-10-19 16:06:53 668

原创 FPGA面试题(7)

可以理解为开路。电阻非常大,极限状态可以视为悬空。

2023-10-11 16:44:04 1064

原创 FPGA面试题(6)

总线是连接两个或多个组件的通信路径,是计算机各功能部件之间传送信息的公共通信干线。可以分为数据总线,地址总线,控制总线。特点包括分时:某一时刻只允许一个部件向总线发送信息;共享:多个部件可以同时从总线上接收相同的信号。

2023-10-11 15:34:24 449

原创 FPGA面试题(5)

流水线设计就是将组合逻辑系统的分割,并在各个部分之间插入寄存器,并暂存中间数据的方法。将一个大操作分解成若干的小操作,每一步操作时间较小,可以提高频率,各小操作可以并行,可以提高数据吞吐率。

2023-10-11 11:30:32 298

原创 FPGA面试题(4)(跨时钟域处理)

打拍的作用:第一拍是异步信号转同步信号,第二拍及以后是防止亚稳态传递。理论来说,打两拍也不是完全消除亚稳态,只是降低了亚稳态出现的概率。触发器进入亚稳态的时间计算可以用参数MBTF计算,其公式如下其中MBTF的值越大,亚稳态出现的概率越小。而打拍可以增大MBTF的值。简而言之就是:打一拍仍然有很大概率出现亚稳态,打两拍出现亚稳态概率不大,打三拍相较于打两拍亚稳态出现的概率更低,但是除非超高频没必要。

2023-10-10 16:43:43 2119

原创 FPGA面试题(3)

一.FPGA和CPLD区别FPGA:现场可编程门阵列CPLD:复杂可编程逻辑器件二.多位异步信号如何同步单比特异步信号慢时钟域->快时钟域:同步打拍快时钟域->慢时钟域:先拓展位宽再同步打拍多比特异步信号1.异步FIFO2.保持寄存器+握手信号3.特殊的具体应用电路结构,根据应用的不同而不同三.FPGA芯片内部有哪两种存储器资源BLOCK RAM:由一定数量固定大小的存储块构成的,不占用额外的逻辑资源,并且速度快。分布式RAM:由LUT配置成的内部存储器

2023-10-10 11:31:09 1058

原创 FPGA面试题(2)

一.同步复位和异步复位同步复位:当clk有效时,复位才有效。优点:有利于时序分析,防止毛刺现象出现。缺点:复位信号必须大于时钟周期,大部分逻辑器件中D触发器都只有异步复位端口,需要在寄存器数据输入插入组合逻辑,需要考虑组合逻辑延迟因素。异步复位:复位信号与clk无关,只与自身输入信号有关。优点:无需插入组合逻辑,省资源,设计相对简单。缺点:可能不满足建立时间和保持时间要求,容易出现亚稳态,易受毛刺影响。二.同步电路和异步电路同步电路:存储电路中所有触发器的时钟端都接入同一个时钟脉冲源,

2023-10-10 09:51:22 310

原创 FPGA面试题(1)

一.FPGA内部结构可编程I/OPLL锁相环(其作用为:分频,倍频,相位调节、占空比)逻辑阵列块LAB(每个LAB由16个逻辑器件LE组成,每个LE包括一个查找表LUT和一个RAM构成。Cyclone IV EP4CE6F17C8中包含6272(392 * 16)个LE)嵌入式存储单元(M9K)嵌入式乘法单元(DSP:数字信号处理)可编程物理连线二.查找表结构&原理结构:LUT本质是一种RAM。FPGA使用4输入LUT,所以每一个LUT可以视为是一个有4位地址线的RAM。原理

2023-10-10 08:49:26 346

原创 SPI读写FLASH

存储结构:FLASH包括32个扇区(sector),每个扇区包含256个页(page),每个页包含256个字节(byte)。因此,每个字节的存储地址需要8bit的扇区地址+8bit的页地址+8bit的字节地址才能定位。指令集常用的指令有WREN(读使能),RDID(读ID),RDSR(读状态寄存器),READ(读数据),PP(页编程),SE(扇区擦除)时间满足条件:页写,全擦除,扇区擦除指令执行完成需要一定的时间指令与指令之间需要相隔一段时间。

2023-10-08 18:48:20 566

原创 AHT10读取温湿度

由图可知我们不同状态的命令不同,需要符合起始位/写数据/读数据/停止位/校验位,对应的关系存在如下情况。(iic_interface可直接用前文IIC读写EEPROM一文的接口模块)读数据和写数据时 8bit,起始位,校验位,停止位都是 1bit。温度测量命令同理,读数据更改为 7 个字节,也就是循环 7 次。其中用到了仿真模型,完整工程可以通过。因为图片太长,分两部分截图。

2023-09-29 16:28:35 571 1

原创 FPGA实现滤波器

根据如图的电路图实现滤波器功能其中h[0]–>h[11]为抽头系数输入的波形数据详情可见。其中包含coe_q.txt 为抽头系数文件,wave_bin.txt 为输入的数据波形文件,仿真.png 为我们最终要实现的效果。

2023-09-29 14:10:09 201

原创 IIC读写EEPROM

​EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。本项目中使用的是24LC04B器件ID(可以视为是7’b1010000加上一位的0/1)单字节写页写当前地址读随机地址读顺序地址读24LC04B存储空间包括2个block,每个block中包含256个字节。

2023-09-23 16:47:50 269

原创 DS18B20读取温度实验

DS18B20数字温度传感器提供9-12bit的摄氏温度测量精度和一个用户可编程的非易失性且具有过温和低温报警功能。采用单总线接口方式通信每个设备内部ROM上烧写了一个独一无二的序列号可以由数据线供电而不需要外部电源供电测量范围在-55℃~125℃在温度范围超过-10摄氏度至85摄氏度之外时还具有±0.5℃的精度。

2023-08-26 14:21:41 946 1

原创 uart串口环回(加校验位)

根据传输的数据计算出一个校验位和我们传输的校验位做对比。使能信号需要保证在传输的校验位和计算的校验位相等时才有效。根据无校验位,奇校验位,偶校验位三种情况,需要改变状态转移图。

2023-08-24 15:38:33 1285

原创 uart串口环回(加FIFO)

UART(universal asynchronous receiver-transmitter)是一种采用异步串行通信方式的通用异步收发传输器。定义如上,那么出现问题了,什么叫异步串行通信?请关注下文原理。

2023-08-24 10:58:35 2203

原创 ws2812动态滚动显示图片

如图所示:第一帧为红色框,显示第一个8 * 8的图像,然后向右平移,显示绿色框内的第二个8 * 8的图像…到最后显示紫色框内最后一个8 * 8的图像。可以设置帧与帧之间延时500ms,在视觉上就得到了滚动的状态。3.rom核中地址值的考量,(横坐标+帧数)取余32+纵坐标乘32。2.加入一个状态,在此状态计数500ms,跳转到显示下一帧。4.rom核的数据深度需要调整,不然会溢出,影响最后显示。1.在静态基础上加入帧计数器。

2023-08-15 21:04:42 379

原创 ws2812静态显示图片

我们可以理解为共64个位置,每个位置需要24bit的数据,我们生成64*24bit的数据,这些数据每经历一个位置,就把这个位置给足24bit的数据,然后再经历下一个位置,走完64个位置也就把数据给完了。上图中,高低电平时间给的是范围,那么我们可以根据范围内取合适的值,例如T0H取300ns,T0L取900ns,T1H取600ns,T1L取600ns(保证T0H+T0L=T1H+T1L)可以读出mif文件的数据,这里rom用在ws2812_ctrl模块中。注意:要将mif文件保存至工程文件夹prj文件夹下!

2023-08-15 19:12:33 555

原创 综合之自动售货机2.0

1.初始状态按key[0]开始购物,按key[3]进入管理员模式。2.开始购物后选择商品,按key[0]切换商品。3.选择商品后按key[1]选择商品数量,按key[1]加一,按key[2]减一。4.选择商品和数量后,可以按key[0]返回继续购物,也可以按key[3]现在结算。5.初始状态按key[3],输入正确的密码进入管理员模式。6.进入管理员模式后可以选择商品,按key[0]切换商品。7.选择商品后按key[3]可以修改单价,按按key[1]加一,按key[2]减一。

2023-08-14 19:42:49 272

原创 综合之多功能电子时钟

蜂鸣器低电平有效数码管低电平有效。

2023-08-12 16:47:46 62

原创 EP4CE6F17C8程序固化

1.File->Convert Programming Files2.配置如下3.加入.sof文件生成.jic文件4.Programming界面delete原本的sof文件5.加入.jic文件6.勾选Programming Configure再下载即可

2023-08-12 15:38:36 180

原创 IP核之FIFO

FIFO(First In First Out)即先入先出,适用于跨时钟域信号传递。

2023-08-12 15:05:45 1692

原创 IP核之RAM

RAM(Random Access Memory),即随机存取存储器,可以将数据写入地址,可以随时从任意指定地址读取数据。时钟频率决定了读取速度。

2023-08-12 10:52:11 1407

原创 IP核之PLL

IP,知识产权。其可分为三种:软核,固核,硬核PLL(锁相环),其功能有:时钟分频,时钟倍频,调节相位,调节占空比。PLL核就是一种硬核。PLL原理是一个反馈电路,原理如下图:我们使用的EP4CEF17C8芯片有两个PLL,每个PLL可以有5路输出注意:!!!FPGA内部生成的信号不能控制PLL!!!

2023-08-07 19:55:01 499

原创 蜂鸣器播放《粉刷匠》

每两个“ | ”之间设定为1s,那么每一拍设定为250ms,有一些空拍,我们将空拍设定为保持上一个音符的频率。于是我们可以对应每一个音符应该是DO,RE,MI,FA,SO,LA,SI中的哪一个。我们想播放《粉刷匠》,需要得到它的乐谱如下。

2023-08-07 17:22:08 324

原创 改进电子门锁并加入数码管

前文已经发过电子门锁初步设计,但是后来发现有缺陷:多错误几次就很容易猜到正确的密码,有损安全性,于是本文做改进设计,并补充加入数码管显示键入密码功能。

2023-08-02 20:16:50 57

原创 数码管实现电子秒表

在结束计数的条件做修改,当它计满或者按下key[1]的时候则计数器清零。后来我才想到,好像复位就可以实现清零的操作。

2023-08-02 19:46:15 1119

原创 数码管实现电子时钟

【代码】数码管实现电子时钟。

2023-08-02 18:56:13 1079

原创 状态机实现电子门锁

【代码】状态机实现电子门锁。

2023-07-30 18:12:45 339 1

原创 动态数码管

2.考察状态:确定对应的sel应该哪个亮;并data赋给对应的值。3.考察data:data值对应真值表给seg赋值。1.flag状态转移条件:计满1s。

2023-07-30 13:51:49 126 1

原创 静态数码管

数码管分为7段数码管和8段数码管,其区别在于是否有小数点位。其本质是led点亮,则该段点亮。

2023-07-29 16:58:18 134

原创 状态机点亮流水灯

有限状态机(Finite State Machine, FSM),又称有限状态自动机,简称状态机,是指在有限个状态之间按照一定规律转换的时序电路。有限状态机主要包括:米勒状态机和摩尔状态机。其中摩尔状态机输出只依赖于当前状态而与输入无关。米勒状态机不仅依赖于当前状态,还取决于该状态的输入条件。

2023-07-27 20:26:17 337 1

原创 按键消抖补充

该时序图实现的是一位按键的情况。在使用消抖后按键信号的时候,可以在顶层调用消抖模块多次;也可以写多位按键消抖情况。1、4位按键信号赋值需要4位位宽的二进制数。5、如何赋值可以实现输出的脉冲信号。2、上升沿和下降沿如何求值。原理:仍然是采用延时方法。

2023-07-27 19:25:06 195 1

原创 按键消抖&蜂鸣器

由于按键的物理特性,芯片会识别信号出现多次高低电平变化,会出现如下图的未消抖信号。影响我们的整个项目。所以我们在使用按键时需要消抖,以确保按键被按下时只检测到一次低电平,我们期望的效果如下。根据延时计数器获取状态(是否抖动)的按键信号。

2023-07-26 20:58:00 681 1

原创 PWM呼吸灯

PWM就是在合适的信号频率下,通过一个周期里改变占空比的方式来改变输出的有效电压。频率很高时,看不到闪烁,占空比越大,LED越亮;频率很低时,可看到闪烁,占空比越大,LED越亮。

2023-07-24 19:37:47 325

原创 时序逻辑基础之D触发器&分频器

由图可知Q值不仅与D有关,同时需要考虑到clk上升沿到来后有效。仍然以5分频和8分频为例,探究奇数和偶数的仿真效果。D触发器模拟波形图如下。

2023-07-22 16:45:03 5170

原创 组合逻辑基础之全加器

全加器也是由半加器进而实现的,不仅可以用verilog代码实现,也可以用模块图实现。N位全加器可以成为一个模板,需要不同位数的全加器只需要修改N值即可,仿真文件的修改需要对应我们修改的N值来定义激励信号和输出信号的位宽。

2023-07-22 15:50:41 289

原创 多路选择器

使用组合逻辑电路,always语句中需使用reg类型,所以先定义一个reg类型的out_r在always语句中使用,最后再用assign out = out_r实现同步。回到wave界面对波形crtl+A,再ctrl+G可以对信号进行分类。再点击Restart和Run all,即可得到最终的信号波形。Quartus上面的菜单栏中,如图中框1是全编译,如图中框2为分析综合。仅分析综合可以实现语法检错,并且比全编译要更快一些。四个输入信号,一个输入的选择信号,一个输出信号。观测例化模块波形按下图操作。

2023-07-20 19:51:55 4539

原创 按键控制LED灯

由图分析可得,按下按键时KEY的值为0。

2023-07-20 09:24:48 767

原创 LED流水灯

打开Quartus后选择File->New Project Wizard或者直接点击主页上的New Project Wizard。笔者个人习惯先在vscode中写好代码后建立项目,因此此处我直接添加的代码文件。选择工程路径(放在3.1中新建文件夹的prj子文件夹中)以及为工程命名。右键左侧芯片EP4CE6F17C8后点击Device。点击Device and Pin Options。引脚配置如下(注意编译通过后方可配置引脚)选择芯片EP4CE6F17C8。

2023-07-19 19:05:06 93

原创 verilog基本语法

逻辑 X:表示未知,有可能是高电平,也有可能是低电平;逻辑 Z:表示高阻态,外部没有激励信号是一个悬空状态。逻辑 0:表示低电平,也就是对应我们电路的 GND;逻辑 1:表示高电平,也就是对应我们电路的 VCC;

2023-07-19 19:01:13 207

SDRAM仿真模型(需要100mHz偏移时钟)

SDRAM仿真模型(需要100mHz偏移时钟)

2023-10-19

AHT10读取温湿度工程

基于FPGA和AHT10温湿度传感器模块的温湿度读取系统,应用IIC协议,其模块构成包括IIC接口模块,AHT10控制模块,数据处理模块及串口收发模块等。

2023-09-29

FPGA实现滤波器资源

1.coe_q.txt 为抽头系数文件 2.wave_bin.txt 为输入的数据波形文件 3.电路结构.pdf 为依照该电路结构完成滤波器的代码编写 4.仿真.png 实现效果如仿真图片所示

2023-09-29

IIC读写EEPROM

应用IIC协议实现FPGA读写EEPROM,添加串口模块输入数据 仿真中加入了仿真模型,可以通过modelsim观测是否写入和读出

2023-09-23

DS18B20主从状态机

描述简单单ROM的DS18B20工作流程,主从状态机,状态描述,状态转移描述,以及状态转移根据手册的原因。

2023-08-26

ws2812b实现静态点亮图片和动态滚动播放图片

ws2812_ctrl2模块是静态播放图片,ws2812_ctrl3模块是动态滚动播放图片,如果需要更改,播放静态到播放动态,需要修改top文件中例化的模块名。

2023-08-15

FPGA实现自动售货机

自动售货机功能:1.购买商品(可以购买多个商品一同结算)计算总价模拟结算。2.管理员权限:可以输入密码进入管理员模式,可以调整商品单价,用户模式显示对应做修改。

2023-08-12

FPGA实现多功能电子时钟(时钟+闹钟+设置时钟+设置闹钟+蜂鸣器)

上电后初始状态为显示时钟状态,默认为12:00:00 显示时钟状态:按key[1]键可以进入设置时钟状态 按key[4]键可以进入显示闹钟状态 设置时钟状态:在此状态用户可以自行设置当前时间,进入该状态默认调节秒位:按key[2]键可以让秒位+1;按key[3]键可以让秒位-1。调节好秒位后按key[4]键调节分位:按key[2]键可以让分位+1;按key[3]键可以让分位-1。调节好秒位后按key[4]键调节时位:按key[2]键可以让时位+1;按key[3]键可以让时位-1。再次按key[4]再次回到秒位调节。此状态按key[1]回到时钟显示状态,显示更改后的时间。 显示闹钟状态:在显示时钟状态按key[4]进入该状态,默认为00:00:00。按key[1]键可以进入设置闹钟状态;按key[4]键可以进入显示时钟状态。 调节闹钟状态:在此状态用户可以自行设置闹钟时间,进入该状态默认调节秒位:按key[2]键可以让秒位+1;按key[3]键可以让秒位-1。调节好秒位后按key[4]键调节分位:按key[2]键可以让分位+1;按key[3]键可以让分位-1。调节好秒位后按key[4]键

2023-08-12

空空如也

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

TA关注的人

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