自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小王在努力...的博客

本人小小FPGA工程师一名,通过平台分享自己学习和工作经历,希望得到批评指正,谢谢。

  • 博客(70)
  • 收藏
  • 关注

原创 VHD简易状态机通用模版

使用VHDL语言搭建一个简易状态机模版,包含次态、现态和输出,以循环点亮LED为例编写;同时讲述一些常见语法知识。

2024-05-21 19:01:08 234

原创 FPGA时序约束与分析--建立时间与保持时间

时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求;FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的时序模型( FPGA 器件厂商能够使用这样的模型,对 FPGA 布局布线后的每一个逻辑电路和走线计算出延时信息),给出最终的时序分析和报告;设计者通过查看时序报告,确认布局布线后的时序结果是否满足设计要求。

2024-03-04 22:00:00 576

原创 FPGA时序约束与分析--数据到达路径和数据需求路径

时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求;FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的时序模型( FPGA 器件厂商能够使用这样的模型,对 FPGA 布局布线后的每一个逻辑电路和走线计算出延时信息),给出最终的时序分析和报告;设计者通过查看时序报告,确认布局布线后的时序结果是否满足设计要求。

2024-03-04 22:00:00 523

原创 基于光口的以太网 udp 回环实验

本章实验我们通过网络调试助手发送数据给 FPGA,FPGA通过光口接收数据并将数据使用 UDP 协议发送给电脑。

2024-01-18 22:00:00 1389 1

原创 基于0v2640的光口视频传输

本节实验任务是使用开发板上的两个光纤接口实现视频图像的传输,视频图像由 OV2640 摄像头模块采集数据, 再通过开发板上的其中两路光模块进行视频信号的光纤发送和接收,然后在 HDMI 显示器上显示出来。

2024-01-16 20:30:00 970

原创 基于 OV2640 的以太网 RGMII 图像传输系统设计

本节主要讲述了一种对数据以行为单位的编码方法。该方法采用摄像头采集数据后经由 FPGA 的 RGMII 接口通过 UDP 协议实现以太网图像传输。以该方法进行 UDP 协议下的以太网图像传输,可以有效缓解 UDP 协议的差错控制缺陷带来的传输质量不佳问题。

2023-12-26 00:45:00 1182

原创 以太网初始化设计(MDIO 控制器)

PHY芯片根据不同的需求,会有不同的工作模式,例如需要设置其以太网通信速率为千兆、百兆、十兆或自动协商,而处理器也需要知道其连接状态,例如需要知道网络是否已经连接通,以及当前的链接速率是多少。为了实现这些功能,IEEE 在以太网标准 IEEE 802.3 中使用若干条款定义了用处理器用来管理PHY 芯片的标准控制接口——MDIO。本章,我们将学习 MDIO 接口相关知识,并设计相应的驱动模块,通过 MDIO接口带领大家学习如何配置 PHY 芯片。

2023-12-18 17:36:20 1103

原创 FPGA---UDP通信求助(已解决)

UDP接收模块中,接收到的CRC校验值与自己计算CRC校验值进行判断,相符后将数据解析给发送端,否则回到空闲状态。当加上CRC校验判断后,回环会有无法接收现象。去掉CRC判断,数据回环无误。

2023-10-10 20:30:00 787 2

原创 千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP回环)

经过前面章节的理论讲解和模块设计,相信大家已经对以太网传输以及如何实现以太网通信有了一定的了解。为了验证前面章节的内容,我们将进行以太网回环案例。通过判断回环数据是否一致,对前面章节内容和设计的模块进行验证。

2023-10-10 15:23:00 1248 1

原创 千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP接收)

在前面我们对以太网 UDP 帧格式做了讲解,UDP 帧格式包括前导码+帧界定符、以太网头部数据、IP 头部数据、UDP 头部数据、UDP 数据、FCS 数据,以太网接收模块同样是按照该格式接收数据。

2023-10-08 21:30:00 1276 5

原创 千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP发送)

本章将讲解千兆以太网传输层 UDP 协议的相关内容。学习 UDP 层协议的内容,核心也是明确该协议的数据字段格式。在此基础上,理解其“不可靠、无连接”的传输特性。同时,结合前面章节的内容,进一步深化理解用户数据、UDP、IP、MAC 层的层层打包嵌套关系。

2023-09-22 20:00:00 2058

原创 千兆以太网网络层 IP 协议介绍与 IP 校 验和算法实现

本章将讲解千兆以太网网络层 IP 协议的内容及算法实现。IP 层的实质是在MAC 层的基础上将原有协议进行一个更加细化的定义而得。它最核心的意义,就是让 IP 地址参与到网络数据传输中,让硬件和硬件的通信传输,从网卡号作为唯一的身份识别标志,变为以 IP 地址作为身份识别标志。而 IP 层最核心的内容,就是 IP 协议数据字段的格式。

2023-09-22 19:00:00 397

原创 function—— Verilog的函数

function用法说明。

2023-09-14 22:00:00 670

原创 CRC校验原理及实现

现代数据通信要求信息传输具有高度可靠性 ,即误码率要足够低。然而 ,数据信号在传输过程中不可避免地会受到噪声干扰 ,或者信道不理想 ,从而造成的码间干扰而产生差错 ,即出现误码。我们通常是通过一个校验码去判断接收的消息是否出现差错。信息在发送时,发送端会通过某个算法得到一个值,这个值被称为校验码。通信时发送端在发送消息时将校验码加在信息末端,接收端以相同的算法得到一个校验码,将发送端和接收端的校验码进行对比来判断是否正确接收到了信息。

2023-09-14 17:58:33 1337

原创 千兆以太网硬件设计及链路层 MAC 协议格式

从本章开始,将分享千兆以太网设计的相关知识。将为大家分享千兆以太网硬件设计及链路层 MAC 协议格式、网络层 ARP 协议的原理与FPGA 实现、网络层 IP 协议介绍与 IP 校验和算法实现、网传输层 UDP 协议原理与FPGA 实现、千兆以太网 UDP 回环测试等实验。

2023-09-14 17:53:24 722

原创 千兆以太网网络层 ARP 协议的原理与 FPGA 实现

本节对以太网电路接口和以太网帧协议做简单的介绍,并在了解了以太网帧协议后,在 FPGA 上实现基于以太网 UDP 帧的发送模块的设计与验证。

2023-09-14 17:50:24 472

原创 RGMII 与 GMII 转换电路设计

RGMII 是 IEEE802.3z 标准中定义的千兆媒体独立接口(Gigabit Medium Independent Interface)GMII 的一个替代品。相较于 GMII 接口,RGMII 接口可以在保证传输速率不变的情况下减少管脚数。RGMII 接口通过过在时钟的上升和下降沿分别传输 1 次数据,并对控制信号采用多路复用的方式来降低管脚数量的。RGMII 数据在时钟的上升沿和下降沿均进行采样。

2023-09-07 17:20:03 1071

原创 Xilinx IDDR与ODDR原语的使用

ODDR原语使用说明

2023-09-07 17:15:14 752

原创 xilinx FPGA IOB约束使用以及注意事项

在xilinx FPGA中,IOB是位于IO附近的寄存器,是FPGA上距离IO最近的寄存器,同时位置固定。当你输入或者输出采用了IOB约束,那么就可以保证从IO到达寄存器或者从寄存器到达IO之间的走线延迟最短,同时由于IO的位置是固定的,即存在于IO附近,所以每一次编译都不会造成输入或者输出的时序发生改变。

2023-09-06 18:30:00 1251

原创 UART 通信-使用VIO进行板级验证

本章将学习 UART 通信的原理及其硬件电路设计,并使用 FPGA 来实现 UART 通信中的数据发送和接收部分设计。在仿真验证时除进行正常的功能仿真以外,还将在 Vivado 中使用Virtual Input/Output(VIO)工具进行板级验证,具体方法是:通过 VIO 输入需要通过串口发送出去的数据,并且控制 FPGA 将待发送的数据发送出去,并在串口助手中查看 PC 端接收到的数据。

2023-09-04 17:38:53 666

原创 基于 OV2640 的图像采集显示系统(camera_init 摄像头初始化模块)

本节将在实验“基于 DDR3 的串口传图帧缓存系统设计”实现一个图像采集显示应用系统,来设计 OV2640 应用系统中所需的基本应用逻辑电路。

2023-08-29 18:00:00 1107

原创 基于 OV5640 摄像头理论知识讲解-数字接口和控制接口

基于 OV5640 摄像头理论知识讲解-数字接口和控制接口。

2023-08-29 18:00:00 2711 1

原创 基于 OV5640 摄像头理论知识讲解-典型工作模式配置

基于 OV5640 摄像头理论知识讲解-典型工作模式配置。

2023-08-29 18:00:00 2545

原创 基于 OV5640 的图像采集显示系统(DVP 接口时序逻辑设计)

上一节,我们已经完成了 OV5640 初始化逻辑的介绍。接下来,将要开始完成 DVP 接口的时序设计。

2023-08-29 18:00:00 1912

原创 基于OV2640/ OV5640 的图像采集显示系统

本节将在实验“基于 DDR3 的串口传图帧缓存系统设计”实现一个图像采集显示应用系统,来设计 OV2640OV5640应用系统中所需的基本应用逻辑电路。

2023-08-29 11:33:40 2079 2

原创 基于 OV5640 摄像头理论知识讲解-成像和采样原理

基于 OV5640 摄像头理论知识讲解-成像和采样原理。

2023-08-29 11:27:49 3258

原创 SCCB与IIC的异同及FPGA实现的注意事项

IIC接口有比较广泛的应用,而SCCB(Serial Camera Control Bus,串行摄像头控制总线)是由OV(OmniVision的简称)公司定义和发展的三线式串行总线,该总线控制着摄像头大部分的功能,包括图像数据格式、分辨率以及图像处理参数等。主要用于摄像头控制,可以说SCCB是低配版的IIC。因为IIC可以实现多主多从,IIC规范文档中有提到多主机的时钟同步、总线仲裁功能。而SCCB的文档中则没有这部分内容,因为一般来说都是单个主机控制多个摄像头,只有一主多从的功能。

2023-08-21 15:26:51 473 1

原创 使用IIC进行多数据读取测试

使用已完成的IIC模块,将256个数据写入,然后将256个数据读出,测试该模块写入与读取是否正常。

2023-08-21 09:26:25 410 2

原创 I2C连续读写实现

上文的 i2c_bit_shift 模块说完了,我们发现实现一个字节的写操作还是可以实现的,实际的应用中我们不可能只写一个字节的数据,那么此时这个 i2c_bit_shift 模块用来连续写就有些不方便了,从上面的仿真代码就能看出来,这时就需要一个上层模块来控制这个i2c_bit_shift 模块去连续写,这样就方便一些。

2023-08-15 11:26:43 1771 1

原创 I2C接口控制设计与实现

根据完整的 I2C 传输时序,提取出通用的底层传输单元。

2023-08-11 12:21:13 798

原创 I2C 接口控制器理论讲解

I2C(Inter-Integrated Circuit BUS) 集成电路总线,它是一种串行通信总线,使用多主从架构,由 Philips 公司开发的一种简单、双向二线制同步串行总线,只需要两根线即可在连接于总线上的器件之间传送信息。 I2C 通讯协议和通信接口在很多工程中有广泛的应用,如数据采集领域的串行 AD,图像处理领域的摄像头配置,工业控制领域的 X 射线管配置等等。除此之外,由于 I2C 协议占用引脚特别少,硬件实现简单,可扩展型强,现在被广泛地使用在系统内多个集成电路 (IC)间的通讯。

2023-08-11 12:19:24 1765 3

原创 基于 DDR3 的串口传图缓存系统设计实现(Native | Verliog | Vivado)

结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3 的Native接口串口传图帧缓存系统。

2023-07-21 10:08:10 371

原创 基于 DDR3 的串口传图缓存系统设计实现(fifo_mig_native_fifo )

结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3 的串口传图帧缓存系统。

2023-07-21 10:06:30 429 2

原创 基于 FPGA 的 HDMI/DVI 显示

本节对 DVI 电路接口和 DVI 数据链路原理做简单的介绍,并在 FPGA 上实现基于 DVI接口的显示器彩条显示实验。

2023-07-12 11:09:12 3878 4

原创 基于 DDR3 的native接口串口局部传图缓存系统设计实现(整体设计)

结合串口接收模块和 tft 显示屏控制模块,设计一个基于 DDR3—Native接口的串口传图帧缓存系统。

2023-07-07 17:44:06 459 1

原创 DDR3 控制器 MIG IP 详解完整版 (native&Vivado&Verilog)

本节主要是介绍 Xilinx DDR 控制器 IP 的创建流程、IP 用户使用接口 native 协议介绍和IP 对应的 Example Design 的仿真和上板验证。

2023-07-07 17:41:28 10324 8

原创 基于 FPGA 的彩色图像灰度化的设计实现(rgb2gray | image_stitche_x)

image_stitche_x 模块:将串口接收的尺寸为 400480 大小的彩色图像与灰度化处理后的 400480 大小的图像数据以左右形式合并成一张 800*480 的图像。

2023-05-17 11:10:25 1536

原创 基于 FPGA 的彩色图像灰度化的设计实现

本次实验主要是在上一节的基础上,加入图像处理模块,实现在 PC 端通过上位机下发尺寸为 400*480 大小的彩色图像数据到 FPGA 的串口,FPGA 通过串口接收的彩色图像数据并进行实时彩色图像灰度化处理,然后将原始彩色图像和处理后的图像拼接在一起并缓存在DDR3 中,最终在 TFT 屏上同时显示处理前的彩色图像和处理后的灰度图像。

2023-05-17 11:09:40 1116 1

原创 Verilog语法之generate (for、 if、 case)用法

对于同一功能多种不同实现方法的模块代码如何整合到一起呢?当然每种方法作为一个单独的模块使用一个.v 文件保存肯定是没有问题的,这个就不太便于后期的维护和使用。如果能将多种实现方法整合到一个模块保存在一个.v 文件,使用起来就更加的方便。方法肯定是有的,而且还不只一种。下面提供两种方式,宏定义法,和使用 generate -if 方法。提示:以下是本篇文章正文内容,下面案例可供参考宏定义法相对比较好理解,通过不同的宏定义条件编译方式进行选择某种实现方式。

2023-05-11 17:22:59 2369 1

原创 基于 DDR3 的串口传图帧缓存系统设计实现(bit8_trans_bit16)

对输入的每两个 8bit 数据进行拼接,并产生一个拼接后数据输出有效标识信号。拼接后的数据是前一个数据在高字节位置,后一个数据在低字节位置。这个主要是串口传图上位机软件发送是是先发送 16bit 图像数据的高字节,后发低字节,FPGA 上这样处理为了保证拼接后图像数据的正确性。bit8_trans_bit16 该模块主要功能是将串口传输过来(一次传 8bit)的每两个 8bit 数据拼接成一个 16bit 图像数据(RGB565)。

2023-05-10 17:35:38 334

空空如也

空空如也

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

TA关注的人

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