H3_7100_FPGA基础入门方案
文章平均质量分 86
米联客(milianke)
硬件设计-测试-LINUX驱动
展开
-
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-39 HDMI视频输入测试
米联客开发板上集成的HDMI输入芯片方案采用ADV7611实现,对于没有集成HDMI输入芯片的开发板可以采用FEP扩展卡实现HDMI输入,本文介绍HDMI输入方案ADV7611的实现,对于通过FEP子卡实现的方案相关的配套课程会做出介绍。本文采用的ADV7611可以实现1080P60fps视频输出,默认我们输出的格式为RGB888。本文要实现的功能也很简单,只要完成HDMI视频输入后再通过前面一节课的HDMI输入IP把视频信号正确输出就可以。原创 2024-09-07 14:43:22 · 969 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-38 LVDS Select IO高速Serdes
高速串行通信优势非常巨大,只需要很少的IO引脚就可以实现高速通信,这也是当今FPGA高速接口的核心技术。比如XILINX的7代FPGA,GTX可以达到10.3125Gbps,ultrascale FPGA的GTH可以达到16Gbps。目前国产FPGA还难以达到这么高的接口速度。原创 2024-09-07 14:42:45 · 1062 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-37 LVDS信号环路测试
LVDS(Low Voltage Differential Signalin)是一种低振幅差分信号技术。它使用幅度非常低的信号(约350mV)通过一对差分PCB走线或平衡电缆传输数据。大部分高速数据传输中,都会用到LVDS传输。原创 2024-09-07 14:42:06 · 803 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-01 Xilinx vitis 安装
Vitis 统一软件平台可实现在 Xilinx 异构平台(包括 FPGA、SoC 和 Versal ACAP)上开发嵌入式软件和加速应用。它可为边缘、云和混合计算应用加速提供统一编程模型。利用与高层次框架的集成,通过加速库采用 C、C++ 或 Python 进行开发,或者使用基于 RTL 的加速器和低层次运行时 API 对实现方案进行粒度更精确的控制 — 选择您需要的抽象层次。原创 2024-08-20 10:32:27 · 920 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-02 USB_JTAG驱动安装
一般安装vitis(vivado)的过程中勾选了安装JTAGcable驱动就会默认安装好JTAG驱动,但是如果vivado无法正确识别到JTAG,那么可以试下重新手动安装驱动原创 2024-08-20 10:31:54 · 288 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-03 CP2104串口驱动安装
串口是最常用的一种调试工具,开发过程中我们经常会使用串口输出一些调试信息,在LINUX下也会用串口控制台控制LINUX系统。目前的串口,大部分都是USB转串口。CP2104是一款非常稳定好用的USB转串口芯片。接下来我们看下如何进行驱动安装。原创 2024-08-20 10:36:27 · 196 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-04程序的固化和下载
基于ZYNQ的启动方式包括了ZYNQ的加载流程、支持的加载模式、裸机启动、LINUX启动等。其中加载模式有常用的JTAG模式、QSPI模式、SD卡模式、NAND FLASH模式、QSPI+EMMC模式。如果需要详细了解其中的原理需要阅读大量资料和一些XILINX的FSBL代码以及LINUX启动部分的源码。原创 2024-08-20 10:48:48 · 632 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-05 FPGA流水灯实验
本章课程以大家熟悉的流水灯为例子,按一定的时间间隔,顺序循环点亮熄灭多个LED灯。本章详细讲解了VIVADO软件的使用,包括创建FPGA工程,编写Verilog代码,添加管脚约束,最后编译,下载bit文件到开发板测试。原创 2024-08-21 18:04:25 · 715 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-06 PWM呼吸灯实验
小小呼吸灯在很多设备上我们可以看到,我们可以在FPGA的控制主板上也可以加入呼吸灯,指示我们的FPGA主板正在运行。一般呼吸灯的亮灭周期是2S,呼吸灯的亮度可以通过PWM来调节。本文实现一个实用的小程序,读者完全可以自己编写代码,并且通过仿真测试代码的正确性,然后下载到开发板看实际运行效果。原创 2024-08-21 18:10:30 · 731 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-07 FPGA按钮去抖实验
按键的消抖,是指按键在闭合或松开的瞬间伴随着一连串的抖动,这样的抖动将直接影响设计系统的稳定性,降低响应灵敏度。因此,必须对抖动进行处理,即消除抖动的影响。实际工程中,有很多消抖方案,如RS触发器消抖,电容充放电消抖,软件消抖。本章利用FPGA内部来设计消抖,即采取软件消抖。原创 2024-08-22 15:19:31 · 656 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-08 FPGA多路分频器实验
在FPGA中,时钟分频是经常用到的。本节课讲解2分频、3分频、4分频和8分频的Verilog实现并且学习generate语法功能的应用,本文的重点是培养读者对于verilog基础编程的基本功掌握。原创 2024-08-22 15:19:59 · 1265 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-09 UART串行通信协议介绍
UART(Universal Asynchronous Receiver/Transmitter)代表通用异步接收器/发送器。也叫是我们经常所说的串口,基本都用于调试。UART的主要目的是发送和接收串行数据。串口只需要2根线就可以实现首发,TX用于发送数据,RX用于接受数据(收发不是一根线,所以是全双工方式),通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,可以完成通信过程(收发不同步,所以是异步串行通信)。原创 2024-08-23 17:10:43 · 853 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-10 UART串口发送驱动设计
UART串口通信是应用非常广泛的一种串行异步通信方式,常用的异步串口包括RS232\RS482\RS485。原创 2024-08-23 17:16:25 · 541 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-11 UART串口接收驱动设计
UART串口通信是应用非常广泛的一种串行异步通信方式,常用的异步串口包括RS232\RS482\RS485。原创 2024-08-24 10:49:02 · 732 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-12串口程序收发环路设计
我们完成了我们发送程序的测试,成功给我们的PC主机发送了我们“HELLO FPGA”的信息,我们主机显示接收成功。但是我们串口接收的程序仅仅是通过我们模拟仿真,虽然仿真结果达到了期望,但是不能直接上板测试难免差强人意。所以我们不妨将我们串口UART接收程序以及发送程序连接起来,做到能将PC端通过USB发送过来的数据接收,然后将接收到的数据再通过发送程序返回给我们的PC机。原创 2024-08-24 10:52:15 · 705 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-13 SPI通信协议原理
SPI是一种串行总线接口,也是各类嵌入式设备以及FPGA应用开发中常用的一种串行通信接口,SPI的接口速度可以最高到上百兆,因此SPI接口不仅仅可以应用于低速设备进行合理的时序设计,也可以用于一些高速串行外设通信。原创 2024-08-26 14:10:56 · 882 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-14 SPI MASET发送程序设计
SPI的发送器驱动程序主要围绕SPI_MOSI以及SPI_SCLK来设计。通过前面的SPI协议学习,我们这里设计的SPI驱动程序需要支持CPHA=0 CPOL=0;CPHA=1 CPOL=0;CPHA=0 CPOL=1;CPHA=1 CPOL=1四种情况。CPHA用于控制SPI接收器的采样时钟位置,CPOL用于设置SPI_SCLK的初始电平是高电平还是低电平。原创 2024-08-26 14:11:32 · 845 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-15 SPI接收程序设计
SPI的接收器驱动程序主要为SPI_CLK和SPI_RX接收数据总线的时序来设计。通过前面的SPI协议学习,我们这里设计的SPI驱动程序需要支持CPHA=0 CPOL=0;CPHA=1 CPOL=0;CPHA=0 CPOL=1;CPHA=1 CPOL=1四种情况。CPHA用于控制SPI接收器的采样时钟位置,CPOL用于设置SPI_CLK的初始电平是高电平还是低电平。原创 2024-08-27 17:12:51 · 987 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-16 SPI LOOP环路实验
在前面完成了SPI发送驱动程序、SPI接收驱动程序设计,本文对前面的SPI收发驱动做一个环路测试,通过仿真,以及在线仿真的方式验证SPI的收发应用原创 2024-08-27 17:13:14 · 882 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-17 SPI驱动HC595点亮数码管
本节课的目标,不仅仅是点亮数码管,笔者希望大家掌握笔者的学习方法,通过对74HC595芯片的内部结构,接口信号,以及驱动时序的分析,掌握如何通过SPI通信接口去控制一些SPI接口的芯片。对于搞FPGA的人来说,经常会使用SPI接口去读取ADC或者控制DAC。所以读者非常有必要掌握好SPI接口FPGA程序的设计,笔者这里给出的每个例子都是具备学习的价值意义的原创 2024-08-28 16:02:52 · 1036 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-18 SPI接口ADC采集驱动设计
本文实现AD7606 SPI通信方式实现8路ADC信号采集,本文也将灵活使用SPI的通信时序,而不是拘泥于前面编写的通用的SPI接口。更多时候我们在FPGA项目应用中会根据实际的外设接口编写最佳的时序方案,来实现最佳的性能。原创 2024-08-28 16:03:16 · 895 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-19 I2C通信协议原理
我们知道I2C总线具备广泛的用途,比如寄存器的配置,EEPROM的使用,更重要的是I2C总线上可以挂载非常多的外设。 对于一些低速器件的访问非常节省IO资源,由于是标准的总线接口,使用起来非常方便。I2C总线是OC开路,支持双向传输,所以总线上需要上拉电阻原创 2024-08-29 11:22:19 · 569 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-20 I2C MASTER控制器驱动设计
I2C Master控制器主要包含I2C收发数据状态机,SCL时钟分频器、发送移位模块、接收移位模块、空闲控制忙指示模块。SCL和SDA的输出逻辑和时序通过SCL和I2C状态机控制。原创 2024-08-29 11:22:49 · 728 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-21读写I2C接口EEPROM实验
前面的课程中,我们学习了I2C总线协议,以及介绍了米联客I2C Master控制器的实现原理、内部状态机、I2C时序产生、外部控制接口。本文开始,后面所涉及的I2C总线相关内容都会使用该控制器实现。本实验使用米联客的uii2c控制器实现对EEPROM的访问。原创 2024-08-30 16:45:25 · 853 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-22读写I2C接口的RTC时钟芯片
本节课继续利用I2C总线控制器实现对RTC时钟芯片,DS1337的读写访问,进一步验证我们设计的i2c控制器的可靠性。有了前面的基础,这节课内容学习起来很轻松。本节课主要是基于我们编写的I2C控制器的应用,侧重点是应用,所以不再给出RTL级别的仿真结果,直接通过控制器访问DS1337芯片。原创 2024-08-30 16:46:28 · 629 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-23 VTC视频时序控制器设计
Video Timing Controller缩写VTC是我们在所有涉及FPGA图像、FPGA视频类方案中经常用到的一种用于产生视频时序的控制器。原创 2024-09-02 10:40:19 · 962 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-24 TPG图像测试数据发生器设计
TPG(video_test_pattern generator)视频测试模式发生器用于产生测试数据,对视频数据通路测试。原创 2024-09-02 10:40:48 · 373 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-25 RGB转HDMI显示方案
本实验通过FPGA内部资源实现HDMI协议,使用HDMI直接驱动HDMI接口显示器,这是成本非常低廉的一种方案,可以实现HDMI输出1080P@60fps的视频图像。本实验需要用到前面课程中的VTC模块产生视频时序,以及TPG模块产生测试图形。关于VTC视频时序参数的设置,读者可以阅读前面VTC相关的课程内容。原创 2024-09-02 19:40:26 · 628 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-26浅谈XILINX FIFO的基本使用
首先来大概了解下什么是FIFO ,FIFO( First Input First Output)简单说就是指先进先出。FIFO也是缓存机制的一种,下面是我总结的FIFO的三大用途:1)、提高传输效率,增加DDR带宽的利用率。2)、数据位宽转换3)、跨时钟域的应用以上总计的三点,很多时候是混合使用的。FIFO的用途非常大,我们在后面的例子中也看到,只要涉及到DDR传输的都和FIFO有关系。原创 2024-09-02 19:41:04 · 812 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-27浅谈XILINX BRAM的基本使用
对于BRAM 详细的说明在XILINX 官方文档,pg058中有说明,我们这里仅对课程涉及的内容讲解。Xlinx系列FPGA,包含两种RAM:Block RAM和分布式RAM(Distributed RAM),他们的区别在于,Block RAM是内嵌专用的RAM,而Distributed RAM需要消耗珍贵的逻辑资源组成。前者具有更高的时序性能,而后者由于分布在不通的位置,延迟较大。原创 2024-09-03 13:30:21 · 1220 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-28液晶屏7寸LCD显示测试
米联客的HDMI输出采用了FPGA实现了HDMI输出协议,直接驱动了HDMI接口的液晶屏。我们可以把HDMI输出IP看作一个黑盒子,黑盒子的接口是RGB输入接口,输出是HDMI接口输出。不管是HDMI接口,或者是VGA接口,亦或是RGB接口等等...关键的是让程序正确输出RGB时序。对于本文中使用的液晶屏,可以通过RGB接口直接驱动液晶屏,也可以通过LVDS驱动液晶屏,如果使用LVDS接口,也是首先要正确输出RGB的驱动时序。原创 2024-09-03 13:30:53 · 677 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-29基于FPGA实现触摸屏实验
通过对触摸液晶的硬件分析和驱动代码分析,笔者发现只要通过I2C接口实现对触摸液晶寄存器的控制和访问一样可以实现液晶屏的触控。笔者前面已经编写了非常好的I2C控制器,实现了EEPROM和RTC时钟芯片的读取,那么在本文中,我们也可以利用这个控制器实现和液晶屏触控芯片的通信。原创 2024-09-05 10:03:11 · 1090 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-30 RS485串口程序收发环路设计
在前面的课程中,我们已经学习了UART串口程序的设计,在工业场合为了提高串口的抗干扰能力,以及传输距离,RS485/RS422会更加广泛应用。在本文的实验中我们通过调用前面已经编写好的UART收发IP模块,以及FIFO,实现RS485的单工通信测试。其中重点是关于RS485芯片在单工通信方式下的信号控制逻辑设计。原创 2024-09-05 10:04:12 · 823 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-31基于FPGA简易示波器显示驱动设计
FPGA在数据采集,数据处理,图像视频领域都有广泛的应用。很多FPGA工程师苦恼,如何让FPGA采集的数据可以直观显示。如果上一个LINUX再弄一个QT写示波器软件,工作又太复杂了。基于此,设计一款基于FPGA的示波器对实时采集的波形数据在显示器上直观显示,具有非常好实的用价值。原创 2024-09-06 14:08:15 · 677 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-32 ADC模块FEP-DAQ7606采集显示波形方案
本方案通过把DAQ7606采集到的数据,通过前面已经完成的示波器显示驱动进行在屏幕上显示ADC采集的波形数据。原创 2024-09-06 14:08:47 · 388 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-33 ADC模块FEP-DAQ9248采集显示波形方案
本方案通过把DAQ9248采集到的数据,通过前面已经完成的示波器显示驱动进行在屏幕上显示ADC采集的波形数据。原创 2024-09-07 14:23:32 · 717 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-34 VIVADO自定义IP简单封装方法
XILINX作为FPGA全球老大,不仅仅是硬件技术实力,而且EDA软件也是非常优秀,XILINX VIVADO是业内最先进的开发工具。从VIVADO开始,支持通过图形化编程FPGA,极大提高了开发效率,图形化开发方法减少了低端接口输入输出错误。但是,为了方便图形化设计,VIVAOD需要用户编写的代码封装成图形化的IP。当然封装后的IP也可以和原来一样方便的调用。本文以实现串口IP封装为例,介绍VIVADO IP图形化封装的方法,以及调用方法。原创 2024-09-07 14:24:11 · 497 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-35 VIVADO用户IP软件总线接口封装
本文实验中对视频时序接口RGB接口的关键信号进行总线封装。并且使用的是VIVADO IP封装库中自带的总线video timing,对于不是VIVADO自带的总线接口,我们也可以自定义,这个本章节不讲解,如果读者感兴趣,可以在 “米联客DDR缓存方案AXI-FDMA”专题中学习,该章节有对复杂的用户自定义接口的自定义总线FDMA接口进行封装。原创 2024-09-07 14:24:53 · 721 阅读 · 0 评论 -
[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-36高效的VIVADO BlockDesign设计方法
由于VIVADO图形化的编程方式中大量应用,所以我们大部分时候都需要对IP进行图形化的封装,前面两节课实验,我们已经完成了简单IP的封装。本实验利用前面图形化IP设计基于图形化的FPGA设计方案,实现“RGB转HDMI显示输出”这节课的内容原创 2024-09-07 14:25:30 · 364 阅读 · 0 评论