- 博客(21)
- 资源 (3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 伽马校正
关于伽马校正问题是我本科毕业设计留下来的一个扩展问题。我的毕业设计是基于FPGA的全彩屏显示控制器设计,老师在实验室给我拿了一个LED全彩屏,是一个32x16的显示屏,当然这个尺寸的屏幕就别想显示什么图片了。当我完成整个设计并向指导老师汇报了完成情况时,老师说看看能不能加上伽马校正,后来我就找了一些文章看,知道校正方法但是对其中的原理还是一知半解。最近在看FPGA的图像处理方面的东西又遇到了,找了一些文章和书籍又了解了一下。本文将对图像的采样量化编码入手,说明在图像采集设备(相机)的Encoding Gam
2020-12-18 22:04:13
2401
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 基于FPGA的LED全彩图形显示控制器设计
以下是基于FPGA的LED全彩图形显示控制器设计的1核心内容,因为静态驱动相较于动态扫描驱动方式所用的驱动芯片会大大增加,LED屏的成本也会随之升高,动态扫描要提高亮度增加扫描频率就可以很好达到,所以这种全静态驱动的LED已经很少见到。本文是围绕静态驱动进行展开。由于刚接触设计,文中必然会有错误或者不足有待改进之处诚请读者指出。CSDN不经常上,如果你也是刚接触LED屏驱动设计...
2020-01-13 19:59:53
5308
1
原创 quartus中如何添加器件库
关键字:1:quartus如何安装器件库;:2:安装器件库时出现:The Quartus Prime software cannot launch the Device Installer for some Windows operatingsystems. You can launch the Device Installerdirectly from the Windows Start Menu.正文: 通常在我们安装quartus时如果安装文件夹中有器件库文件那么软件就自动检...
2021-04-10 16:29:15
29858
11
原创 ZYNQ之AXI简介
处理器系统与可编程逻辑的接口如前所述,Zynq 的表现不仅仅依赖于它的两个组成部分 PS 和 PL 的特性,还在于能把两者协同起来形成完整、集成的系统的能力。这其中起关键作用的,是一组高度定制的 AXI 互联和接口用来在两个部分之间形成桥梁。另外,在 PS 和 PL 之间还有一些其他类型的连接,特别是 EMIO。本节讨论 PS 和 PL 之间的连接,并探讨如何使用这些连接。我们从介绍 AXI 标准开始,这是大多数连接的基础。AXI 标准AXI 表示的是高级可扩展接口(Advanced eX...
2021-01-29 21:55:52
2673
原创 ZYNQ中的接口
Zynq PS 实现了众多接口,既有 PS 和 PL 之间的,也有 PS 和外部部件之间的。。PS 和外部接口之间的通信主要是通过复用的输入 / 输出(Multiplexed Input/Output,MIO)实现的,它提供了可以做灵活配置的 54 个引脚,这表明外部设备和引脚之间的映射是可以按需定义的。这样的连接也可以通过扩展 MIO (Extended MIO,EMIO)来实现,EMIO 并不是 PS 和外部连接之间的直接通路,而是通过共用了PL 的 I/O 资源来实现的 [30]。这些都出现在图 2.
2021-01-20 17:39:39
1766
1
原创 初识ZYNQ结构
本文介绍了zynq的结构,简述了PS中的APU。处理器系统所有的 Zynq 芯片都有相同的基本架构。作为处理器系统的基础,所有的芯片都包含了一颗双核 ARM Cortex-A9 处理器。这是一颗 “ 硬 ” 处理器 —— 它是芯片上专用而且优化过的硅片元件。作为比较,我们来看一下硬件处理器以外的另一种方案,就像 Xilinx 的MicroBlaze这样的“软”处理器,这是由可编程逻辑部分的单元组合而成的[27]。也就是说,一个软处理器的实现和部署在 FPGA 的逻辑结构里的任何其他 IP 包是等
2021-01-03 19:24:36
5861
原创 预加重
预加重技术,Serdes预加重,本文涉及以下几个问题:1,:什么是预加重?2:用在什么地方?3:为什么要预加重?4:怎样预加重5:最后1:什么是预加重:预加重技术是在数据向信道传输前对数据传输电压上的一种预处理,有加重和去加重两种;2:用在什么地方:预加重常用在Serdes传输上。而Serdes传输技术又用在很重要的Pcie,Srio,Rapid I/O,以太网上。3:为什么要预加重:传输的信号在经过无源信道时会受到一些列的干扰,如高斯白噪声。趋肤效应,介质.
2020-11-17 22:39:02
9666
原创 信号与系统
关于信号的一些思考和问题 一,函数与系统函数 1:函数 函数在未经过任何系统,且产生信号的信号源无记忆性,也就是说 t 时刻产生的信号对(t+△t)△t→0 产生的信号没有影响,满足以上条件下的信号在时域里(连续时域或者离散时域)一个时刻对应一个信号的数值(强度)前后没有联系(这样的信号源条件可能过于苛刻,但为了说明函数与系统的区别) 2:系统函数 满足上面条件的信号定义为 e(t),通过一个系统 h(t),输出即所产生的响应为 r(t)。在理解 r(t)时对于在某一点t0 ...
2020-10-24 19:59:18
2896
2
原创 Vivado中出现Unconstrained Logical Port:的error
[DRC UCIO-1] Unconstrained Logical Port: 5out of 131 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or i.
2020-10-20 21:03:04
5626
1
原创 FPGA之IIC(I2C)通信EEPROM控制器设计
关于IIC通信用一个具体实例来进行说明几个重要的信号空闲状态:SDA,SCL均处于高电平状态。起始信号:SCL为高电平时SDA由高到低跳变停止信号:SCL为高电平时SDA由低到高跳变数据有效性:在SCL为高期间,SDA信号必须保持稳定不能发生变化,只有在SCL为低电平时SDA信号才能发生变化。应答信号ACK:要求在发送或者接受时候每第8个周期下降沿后的低低电平将SDA释放同时拉低SDA,在SCL在第9个时钟周期高电平时SDA为低电平说明主机或者从机接受到数据,为高说明未接受或者不想接
2020-08-20 17:37:42
2789
3
原创 FPGA之UART传输
UART:universal asynchronous receiver-transmitter通用异步收发,控制器与外部设备进行数据通信无非两种,一种是串行通信另一种是并行通信。并行通信在早期的计算机系统中很常见,它相比串行通信在相同时钟下有着更高的速度。可以简单的理解成并行通信传输的数据线不止一根,而是由多根组成。但是随着CPU的频率越来越高,和外部器件的工作频率的提升,并行通信的弊端也随之而来:由于外界环境干扰并行通信的数据线上的信号并不是同一时刻到达,这就导致在实际信号传送和接收在时钟采样下建立时.
2020-08-16 17:57:26
1735
原创 FPGA之SDRAM控制器设计(四)
FPGA之SDRAM控制器设计(四):读模块设计:下面是带有自动预充电的读时序图。图上所示的突发长度BL为4,本次设计中一开始初始化时BL为2,所以只读取两个突发长度(4字节)读状态转移图读模块设计:`include "head.v"module read( input clk, input capture_clk, input soft_rst_n, input rd_en, input [12:0] row, input
2020-08-14 09:55:38
2733
原创 FPGA之SDRAM控制器设计(三)
FPGA之SDRAM控制器设计(三):写写由于已经涉及了上电刷新,写三个大的状态转移,先把状态转移图给出。主控状态转移图是基于手册上描述来的。在代码注释中会给出每个状态的意义解释。写时序图主控设计(含读模块):`include "head.v"module mainref_fsm( init_done,ref_done,clk,soft_rst_n,wr_en,rd_en,init_en,ref_en,rt_en, rt_flag,sel_mux,local_wd.
2020-08-11 16:14:51
2030
原创 FPGA之SDRAM控制器设计(二)
FPGA之SDRAM控制器设计(二):刷新这次要来解决上次留下来的刷新问题,在100us后首先要经过两次刷新才进行模式寄存器设置。这颗SDRAM芯片需要每隔64ms对8192行(列地址10-位,行地址13位)的每一个存储电容进行一次刷新,因为不刷新电充会泄露电流导致存储信息丢失。那每一行的刷新时间为64/8192 ≈ 7810ns,注意刷新是以行为单位,器芯片内部有一个计数器,这个计数器不是时钟直接驱动的,而是AUTO PRECHARGE驱动,每发一次atuoprecharge命令这个计数器加1,我们是
2020-08-10 21:50:40
2710
原创 FPGA之SDRAM控制器设计(一)
MT48LC128M4A2 – 32 Meg x 4 x 4 banks是512M SRAM,总体概述如下图分别从上电初始化,刷新,写,读四个部分进行设计,此外还包含主控状态机,一个顶层。1:上电初始化整体架构:从控制器到要控制的芯片可以分成20位的bus总线,时钟线sdr_clk,数据总线DQ以及DQM。上电时候主要是对bus总线的高4位也就是sdr_cmd进行配置。也就是要做的第一步,比较简单就是对sdr_cmd进行几次操作。其中注意在逻辑设计时候输出的sdr_clk时钟要和..
2020-08-08 09:16:49
3682
原创 FPGA之CRC校验
CRC校验原理求解CRC-8的编码电路和CRC校验的原理G(X) = X8+H7*X7+H6*X6+H5*X5+H4*X4+H3*X3+H2*X2+H1*X1+X0生成多项式G(X)=9‘b1_0000_0111信息位(需要发送的数据)16’b=1100_1101_0010_11101100_1101_0010_1110__0000_0000(待编码的数据)1000_0011_1(二进制除法做异或运算)0100_1110_10100_00...
2020-07-26 20:56:06
3340
原创 FPGA之DDS信号发生器
DDS信号发生器 本文主要涉及以下几个问题1:频率控制字如何得到2:DDS的框图3:用MATLAB得到正弦波的数字量化4:设计文件5:仿真文件6:仿真图首先将正弦波信号离散化,离散成多少位的根据自己的设计精度要求来定,但最高位一定是符号位,负数用补码来表示;然后用rom或者ram来存储离散后的信号数据;再由频率控制字的累加来给出地址用于读出ROM或者ram中的数据。1:相位累加器的位宽设为n,fc/(2^n)称作频率分辨率,这是能分辨出的最小频率,提高相位累加器位...
2020-07-19 13:53:52
11776
4
原创 FPGA之流水线思想
FPGA之流水线思想(含代码)本文主要设计以下几个问题:1:什么是流水线2:流线线使用场景3:一个例子来说明流水线1:CASE1: 例如工厂要对一个产品进行组装,分为A,B,C三步,以往是一个人负责这三步。这三步分别用时T1,T2,T3。且一个人完成所有步骤后才能发出通知:我完成这个产品了,其他部门只有接收到这个通知后才能继续生产零部件供应下一次...
2020-07-12 17:42:15
7314
1
原创 如何在FPGA中存储处理非整数(小数)
如何FPGA中存储非整数(小数),数字的定点化处理1:一个提前要知道的知识:二进制数的原码反码补码2:举例说明一个二进制数的原反补3:回到最初的问题1:在数字系统中为了计算的方便正负数都用补码表示。正数的原码,反码,补码和自身一样不变。负数的反码是最高位的符号位不变,其它位取反,补码等于反码加一。2:4位有符号二进制数表示的范围是-8到7(补码)分别是1000 1001 1...
2020-07-11 10:46:03
4150
原创 FPGA之fifo设计
FPGA之手撕fifo(含设计代码和仿真)本文回答以下几个问题:1:fifo的读空和写满信号如何给出2:fifo的写控制模块设计3:fifo的读控制模块设计4:双口RAM使用5:顶层文件6:仿真文件编写7:modelsim的RTL仿真1:上一篇文章(FPGA之FIFO IP核详细教程)已经简单说了一下读写指针变换准则:概括一句话就是读地址和写地址不能...
2020-07-01 17:01:03
5328
5
原创 FPGA之FIFO IP核详细教程
FPGA之fifo的相关知识本文回答以下几个问题:1:fifo是什么,有什么作用;2:在使用fifo的两种模式;3:使用异步fifo IP核的详细步骤说明;4:RTL设计和仿真;5:功能仿真;下面一 一解释上面的几个问题 1: Fifo是什么 :fifo1是英文first in first out 即先进先出(...
2020-06-28 22:30:42
18774
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人