自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ADC-TCL549

使用TCL549芯片:TLC548C、TLC548I、TLC549C、TLC549I、为带有串行控制的8位模数转换器(8位指转换后的数字信号位宽)REF+参考电压+(工程使用2.5V)REF-参考电压-(工程使用2.5V)ANALOG IN电压检测端(目标信号)I/O CLOCK输入输出时钟(读取时钟)DATA OUT数据输出(串行8位)CS片选信号(低电平有效)芯片特点(实用):转换时间最大需要17µs,4-MHz的内部系统时钟,TLC549的I/O时钟输入频率被指定为高达1.1 MHz。

2025-02-28 15:30:57 509

原创 基于FPGA的一些常识问题

2、行为建模:使用always块对电路进行描述,always@(敏感信号列表),always块下描述语句大于1条时需要加begin end,always块中赋值信号必须为reg类型。‌1、可编程逻辑单元(CLB)‌:CLB是FPGA的基本逻辑单元,负责执行大部分的逻辑运算。‌2、输入输出单元(IOB)‌(可编程IO):IOB负责FPGA与外部世界的接口,提供输入和输出信号的转换。‌4、其他内嵌单元‌:这些单元可能包括嵌入式RAM、DSP块、高速串行收发器、锁相环(PLL)等,用于增强FPGA的功能和性能。

2025-02-27 17:32:44 812

原创 二进制转BCD(简易)

工程比较冗余,在其他模块调用时需要移动多个文件,在位宽多变的情况下在工程内部也需要改很多东西,下面介绍一种简便的方法,只需要一个文件(原理与之前工程相同,这里只分享代码)

2025-02-27 17:19:05 201

原创 DAC-TLC5620

之前做的dds信号发生器,输出的是数字量数据,如果需要实际使用产生的信号,则需要DA转换,就是数字量到模拟量的转换。Digital-Analog-Converter,数字模拟转换器。由上传输时序图和对应的时刻对应表可知,clk是1Mhz时钟但在传输完11bit数据的最后一位后一直拉低,直到下次数据传输,传输完11bit数据的最后一位后,先拉低load信号,再拉低ldac信号。由于需要的clk不连续,所以之前使用的状态机不适用于该工程。

2025-02-27 17:03:51 1146

原创 verilogHDL仿真详解

Verilog HDL中提供了丰富的系统任务和系统函数,用于对仿真环境、文件操作、时间控制等进行操作。(后续会进行补充)

2025-01-10 14:21:39 504

原创 Sobel边沿检测

边缘检测,针对的是灰度图像,顾名思义,检测图像的边缘,是针对图像像素点的一种计算,目的是标识数字图像中灰度变化明显的点,图像的边缘检测,在保留了图像的重要结构信息的同时,剔除了可以认为不相关的信息,大幅度减少了数据量,便于图像的传输和处理。基于查找,零穿越的方法,Sobel算法准确率较低,效率高,基于Sobel算子。

2024-09-06 23:38:28 1033

原创 FIFO求和实验

现有一5行4列数据矩阵FIFO求和,对该矩阵数据,N = 5,M = 4,使X = 3进行列求和运算,得到S(3,4)新矩阵,则S(0,0)=D(0,0)+D(1,0)+D(2,0),S(0,1)= D(0,1)+D(1,1)+D(2,1),S(0,2)=D(0,2)+D(1,2)+D(2,2),S(0,3)=SD(0,3)+D(1,3)+D(2,3),S(1,0)=D(1,0)+D(2,0)+D(3,0)...S(2,0)=D(2,0)+D(3,0)+D(4,0)。

2024-09-04 20:08:22 1156

原创 基于DS18B20的温度检测

每个DS18B20的片内ROM都存有一个独一无二的64位编码。在该ROM编码的低8位保存有DS18B20的分类编码:28h;中间的48位是独一无二的序列号;最高8位是前面56位的CRC循环冗余校验码 (CRC=X8+X5+X4+1)。因为每个DS18B20的序列号都不一样,所以一条总线上可以控制多个DS18B20。温度测量方法:DS18B20中的温度传感器可完成对温度的测量,他的温度转换精度用户可自定义为9、10、11、12位,精度分别为0.5℃、0.25℃、0.125℃、0.0625℃分辨率。

2024-08-31 22:09:17 3106

原创 基于RS232的VGA显示

使用PC机通过RS232(50Mhz)连接FPGA开发板,通过RS232向FPGA发送图片数据,FPGA将图片数据缓存到RAM,使用FPGA的VGA接口驱动屏幕,将传入的数据进行读取,从而完成基于RS232的VGA显示。(640*480*60hz)(25.1Mhz)这里利用RAM进行跨时钟域进行数据处理,并存储数据。ip核PLL使用的时钟输入为开发板载时钟,当使用锁相环时,系统时钟只能用在锁相环输入,不建议将系统时钟再做其他模块的驱动模块时钟,其他模块时钟可以使用锁相环输出。

2024-08-29 21:30:43 878

原创 基于ROM的VGA显示

首先需要将目标图片数据转化为基于RGB的颜色数据,这里使用一张像素为100*100的图片作为演示,100*100,使用RGB332编码方式数据宽度为8bit,数据深度10000;使用matlab进行数据提取WIDIH = 8;1 :bb;2 :bb;3 :bb;4 :bb;5 :bb;6 :bb;7 :bb;8 :bb;9 :bb;10 :bb;11 :bb;12 :bb;13 :bb;14 :bb;15 :bb;

2024-08-28 21:46:14 1534

原创 TFT_LCD屏幕显示设计验证

液晶显示(LCD,Liquid Crystal Display)技术是一种常见的显示技术,其工作原理主要涉及液晶材料的光学特性和电场控制。以下是液晶显示的基本原理:液晶材料是一种介于固体和液体之间的物质,它们的分子排列在不同的电场作用下会发生变化。液晶显示器常用的液晶材料有两类:向列型(Nematic)和光束型(Smectic)。液晶显示器通常由两个偏振片(一个在前面,一个在后面)组成。偏振片能够只允许特定方向的光通过,从而控制光线的传播方向。在两个偏振片之间,液晶层是显示器的核心部分。

2024-08-27 17:31:04 1061

原创 HDMI接口驱动设计验证

在hdmi的规格书中规定了4种接口类型,即 Hdmi a type接口, Hdmi b type 接口, Hdmi c type接口, Hdmi d type接口。B type只出现在规格书中,市面上未使用,市面上经常使用acd接口,a接口较多。三种接口都使用19片引脚,三种接口不同于线序,其中体积最小的是 D type接口。对hdmi引脚,有19片引脚总共分为4类, Tmds类:进行音频视频数据传输和一些辅助数据;

2024-08-26 19:15:29 1490

原创 数码管进阶设计验证

驱动部分请参考简易数字钟本章节重在介绍如何使数码管显示正负号于小数点:对于在之前做的数码管驱动模块有很多不足:输入数据为BCD码,并且只能输入BCD码,输入数据如果是二进制数据,数码管显示是错误的。input clk,input [23:0] data_in,//接收数字时钟信号output reg [2:0] sel,//位选信号output reg [7:0] seg//段选信号。

2024-08-24 22:04:31 1331

原创 简易电压表设计验证

模数转换器即AD转换器,或简称ADC(Analog to DigitalConver),通常是指一个将模拟信号转变为数字信号的电子元件或电路。将经过与标准量比较处理后的模拟量转换为以二进制数值表示的离散信号。模拟信号向数字信号的转换过程一般分为四个步骤:采样、保持、量化、编码。通常量化,编码在ADC芯片中进行,常用ADC芯片有积分型、逐次逼近型、闪烁型、流水线型本实验的数据采集需要借助于AD转换模块,该模块使用芯片AD9280,是一款并行8位宽,采样率32M,电压范围+5V,到-5V。

2024-08-19 20:25:04 1145

原创 红外遥控设计验证

红外遥控编码协议NEC协议:采用的是PPM(Pulse Position Modulation,脉冲位置调制)进行编码。当我们按下遥控器的一个按键时,会发送一帧的数据。这一帧数据由引导码、地址码、地址反码、数据码、数据反码以及一位结束位(可忽略)组成。RC-5协议:它通过脉冲宽度调制技术,使用曼彻斯特编码的方式传输数据,确保了数据传输的准确性和可靠性。RC-5协议的数据包包括起始位、地址位和命令位,能够识别不同的设备并发出具体的操作指令。

2024-08-18 22:51:44 1099

原创 频率检测计

误差不大于10ns,1/(10ns/10^9)=100Mhz,需要完成目标精度需要标准时钟为100Mhz。常用频率测量法:频率测量法、周期测量法、等精度测量法。频率测量法:在时间T内对被测时钟信号的时钟周期N进行计数,然后求出单位时间内的时钟周期数,即为被测时钟信号的时钟频率。(在T时间内记N个周期,F= N/T,不能保证周期的整数倍,因而产生一个周期的误差,当T较小时,误差对测量精度影响较大,因此在低频信号测量下误差较大,常用于高频信号测量)

2024-08-17 21:01:19 1560

原创 UART通信实现与验证(RS485)

RS-485是双向、半双工通信协议,信号采用差分传输方式,允许多个驱动器和接收器挂接在总线上,其中每个驱动器都能够脱离总线。适合远距离传输(最远1200米,最快10MB/s),RS232适合一主机一从机,RS485允许多主机和多从机的连接,抗干扰能力强。RS485工作时,通过差分信号线检测传输到来的电平信号,通常检测该电平信号有专用的RS485收发器芯片,该类芯片可以检测到低至200MV的电平信号,不同于RS232收发器芯片的是该芯片需要有一使能信号进行数据传入/传出使能。

2024-08-16 22:19:35 2336

原创 UART通信实现与验证(RS232)

常用的三种低速数据总线:UART,SPI,IIC,UART 通用异步收发传输器,全双工通信,UART是一种通用的数据通信协议,也是异步串行通信口(串口)的总称,它在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。包括RS232、 RS499、 RS423、 RS422和RS485等接口标准规范和总线标准规范。SPI 串行外围接口,是一种用于串行数据传输的协议,用于微控制器和外围设备之间的通信。

2024-08-15 23:15:40 2243

原创 VGA显示字符

VGA驱动原理请参考:VGA接口驱动设计验证本章讲解如何显示字符: 首先需要一取字模的工具,这里使用PCtoLCD2002(资料私信1发送)输入需要取模的字符,设置字符大小:这里设置单个字母的空间,为字符画区域这里设置单个字母大小,设置字符的高矮胖瘦以上需要自行设置,在下方对话框中输入需要显示的字符,先另存为.BMP文件,再次使用该软件打开保存的.BMP文件。点击选项,进行如下图配置点击确定,点击生成字模,保存字模,以下为字模提取结构。

2024-08-14 21:54:18 1087

原创 可乐机的设计验证

使用 `parameter` 定义了三个状态:`wit`(等待状态),`one`(状态一),`two`(状态二)。设置状态寄存器:`stater` 是一个 3 位宽的寄存器,用于存储当前状态。在时钟上升沿或复位信号的下降沿触发时,状态机根据当前状态和 `po_money` 的值决定状态转移。`wit` 状态下,若收到投币信号,则转到 `one` 状态,否则保持在 `wit`。`one` 状态下,若再次收到投币信号,则转到 `two` 状态,否则保持在 `one`。

2024-08-13 11:29:38 740

原创 呼吸灯设计验证

使用三个计数器(cnt_1uscnt_1ms和cnt_1s)来生成一个较慢的时钟信号。这些计数器分别用于微秒、毫秒和秒级别的时间计算。cnt_1us计数器用于生成1微秒的时间脉冲,cnt_1ms计数器用于生成1毫秒的时间脉冲,cnt_1s计数器用于生成1秒的时间脉冲。cnt_1s计数器在cnt_1ms达到最大值时更新,达到最大值时重置为0。cnt_1ms计数器在cnt_1us达到最大值时更新,达到最大值时重置为0。cnt_1us计数器在每个时钟周期上升沿更新,达到最大值时重置为0。呼吸灯控制:在。

2024-08-12 22:16:42 800

原创 可编程逻辑设计原则

面积指FPGA逻辑器件的逻辑资源。在逻辑器件资源有限,设计规模庞大的情况下,必须采用牺牲速度以减少资源消耗,节约面积。例如,减少实例化模块数量,分时复用模块。以上是用一个查找表ROM模块在7个周期内实现4组十六进制数转换为十进制数的程序,下面是在4个周期内实现4组十六进制数转换为十进制数的程序。

2024-08-09 22:00:08 1015

原创 移位寄存器

这里可以使用Shift_register的ip核来实现功能In[7:0]是从rom中读出的数据,用一个计数器作为rom的地址,每次地址加1,将移位寄存器比作“fifo”在计数器记到16时,in[7:0]当前数据为地址16的数据此时在Shiftout0[7:0]输出该数据,在Shiftout1[7:0]输出地址为8的数据,Shiftout2[7:0]输出地址为0的数据。在后续计数会依次输出1、9、17地址上的数据,直到扫描完整个rom。

2024-08-07 17:03:37 2430

原创 串行并行数据转换

并转串的设计思想:首先准备好一组寄存器,把需要发送的数据(并行数据)放到这个寄存器组里面,然后通过位拼接的移位方式把这个并行数据一位一位地发送给接收端,同时拉高标志信号en,当全部数据发送完之后,再把标志信号en拉低。串转并的设计思想:准备好一组寄存器,接收串行数据,将数据按位移入寄存器组,然后将整个寄存器组的数据组合成一个完整的并行数据字。使用一组寄存器暂时存储数据,然后逐位将数据移出至串行输出端,同时使用标志信号指示何时数据转换完成。

2024-08-06 21:36:34 2041

原创 二进制数转BCD码

在本设计中,使用逐步移位法来实现二进制数向BCD码的转换,在设计之前,先来了解一下二进制数向BCD码转换的原理——逐步移位法。1.变量定义• B:需要转换的二进制数位宽。• D:转换后的BCD 码位宽。其中BCD码的位宽计算如下:根据二进制数的位宽。求出它的无符号数能表示的最大值和最小值,如数据位宽是8位,则数据范围大小就是0~255,我们取最大值255,每一个数字对应4位BCD码,三个数字就对应3×4=12位的BCD码。• N:需要转换的二进制数位宽加上转换后的BCD码位宽。

2024-08-04 15:11:11 2123

原创 VGA接口驱动设计验证

首先我们看一下 VGA 接口的电路原理图VGA_VS是场脉冲信号,VGA_HS是行脉冲信号,VGA_R/G/B对应颜色数据。FPGA芯片直接与 VGA 接口相连,并没有特殊的外部芯片,也就是说,唯一要关注的可能就是它的显示原理和时序了。那么接下来我们具体来看一下 VGA 的扫描原理是什么。

2024-08-03 20:51:36 1232

原创 调用IP实现数据加速

双端口RAM:拥有两个独立的读写端口,可同时进行读写操作。提供了更高的数据吞吐量和更低的访问延迟,适用于需要并行处理的应用场景。异步FIFO:通过内部的读写指针和状态标志位,实现了数据的无缝缓冲和处理,有效解决了数据传输中的速率不匹配问题。是一种先进先出(FIFO)的数据缓存器,能够跨时钟域进行数据传输。RAM(Random Access Memory,随机访问存储器):RAM是一种易失性存储器,即断电后存储的数据会丢失。它支持随机读写,这意味着可以跳过前面的内存地址,直接对任何地址上的数据进行访问。

2024-08-02 19:42:39 1234

原创 IP核FIFO调用及验证(2)

异步FIFO(先进先出)的读写逻辑是为了在两个不同时钟域之间可靠地传输数据。由于写操作和读操作使用不同的时钟信号,因此需要特别的逻辑来处理这些异步时钟之间的数据传输。下面是异步FIFO的读写逻辑的基本工作原理:写操作:当写使能信号有效(通常是高电平)时,写指针会在写时钟信号的上升沿或下降沿更新。数据会被写入FIFO存储区中由写指针指定的位置。写指针在写入数据后会递增,循环回到FIFO的起始位置(即实现循环缓冲)。读操作:当读使能信号有效时,读指针会在读时钟信号的上升沿或下降沿更新。

2024-08-01 20:51:29 1027

原创 IP核RAM调用及验证(2)

在IP核RAM调用及验证(1)中初步使用ip核RAM进行数据写入与输出,用到单端口RAM进行实验。既然提到单端口,则有双端口与之对应,单端口RAM和双端口RAM都是用于存储数据的内存类型,但它们在设计和功能上有一些不同。下面总结二者异同之点:单端口RAM: 单端口RAM只有一个读写端口,通常是一个读端口和一个写端口的组合。在同一时刻,它只能进行读取或写入操作,而不能同时进行两者。也就是说,在任何给定时刻,你只能读取数据或者写入数据,但不能同时进行。设计相对简单,成本较低。

2024-08-01 00:07:56 1312

原创 IP核FIFO调用及验证(1)

fifo有同步和异步之分,同步fifo表示写入的控制时钟和读取的控制时钟为相同的时钟信号;异步fifo表示写入的控制时钟和读取的控制时钟为不同的时钟信号;同步fifo就可以将其作为一个在相同时钟域下缓存器;异步fifo可以用来进行跨时钟域数据信号处理。本章节只进行同步FIFO验证同步fifo验证:可以控制将256个数据写入到fifo中,当写满时再控制从fifo中将数据读取出来。

2024-07-29 19:44:57 818

原创 IP核RAM调用及验证(1)

在写入时需要根据写地址控制数据写入到该地址上,地址和数据需要保持同拍,在同一个时钟周期下,同时也需要写使能信号wren进行控制写入。在读取时需要根据读地址读取当前地址上的数据,在对读使能信号rden没有进行设置时,默认读使能信号一直有效。单端口ram只有一个地址变量,那么地址变量就包含两层含义:写地址含义,读地址含义;在写使能和读使能同时有效时,地址变量既是写地址,同时也表示读地址。将Ip核rom中的数据写入到单端口ram中,并全部读取出来,在写入时不进行数据的读取。

2024-07-28 16:37:28 1126

原创 DDS载波发生器

假设已经将正弦波数据(256个)存储到rom中,假设利用驱动时钟控制rom地址一个时钟周期变换一次,那么产生的正弦波频率为:1/256*20(ns) =195.3125khz。如果不能改变驱动时钟频率,如果将产生的正弦波频率增大,控地址在每一次变化加2,只能怪读取128个数据,产生的正弦波频率为:390.625khz,在不改变驱动时钟频率,同时也不能丢失正弦波数据,控制地址两个驱动时钟周期变化一次,那么产生的正弦波频率为:(1/256*20(ns))/ 2 = 97.656khz;

2024-07-27 21:05:57 1146

原创 IP核ROM调用及验证

只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。ROM所存数据通常是装入整机前写入的,整机工作过程中只能读出,不像随机存储器能快速方便地改写存储内容。ROM所存数据稳定 ,断电后所存数据也不会改变,并且结构较简单,使用方便,因而常用于存储各种固定程序和数据。ROM是"Read-Only Memory"的缩写,意为只读存储器。

2024-07-26 23:07:24 937

原创 IP核锁相环调用及验证

调用ip核,在工具栏找到tools 点击其目录下megawizard plug-ln manager (创建ip核向导)勾选create a new custom ...点击next ,跳出一个新页面上图左边installed plug ins目录下是该版本软件支持的ip核目录,本项目选择在IO目录下的ALTPLL,后选择使用的语言,这里勾选verilog HDL ,路径放在prj文件夹下,(也可以在prj中新建ip文件夹),命名IP名字,这里用my_pll.

2024-07-25 22:32:32 1079

原创 可调数字时钟

利用三个独立按键实现调时功能,第一个独立按键实现控制调节模式选择功能,其对应的调节模式包含:调节小时十位,调节小时个位,调节分钟十位,调节分钟个位,调节秒十位,调节秒个位;利用另外两个按键实现加减功能。利用有限状态机进行设计描述,根据调节模式的设置,将对时功能实现设置为7个状态,分别为:1: 正常显示状态,对加减按键进行操作时产生的标志信号无效。

2024-07-24 23:35:44 1148

原创 简易数字钟

数码管驱动电路讲解需要6个八段数码,下面介绍一位数码管怎么驱动:1.静态驱动方式led静态显示时,其公共端接地(共阴极)或接电源(共阳极),各段选线分别与I/O口接线相连。要显示字符,直接在I/O线发送相应的字段码。优点: 静态显示结构简单,显示方便,要显示某个字符直接在IO线上发送相应的字段码缺点: 一根数码管需要8根IO线,数码管比较多时候,非常占用IO线。2.动态驱动方式动态驱动方式是将所有的数码管的段选线并接在一起,用一个IO接口。

2024-07-23 20:50:23 830

原创 独立按键控制LED灯

独立按键控制LED灯项目旨在通过简单的电路设计和基础编程,实现按键对LED灯的开关控制。这个项目帮助你理解LED灯的工作原理和基本电路连接,同时提高你对电子元件的认识和实践技能。通过搭建电路并进行调试,你将掌握如何独立控制LED灯,从而为进一步学习电子技术打下坚实基础。 通过开发板外设独立按键和led,利用独立按键控制led依次循环点亮,Led的变化方式为:1234321,对独立按键操作有一次Led灯点亮往左或者往右移动。 本项目结合前两期工程进行设计,Led的变化方式为:123

2024-07-22 16:12:05 1444

原创 独立按键消抖

将对按键进行一次操作划分为四个状态,分别为:空闲状态,下抖动状态,稳定状态,上抖动状态。空闲到下抖动状态的条件为:检测到按键的电压值变化为0。下抖动状态到稳定状态的条件为:延时计数器cnt计数到最大值:假设我们对按键进行检测的时钟频率为1khz,那么最大值为:9;稳定状态到上抖动状态的条件为:检测到按键的电压值变化为1。上抖动状态到空闲状态的条件为:延时计数器cnt计数到最大值。状态执行动作空闲表示对按键没有操作下抖动表示刚开始对按键进行操作稳定标志信号flag只拉高一个驱动时钟周期。

2024-07-20 15:54:38 981

原创 简易流水灯

假设LED灯高电平点亮,利用有限状态机理论,设计验证将开发板上集成的led外设依次点亮,从左到右依次点亮(12341234)。将每点亮一个Led灯作为一个状态,那么依次点亮一次可以划分为4个状态,每一个状态执行的动作(输出)点亮对应的led灯,每一个状态持续的时间为:设置为1秒钟。状态之间跳转的条件为:延迟计数器计时到1秒钟。什么是状态机?状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作,完成特定操作的控制中心。

2024-07-19 22:00:27 1017

原创 计数器分频设计

计数器是数字系统中常用的基本逻辑器件,用于统计输入时钟脉冲的个数,并可以实现分频、定时、产生节拍脉冲和脉冲序列等功能。计数器的设计原理涉及多个方面,包括计数器的类型、结构和工作原理。‌本文介绍基于FPGA设计的简易计数器。

2024-07-18 17:18:44 1854

空空如也

空空如也

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

TA关注的人

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