- 博客(45)
- 收藏
- 关注
原创 基于FPGA的SD卡的数据读写实现(SD NAND FLASH)
SD卡的英文全称是Secure Digital Card,即安全数字卡(又叫安全数码卡),是在MMC 卡(Multimedia Card,多媒体卡)的基础上发展而来,主要增加了两个特色:更高的安全性和更快的读写速度。②容量标准和速度等级。
2024-08-26 15:17:03 946
原创 FPGA - 图像灰度化
在FPGA中,如果涉及到浮点数运算,除法运算,乘法运算,我们都可以将其进行变换,使用移位的方法实现。FPGA - 数 - 加减乘除-博客。
2024-06-27 11:36:52 1289
原创 FPGA - DFT(离散傅里叶变换)—FFT(快速傅里叶变化)
以上从原理介绍了DFT(离散傅里叶变换原理),然后再介绍了FFT(快速傅里叶变换)以及IP核的使用,和IP核使用参数以及配置。参考文献:[1]朱永前,李霄.在FPGA上实现FFT的高效串行流水线结构[J].火控雷达技术,2023,52(02):61-65.DOI:10.19472/j.cnki.1008-8652.2023.02.010.[2]侯晓晨,孟骁,陈昊.基于FPGA的混合基FFT算法设计与实现[J].太赫兹科学与电子信息学报,2021,19(02):303-307.
2024-06-25 11:15:35 2734
原创 FPGA - 滤波器 - IIR滤波器设计
在FPGA - 滤波器 - FIR滤波器设计中可知,数字滤波器是一个时域离散系统。任何一个时域离散系统都可以用一个N阶差分方程来表示,即: 式中,x(n)和y(n)分别是系统的输入序列和输出序列;aj和bi均为常数;y(n-j)和x(n-i)项只有一次幂,没有相互交叉相乘项,故称为线性常系数差分方程。差分方程的阶数是由方程y(n-j)项中j的最大值与 最小值之差确定的。式中,y(n-j)项j的最大值取N,最小值取 0,因此称为N阶差分方程。 当aj=0且j>0时,N阶差分方程表示的系统为FIR
2024-06-17 18:38:36 2465
原创 FPGA - Verilog题目: 非整数倍数据位宽转换24to128
实现数据位宽转换电路,实现24bit数据输入转换为128bit数据输出。其中,先到的数据应置于输出的高bit位。电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性,valid_out用来指示数据输出data_out的有效性;clk是时钟信号;rst_n是异步复位信号。接口示意图接口时序示意图。
2024-06-15 13:54:21 780
原创 FPGA - 全局时钟资源
是指FPGA内部为实现各 CLB、IOB,以及BSRAM(Block Select RAM,选择性BRAM)等基本逻辑单元的,采用全铜层工艺设计和实现的专用缓冲与驱动结构。由于全局时钟资源的布线采用了,比一般布线资源具有更高的性能,因此主要用于。也正因为全局时钟资源的特定结构和优异性能,FPGA内的全局。全局时钟资源是一种,且这种在FPGA内的,因此,全局时钟资源在FPGA设计中使用得十分普遍。全局时钟资源有多种使用形式,用户可以通过语言模板查看全局时钟资源的各种原语。
2024-06-12 15:15:50 722
原创 FPGA - 数 - 加减乘除
首先,将二进制做如下解释:2的0次方=12的1次方=22的2次方=42的3次方=8.....以此类推,那么任何整数,或者说任意一个自然数均可以采用这种方式来表示。例如,序列10101001,根据上述表示方法,可以很容易推算出序列所表示的数值* 1 +* 0 +* 1+* 0 +* 1 +* 0 +* 0 +* 1 =通过这个方法,整个自然数都可用0和1这两个数字来代替。。这就是整个现代计算机技术的根本秘密所在。
2024-06-11 16:37:18 1190
原创 FPGA - 4位数值比较器电路
请用Verilog语言采用门级描述方式,实现此4位数值比较器。门级描述,无非就是将,==三个符号用。行为级描述就是从最高位依次比较。某4位数值比较器的功能表如下。^异或,相同为0,不同为1。
2024-06-04 21:12:57 922
原创 FPGA - Aurora8B/10B协议理解与IP核使用
Aurora 协议是一个用于在点对点串行链路间移动数据的可扩展轻量级链路层协议(由Xilinx开发提供)。这为物理层提供透明接口,让专有协议或业界标准协议上层能方便地使用高速收发器。Aurora协议在Xilinx的FPGA上有两种实现方式:8B/10B 与 64B/10B。两个协议大部分相同,主要区别在编码方式上: Aurora 8B/10B 常用于芯片(FPGA)与芯片(FPGA)之间通信。它用于使用一个或多个收发器在设备之间传输数据。连接可以是全双工(双向数据)或单工。最多可实现16个收发
2024-05-19 16:11:33 3557 5
原创 FPGA - GTX收发器-K码 以及 IBERT IP核使用
IBERT(集成误码率测试仪)是xilinx为7系列FPGAGTX收发器设计的,用于评估和监控GTX收发器。IBERT包括在FPGA逻辑中实现的模式生成器和检查器,以及对端口的访问和GTX收发器的动态重新配置端口属性,还包括通信逻辑,以允许设计在运行时通过JTAG进行访问。IBERT工具用于对XilinxFPGA芯片的高速串行收发器进行板级硬件测试。通过IBERT可以获取误码率,观察眼图,调节串行收发器的参数,从而有助于判断可能存在的问题,便于验证硬件的稳定性和信号完整性。创建完成后打开官方例程。
2024-05-15 16:12:45 2665
原创 FPGA - Xilinx系列高速收发器---GTX
(9)IP核生成完成打开官方Example DesignGT高速收发器的IP Example已经具有相当完备的功能,但是GT IP 核端口信号非常多,乱七八糟的信号也多,可以使用官方的文件封装 一个非常简洁明了、看着非常舒服的用户端信号出来如下图:修改gtwizard_0_exdes.v文件,加入用户端接受和发送相关信号就实现上述框架!
2024-05-14 21:36:17 5276
原创 FPGA SDRAM读写控制器
在一个写入的管线中,写入命令在另一个指令执行完之后可以立刻执行,而不需要等到数据写入存储队列的时间。由于SDR SDRAM为DRAM,内部的存储都是靠电容进行保存数据,电容的保持数据的时间为64ms,SDR SDRAM每次只能够刷新一行,为了不丢失任何数据,所以要保证64ms内,将所有的行都要刷新一遍。SDRAM是多Bank结构,例如在一个具有两个Bank的SDRAM模组中,其中一个Bank在进行预充电期间,另一个Bank却马上可以被读取,这样当进行一次读取后,又马上读取已经预充电Bank的数据时,就。
2024-05-12 21:01:53 1445 1
原创 FPGA - ZYNQ Cache一致性问题
在xil_cache.h头文件中,有关于Cache的处理函数,如下图:关于Cache的详细底层处理过程,可以查看这些函数。
2024-04-21 22:10:54 1583
原创 FPGA - 基于自定义AXI FULL总线的PS和PL交互
在这里,实现了基于Axi_full的PS和PL交互,详细介绍了AXI_GP、AXI_HP和AXI_ACP接口。t=N7T8t=N7T8FPGA - ZYNQ 基于EMIO的PS和PL交互https://blog.csdn.net/weixin_46897065/article/details/137865852?
2024-04-20 21:24:24 1551
原创 FPGA - ZYNQ 基于EMIO的PS和PL交互
在sdk开发中,sdk软件中提供了一些例程,在学习和开发的过程中可以查看学习这些例程更好的帮助我们学习和开发。
2024-04-17 15:49:26 3357 2
原创 FPGA - 以太网UDP通信(三)
至此,我们完成了IP层的发送与接受。同时,也已经了解了IP协议首部的具体内容,IP数据包就是紧跟在IP协议首部后面的。然后, IP的数据部分也还并不是单纯的用户数据, 我们在网络应用时 ,还需要将我们的用户数据 进一步打包到比IP协议更上一 层 的协议中, 再通过 IP 协议发送。接下来,在下一篇博客中将会实现udp层的接收与发送。
2024-04-12 09:58:38 1399
原创 FPGA - 以太网UDP通信(二)
至此,我们完成了以太网发送过程中最底层 ,也是最重要的部分MAC层的发送与接受。关于本节中的CRC校验部分没有过多介绍,这部分可通过CRC生成网页来生成CRC校验代码。接下来,在下一篇博客中将会实现ip层的接收与发送。
2024-04-11 20:47:57 1860
原创 FPGA - 以太网UDP通信(一)
以太网是现实世界中最普遍的一种计算机网络。以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。经典以太网是以太网的原始形式,运行速度从3~10 Mbps不等;而交换式以太网正是广泛应用的以太网,可运行在100、1000和10000Mbps那样的高速率,分别以快速以太网、千兆以太网和万兆以太网的形式呈现。从数据传输角度来看,控制器(FPGA )和PHY 侧芯片实现以太网传输的数据链路两端,有 3 种主要的接口形式。这 3 种接口形式主要是MII GMII和。
2024-04-10 15:37:00 5643 1
原创 FPGA - SPI总线介绍以及通用接口模块设计
SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。和的(1)MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。(2)MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。
2024-03-17 21:53:28 2638
原创 FPGA - 单总线协议(one-wire)
单总线(one-wire)是美国 DALLAS 公司推出的外围串行扩展总线技术,与 SPI、I2C 等串行数据通信方式不同,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的。它具有节省 I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。单总线英文名 1-Wire,传输速率一般是 15.3Kbit/s,最大可达 142Kbit/s,通常采用 100Kbit/s 以下的速率传输数据。
2024-03-13 15:32:06 4098
原创 FPGA - 时钟Buffer的探究
3、一些外设提供给FPGA的时钟,比如摄像头提供给FPGA的像素时钟pix_clk,在设计时候,很大可能走的不是专用时钟管脚。:专用时钟的资源,目的是减少时钟抖动、增强时钟的驱动能力,vivado不会给信号自动分配BUFG。:CE为时钟使能信号,相当于在BUFG上面添加了使能在CE有效的时候,才输出时钟。:CE为时钟使能信号,相当于在BUFH上面添加了使能在CE有效的时候,才输出时钟。2、一般外部晶振的时钟走专用时钟管脚,进入FPGA, FPGA内部将这个时钟送入。,可以分频得到更多不同频率的时钟。
2024-03-10 15:50:47 1205
原创 FPGA DDR3简介及时序
1、DDR3全称第三代双倍速率同步动态随机存储器。特点:①掉电无法保存数据,需要周期性的刷新。②时钟上升沿和下降沿都会传输数据。③突发传输,突发长度Burst Length一般为82、DDR3的存储: bank、行地址和列地址数据怎么存入到DDR3:先指定一个Bank地址,再指定行地址,最后指定列地址。DDR3容量计算: bank数量×行数量×列数量×存储单元容量。比如bank address位宽为3, Row address位宽为14, Column address为10,
2024-03-06 21:27:07 2342
原创 FPGA-AXI4接口协议概述
是一种高性能的随机存储器,它能够在时钟的上升沿和下降沿各进行一次数据传输,从而实现双倍速率。发展至今DDR已经一直迭代到了DDR5,不同版本的DDR有着各自独特的应用领域。组织,传输Burst这个操作称为AXI Transaction,每个Burst可被拆分为多次传输,每个拆分的数据称为。最初版本是AXI3,用于PS内部互联(使用的是AXI3),在2010年AXI3的基础上升级为AXI4。(PS端开发流程)系列PS端使用的是ARM公司的硬核CPU,内部使用的是ARM公司的。下图是ZYNQ-7000系列中。
2024-03-04 14:57:29 1118
原创 FPGA-串口接收图像写入RAM并读出在TFT显示屏上显示
1,UART_RX(串口接收模块);2,串口接受的数据存放到RAM模块;3,RAM IP核;4,时钟IP核 (TFT显示屏驱动时钟的产生);5,TFT显示驱动模块;
2024-03-03 15:16:19 2233
原创 FPGA- RGB_TFT显示屏原理及驱动逻辑
所以大部分电容触摸模组都集成好了该电容控制器,对外提供标准的12C总线接口,使用时,只需要主机通过12C总线读取该触摸控制器芯片中存储的实时坐标即可,不需要做其他的操作,去读它这里面寄存器的值就可以了。设计两个尺寸的主要目的是适配不同的开发板使用,以获得较好的物理结构兼容性。,通用显示屏模组采用的是4.3寸或者5寸的显示屏模组,这两种模组功能相同,接口相同,时序参数也都相同,且在FPC排线的物理位置上的区别,他们也通过不同的PCB板实现了兼容,所以最终使用的时候的程序和驱动完全通用。
2024-03-02 12:29:37 1618
原创 FPGA-VGA成像原理与时序
即视频图形阵列,具有分辨率高、显示速率快、颜色丰富等优点。VGA接口不但是CRT显示设备的标准接口,同样也是LCD液晶显示设备的标准接口,具有广泛的应用范围。在FGPA中,常广泛用于图像处理等领域。
2024-03-01 15:20:23 2642 1
原创 FPGA-DDS原理及实现
是由N位加法器与N位寄存器构成,每个时钟周期的上升沿,加法器就将频率控制字与累加寄存器输出的相位数据相加,相加的结果又反馈至累加器的数据输入端,以使加法器在下一个时钟脉冲作用下继续与频率控制字相加。这样,相位累加器在时钟的作用下,不断对频率控制字进行线性相位累加。相位累加器的溢出频率,就是相位累加器的输出数据,作为波形存储器的相位采样地址,这样就可以把存储在波形存储器里的波形采样值经查表找出,完成相位到幅度的转换。是一种新型的频率合成技术,具有相对带宽大,频率转换时间短、分辨率高和相位连续性好等优点。
2024-02-29 10:55:42 2113
原创 FPGA-时钟管理单元
是一种反馈控制电路,常常用于利用 外部输入的参考信号控制环路内部振荡信号的频率和相位。锁相环在工作时, 当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的 相位差值,即输出电压与输入电压的相位被锁住,因此得名锁相环。,下面这个例子数据从FIFO输出时钟频率为125MHZ,这个时钟频率可以通过50M晶振产生的频率倍频得到,但是时钟质量却很差。PLL 就是所说的锁相环,它能通过纯模拟电路,产生一定 范围内频率、相位、占空比等可控的时钟。打开vivado 创建工程。
2024-02-28 22:15:29 733 1
原创 FPGA-FIF0模型与应用场景(IP核)
FPGA或者ASIC中使用到的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。这一块是由于仿真器设置导致的,在设置中语言选择的是Verilog和VHDL混合模式,所以会导致这个现象,但不建议直接改为Verilog语言模式,因为在一些IP核的底层是由Verilog和VHDL写好的,如果在这里改过来,虽然这一块波形是好的,但有可能在其他地方出现问题。看手册可以得知 空FIFO下 wr_data_count的值和 写深度与读深度的比例有关。
2024-02-28 17:30:22 1172 1
原创 FPGA-学会使用vivado中的存储器资源RAM(IP核)
它可以随时把数据写入到任何一指定地址的存储单元。也可以随时从任一指定地址读出数据,其读写速度有时钟频率决定,主要用来存放程序以及程序执行过程中产生的数据,运算结果等。信号源(例如ADC)以1us一个的速率产生12位的数据现要求获得连续1ms内的数据,通过串口以115200的波特率发到电脑。数据量相对较大,数据要求能够重复使用,而且要求能够被更改。读出数据时波形(读使能到数据输出2个时钟周期)rom的预先存储 ram的实时写入。数据的使用速度低于数据的产生速度。数据生产和消耗的位宽。
2024-02-27 20:50:24 3134
原创 FPGA-学会使用vivado中的存储器资源ROM(IP核)
从Distributed Memory Generator 生成的ROM/RAM Core占用的资源是LUT (查找表,查找表本质就是一个小的RAM);从Block Memory Generator生成的ROM/RAMCore 占用的资源是 Block Memory (嵌入式的硬件RAM) ,某芯片,有500个寄存器,需要在上电的时候由FPGA向这些寄存器中写入初始值,初始值已经通过相应的文档给出了具体值,这些值都是已知的。两者最主要的差别是生成的IP核所占用的FPGA资源不一样,整个过程只需要工作一次。
2024-02-27 14:57:32 2426
原创 FPGA-IP核
8、芯片接口IP核。包括用于数字视频广播(DVB)的异步串行接口(AS1) 、10/100/1000Mbps以太网接口、DDR和DDR2 SDRAM控制器、存储器物理层访问接口、PCI/PCI Exprsss编译器、Rapidlo和用于数字电视信号传输的串行数字接口 (SDI)等。主要是实现视频和图像处理系统中常用功能的IP核,具体有2D FIR滤波器和2D中值滤波器、a混合器、视频监视器、色度重采样器、图像裁剪器、视频输入和输出模块、测试模板生成器和视频跟踪系统模块。9、设计调试IP核。
2024-02-27 10:45:55 961 2
原创 FPGA 使用线性序列机设计SPI接口的TLV5618型DAC芯片驱动逻辑
不同型号的DAC,输出电压相差很大,对于电压输出型,最大输出电压一般为5~10V,也有高压输出型的,为24~30V。对于电流输出型DAC,输出电流一般为20ma左右,高者有的能达到3A,这类DAC由于本身输出电流,最终需要外部电阻和运放电路,才能实现电压输出。从输入由全0突变为全1时开始,到输出电压稳定FSR±1/2LSB范围(或以FSR±x%FSR指明范围)内为止,这段时间称为建立时间,它是DAC的最大响应时间,所以该值用来衡量转换速度的快慢。对比芯片手册提供的时序图,可以看到与芯片手册的时序图一致。
2024-02-27 09:58:11 1397
原创 FPGA-基于SPI接口的ADC芯片功能和接口时序介绍
像我们生活中常见的温度、湿度、电压、电流这些能够用连续变化的物理量所表达的信息,都属于模拟信号;而数字信号,则是在模拟信号的基础上,经过采样、量化和编码而形成的,也就是由许多个0和1组成的信号。围: ADC作为模拟转数字的器件,其能够进行转换的模拟信号的范围总是有限的,而且一般不高。比如ADC0809,其能够进行转换的模拟电压范围就是0~5V,超出这个范围的模拟电压, ADC0809就不能将其转换为准确的数字信号。例如, 8位分辨率,就是可以将模拟信号量化为一个8位的数据,数值范围就是0~255。
2024-02-26 20:17:04 2609 1
原创 FPGA_数码管显示(74HC595芯片)
根据上一篇博客描述,数码管驱动在实际应用此输出占用的管脚过多,所以为了节省FPGA的管脚,需要将输出信号并转串后(FPGA只需要输出3个管脚),再利用。的SEL输出和SEG输出两个8位共16位的值通过DIO,RCLK,SCLK传到2片级联的74HC595。74HC595芯片是一个8位串行移位寄存器,下图是一个4位的串行移位寄存器。只需要将前一芯片的输出QH-连接到下一芯片的D1就实现了16位移位寄存器。连接数码管去显示需要输出的字符。与上面所写的74HC595芯片驱动连接起来;那么我们的任务就是:如何将。
2024-01-22 15:44:26 1188 1
原创 FPGA_数码管显示
一位数码管:数码管等效电路(共阴极 和 共阳极)数码管显示的值:假设我们需要b,c亮,我们只需要给b,c接高电平,其他接低电平就可。对于数码管显示的值,seg值如下图:多位数码管----->如下图(以3位为例)假设现在需要LED1亮,那么就让sel0为1,数码管0的LED0-LED7阳极都是高电平,然后再控制a为低电平,那么就实现了数码管0的LED0点亮。如果是8个数码管呢8个sel信号。
2024-01-19 21:44:10 2240 2
原创 FPGA-按键消抖(状态机实现)
普通按键的硬件示意图如下图所示。上图是两脚贴片按键,原理图如下图所示。由原理图可以看出,按键未按下时IO口为高电平,按键按下时则变为低电平, 因此系统即可通过检测IO的电平来判断按键的状态。按键结构示意图中可以看到按键存在一个反作用弹簧,因此当按下或者松开时均会产生 额外的物理抖动,物理抖动便会产生电平的抖动。在按键从按下再到松开的过程中,其电平 变化如下图所示,上为理想波形输出,下为实际波形输出。上图中,产生的抖动次数以及间隔时间均是不可预期的,这就需要可能对外部其他设备造成的影响。
2024-01-18 16:27:42 1242 1
原创 亚稳态原理以及应对方法详解
看下面这个电路D0在数据窗口期发生变化,导致输出出现亚稳态,导致输出经过dff1和dff2后还没有稳定下来,导致dff1和dff2都进入了亚稳态。导致在一段时间内dff1和dff2的输出不一致。看下面这个例子假设 Q1 Q2分别是FIFO的2个写使能信号,那么Q1作为写使能就会从D1开始写,而Q2作为写使能就会从D2开始写,从而丢失了D1数据。
2024-01-17 20:27:46 723
32Meg x 8, 16Meg x16 256Mb SYNCHRONOUS DRAM手册
2024-05-12
18B20可编程分辨率单总线温度传感器手册
2024-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人