自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(196)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDMI数据的接收发送实验(十二)

具有1个输入,1个输出HDMI/DVI端口,4对4 TMDS通道,用于视频的三对数据差分对信号和一对时钟差分对信号的传输。具有预加重使能输出。上位机识别出EDID中的参数信息后,显示器的视频图像会通过HDMI线把视频信息传到开发板中,将信号串转并后通过解码获得视频信息的像素,再通过并转串将视频信息发送到另一个显示器中进行显示。主机识别出EDID后,会给HDMI输出显示器支持的像素视频,R、G、B、CLK这四对差分信号经过AD8195芯片进入FPGA,3、 再经过8b转10b转化为HDMI输出的视频数据。

2026-05-28 14:35:31 86

原创 LVDS系列49:Xilinx Ultrascale系 ADC LVDS接口参考方法(十一)

控制AFE芯片进入测试模式,然后修改所有通道的延时,每修改一个延时,判断AFE每个通道在该延时情况下的同步情况(连续几千拍都能和测试码一致且中间不出错),然后有512中延时情况,扫描一遍延时后,就能得到每个通道能正确同步上的延时值的数据窗,取这个同步数据窗的这一串延时值的中心值,作为最佳延时值使用;当设置最佳延时值后,再同步一遍,发现所有通道都能正确通过测试码的同步测试,那么就可以锁定该延时值,AFE退出测试模式,输出正常通道采集数据;连接外部的状态信号,还有afe的控制spi写寄存器的控制接口;

2026-05-27 16:55:45 271

原创 QT下载与安装

注:qt可以跨平台使用,如果windows有qt可以不用在Linux下安装。我们只需要将写好的代码使用交叉编译工具编译为二进制文件,将需要的库和字体库、运行程序放到开发板运行即可。我使用的是ubuntu16,qt版本使用的是Qt5.10.0,官方目前提供的在线最低版本是5.12.0的,这里我使用给是5.10.0的离线安装包,在linux下直接安装即可。这里选择自己安装需要的组件,后续也可继续下载需要的组件。下一期将提供编写好的qt代码,功能是自适应弹窗。对课程感兴趣可以私信联系。本文章由威三学社出品。

2026-05-26 15:44:44 27

原创 HDMI数据的接收发送实验(十一)

本次实验成功实现了基于 FPGA 的 HDMI 数据接收与发送功能,完成了 EDID 的传输与识别,并在实际板卡上验证了 HDMI 接口与主机的通信能力。上图为ila抓取的部分信号,在ila设置中,为了能看到更多的信号时序,将深度设置尽量大,这里因为抓取得信号多,所以只能设置到16384深度,想看IIC传输的开始部分,可以抓取start_flag信号,可以看到里面在ACK应答位的两侧有SDA数据线拉高的毛刺,这里就是主机和从机都没有控制SDA时表现出来的状态。它的显示器分辨率推荐为1024x768。

2026-05-08 14:38:16 227

原创 LVDS系列48:Xilinx Ultrascale系 ADC LVDS接口参考方法(十)

sta_value/end_value:同步成功的窗口起点和终点,这里只计算延时值从0到511递增过程中,第一个同步成功的延时值为窗口起点,然后接着递增到下一个延时值同步失败的位窗口终点;在扫描过程中,当第一次检测到d_sync_status==1时,记录当前的delay_value为sta_value,并置sta_flag=1,表示仅记录一次;若d_sync_status变为0表示同步失败,则记录当前value_reg为end_value,将end_flag置1表示终点找到后面将不会更新;

2026-05-07 09:14:42 289

原创 HDMI数据的接收发送实验(十)

上图为主机通过IIC协议启动读取的波形,先发出启动信号,再发起虚拟写入操作,写入器件地址0,’hA0为写指令,之后写入寄存器地址’h00。本章节给出了IIC协议的主机和从机的读数据的仿真流程,ddc_ctrl:作为从设备,存储并提供EDID数据,ddc_master:作为主设备,主动读取显示设备的EDID。主机输入读指令后,开始读取数据,根据sda的二进制数据,可以看出第一个字节为00,后边为6个ff,后边依次跟着edid的数据。本章节通过仿真来观察EDID的读取数据波形,可以观察主机与从机的交互流程。

2026-04-30 14:57:12 210

原创 LVDS系列47:Xilinx Ultrascale系 ADC LVDS接口参考方法(九)

每个restart脉冲期间,各idelay_lane会进行一次延迟值扫描(延时值递增,具体由idelay_lane内部逻辑实现),扫描完成后,sync_done_0~3变为1,也就是前述的afe_sync模块的同步逻辑,每次延时控制模块修改了一次延时后,afe_sync同步逻辑就要完整的工作一遍,工作后给出同步结果,用于延时控制模块判断对于各通道该延时值对于通道数据采样的影响;511时,512次扫描结束后,状态进入LOCKING,locking_state置1,开始进行延时结果的判断;

2026-04-29 16:11:06 321

原创 Framebuffer三色条代码

基于这个原理,我写了一段比较简单的代码,用来在 LCD 上显示红、绿、蓝三个颜色的条——也就是常见的三色条(color bars)。代码的逻辑其实不复杂,就是直接操作 framebuffer 对应的显存区域,分别给不同的区域填上红、绿、蓝的像素值。通过制作的sd卡上电后,在命令行安装上一期写的vdma驱动,安装成功后会在/dev下发现fb设备,这个字符设备节点代表的就是我们使用的lcd设备,我们通过改变fb字符设备的内存来改变lcd屏幕上的显示。对课程感兴趣可以私信联系。本文章由威三学社出品。

2026-04-28 09:21:07 22

原创 LVDS系列46:Xilinx Ultrascale系 ADC LVDS接口参考方法(八)

enter_pat脉冲:在状态进入ENTER_PAT时产生1拍脉冲,驱动外部模块afe_en_pattern驱动spi写寄存器进入测试模式,同时配置10bit测试码;上图为125M时钟域的信号,连接的模块lvds_s2p模块中的hssio ip的IDELAY延时控制端口,使用的是ip输出的125M pll clkout0,在模块内部要跨时钟域使用;ENTER_PAT状态:控制AFE进入测试模式 ,当接收到外部传来的enter_pat_ok为1表示进入测试模式操作完成,可以跳转DETECT状态;

2026-04-23 13:42:38 453

原创 Framebuffer的讲解

Framebuffer(帧缓冲)是 Linux 内核提供的一种图形显示抽象层,它将显示设备(LCD、HDMI、VGA 等)统一抽象为一个线性内存区域。应用程序只需要向这个内存区域写入像素数据,内核就会自动将这些数据显示在屏幕上。cat /proc/fb # 查看已注册的 framebuffer。一、Framebuffer 概念。对课程感兴趣可以私信联系。本文章由威三学社出品。

2026-04-21 16:07:47 40

原创 Vdma驱动的作用以及代码

该驱动为 Xilinx FPGA SoC(如 Zynq-7000、MicroBlaze)上的 LCD 显示提供底层支持。它利用 VDMA IP 核实现硬件 DMA,将内存中的显存数据自动搬运到 LCD 接口(如 RGB/LVDS),无需 CPU 参与每帧刷新。驱动向 Linux 内核注册一个标准的帧缓冲设备 /dev/fb0,用户空间的 GUI 库(如 LVGL、Qt)可以通过 mmap 直接操作显存,实现高效显示。/* 自定义结构体 */对课程感兴趣可以私信联系。本文章由威三学社出品。

2026-04-14 14:23:16 365

原创 HDMI数据的接收发送实验(九)

图9为给IIC发送数据的时序,在发送数据期间,每收到一次ACK应答,data_count的值+1,发送的数据data_out来源是ROM模块,hex文件中行数为0-127,所以read_addr的值也为0-127,数据线sda_out的值为data_out_shift的最高位,地址每增加一次,数据data_out都会赋值给data_out_shift寄存器,再根据scl_l_sync来移位,移位7次正好可以把data_out的数值从高到低传输完成。再给对方发送ACK应答,这是状态跳转到SEND_ACK。

2026-04-10 14:19:47 446

原创 LVDS系列44:Xilinx Ultrascale系 ADC LVDS接口参考方法(六)

AFE5832使用比AD9253复杂,因为AFE5832集成功能更复杂,所以AFE5832必须要使用spi去读写控制其寄存器,像很多tgc增益等等的高级复杂的功能的设置,都必须通过spi接口去修改寄存器实现;给寄存器地址为0x41和0x42的pllrst1和pllrst2寄存器的bit15置1复位,且在置1复位后,等待10us,再将两个寄存器该位其置0手动清楚复位值,给下图中地址为0的寄存器的bit0置1,软复位一下,该复位值会自动清零,在上电后,首先需要RESET管脚,复位拉高至少100ns,

2026-04-08 13:46:36 55

原创 系统上板查看vdma设备

它在 FPGA(如 Xilinx Zynq 系列)中作为 IP 核实现,主要功能是在内存(如 DDR) 与视频处理逻辑之间自动搬运视频数据,无需 CPU 干预。这里使用串口助手MobaXterm,将板子连接到主机,串口波特率使用115200,板子通电后利用flash+sd卡启动,初始账户密码都是root。• 独立读写通道:支持同时进行内存写入(S2MM,从流到内存)和内存读取(MM2S,从内存到流),实现视频采集与显示并行。对课程感兴趣可以私信联系。本文章由威三学社出品。

2026-04-07 09:17:12 207

原创 HDMI数据的接收发送实验(八)

首先要完成开始条件的时序,当检测到HMDL_RX_PHA的上升沿并且HMDL_RX_TXEN为1时,IIC开始工作,SCL和SDA这两条线上电之后为高,在产生开始标志时,这里需要满足起始条件的保持时间(至少4.0us),也就是数据线由高变低后,SCL为高的保持时间,这里再增加一个计数器scl_start_time_cnt,计数到511时,SDA拉低,计数到1023并且sclk_cnt为511时,SCL拉低。,在移出8位数据后,从机会返回ACK应答,当SCL为高时,sda_in为低,则代表接收到了响应。

2026-04-01 13:41:47 324

原创 petalinux修改设备树添加vdma生成linux系统

定位到image/linux目录下运行petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system.bit --u-boot u-boot.elf --force。工程/project-spec/meta-user/recipes-bsp/device-tree/files/ system-user.dtsi。命令petalinux-config -c kernel,操作同上(save为kernel.config)对课程感兴趣可以私信联系。

2026-03-31 10:58:23 393 1

原创 LVDS系列44:Xilinx Ultrascale系 ADC LVDS接口参考方法(六)

AFE5832使用比AD9253复杂,因为AFE5832集成功能更复杂,所以AFE5832必须要使用spi去读写控制其寄存器,像很多tgc增益等等的高级复杂的功能的设置,都必须通过spi接口去修改寄存器实现;给寄存器地址为0x41和0x42的pllrst1和pllrst2寄存器的bit15置1复位,且在置1复位后,等待10us,再将两个寄存器该位其置0手动清楚复位值,给下图中地址为0的寄存器的bit0置1,软复位一下,该复位值会自动清零,在上电后,首先需要RESET管脚,复位拉高至少100ns,

2026-03-27 14:37:47 61

原创 HDMI数据的接收发送实验(七)

H36-H47位置为推荐分辨率,00 00 00 FC 00这5个字节是显示器名称的标志,后边的编码内容为显示器名称,根据ASCII码修改,共13位。到此我们的EDID内容已经修改完毕,接下来要把修改完的EDID编码储存在hex文件中,初始化加载到自定义的ROM模块中。FPGA端把预设的EDID储存在片上ROM中,根据HDMI主机发送的IIC读写请求信号,利用IIC通信标准的时序将主机所读取的EDID编码传输给电脑端。电脑端接收到正确的EDID编码后,就会通过HDMI输出端口,输出所选尺寸的视频输出。

2026-03-26 15:19:34 389

原创 petalinux制作linux系统flash+sd卡启动

如下图所示是我们得到了制作完毕的BOOT.BIN、image.ub以及rootfs.tar.gz。 BOOT.BIN: Zynq 的标准启动镜像格式,包含了 FSBL、FPGA 比特流和 U-Boot,可以直接被 Zynq 的 BootROM 识别并加载。 Image.ub:PetaLinux 工程生成的一个 U-Boot 启动镜像文件,采用 FIT (Flattened Image Tree) 格式。里面包含了linux的内核镜像和设备树文件(DTB)。

2026-03-25 09:12:48 349

原创 HDMI数据的接收发送实验(六)

EEPROM接收到器件地址和寄存器地址且应答后,单片机必须产生新的起始信号,再发送器件地址,后边的读写位为1,代表读操作,每次只读取当前寄存器地址的数据。本章节详细介绍了AT24CM01芯片的读写时序,后面我们会用到它的读时序,我们作为从机,通过IIC协议往HDMI连接的eeprom中写入edid编码,使上位机可以识别edid的配置信息,识别成功后再通过HDMI输出端口发送edid支持的视频信息。字地址字段由设备地址字节中的 P0 位组成,然后是最高有效字地址,再到最低有效字地址(图4)。

2026-03-18 17:15:59 375

原创 petalinux制作linux系统sd卡启动

 BOOT.BIN: Zynq 的标准启动镜像格式,包含了 FSBL、FPGA 比特流和 U-Boot,可以直接被 Zynq 的 BootROM 识别并加载。分别输入n,p进行分区,这里选择1分区和2048扇区,输入1然后点击回车再点击回车再输入分区大小+100MB再点击回车第一个分区就好了。上一期我们得到了制作完毕的BOOT.BIN、image.ub以及rootfs.tar.gz。然后输入t选择分区类型,这里选择c——fat类型,最后再输入a第一块分区完毕。输入p查看分区后,输入d删除分区。

2026-03-17 14:00:06 280

原创 LVDS系列43:Xilinx Ultrascale系 ADC LVDS接口参考方法(五)

split_40to10模块将40位数据串行输出为4个10位数据,data_o_v指示输出数据有效,数据通道并行处理,所有通道使用相同的bslp_num进行滑动,保证通道间的数据对齐关系一致,帧时钟通道单独处理但滑动方式与数据通道相同;hssio输出的是125MHz 8bit的数据流,但是afe5832输出的是100MHz 10bit的数据流,现在实际10bit数据是被切在了多个8bit数据中,需要转换和对齐操作,跨时钟域把8bit转换到10bit;10bit,两者速率一致,不会出现数据波动或丢失情况;

2026-03-13 13:35:54 377

原创 HDMI数据的接收发送实验(五)

在空闲状态下,SCL及SDA都是置高的状态,当需要进行一次IIC传输时,由START信号指示当前数据传输开始,由STOP信号指示当前的数据传输结束,START信号的标识是在SCL高电平情况下,SDA信号由高变低 ,即视为START开始,STOP信号标识是在SCL高电平情况下,SDA信号由低变高,即视为STOP结束,START信号与STOP信号之间的信号流即为所传输信号。IIC串行总线由两根信号线组成,一根是双向的数据线SDA,另一根是单向的时钟线SCL,在空闲状态时,SDA和SCL线都置‘1’,为高电平。

2026-03-11 16:15:53 390

原创 Petalinux的工程创建以及生成启动文件

定位到image/linux目录下运行petalinux-package --boot --fsbl zynqmp_fsbl.elf --fpga system.bit --u-boot u-boot.elf --pmufw pmufw.elf --force,在文件夹下就可以发现,多了一个BOOT.BIN。工程/project-spec/meta-user/recipes-bsp/device-tree/files/ system-user.dtsi。对课程感兴趣可以私信联系。[3]编译u-boot。

2026-03-10 15:27:57 325

原创 LVDS系列42:Xilinx Ultrascale系 ADC LVDS接口参考方法(四)

其中rx_cntvaluein,rx_cntvalueout,rx_ce,rx_inc,rx_load,rx_en_vtc则是idelaye3输入延时原语的控制接口,按照idelaye3的时序控制即可;其中有连接物理接口的端口,下面是16个数据差分通道lvds_in_p/n[15:0],1个比特时钟差分数据通道lvds_clkin_p/n,1个帧时钟数据通道lvds_fclk_p/n,Fifo读使能fifo_rd_en用对应通道的空信号取反,如fifo_rd_en_13用~fifo_empty_13,

2026-03-06 15:10:06 294

原创 HDMI数据的接收发送实验(四)

当HMDL_RX_PHA=1,并且hdmi线缆连接到开发板上的hdmi接收端时,由于使用的FDV301N是NMOS,当vgs=1时,nmos导通,当vgs=0时,nmos不导通,故此时QH4导通,QH3不导通,RX_HPD输出为高电平,QH2导通,QH2的3号端口为低电平,故led灯V5亮。HMDL_RX_TXEN信号连接到AD8195的TX_EN端口,TX_EN用于控制AD8195的输出使能,当TX_EN=0时,AD8195的输出禁用,当TX_EN=1时,AD8195的输出启用。(这在处理中要注意)。

2026-03-04 15:28:34 308

原创 petalinux基本环境搭建

可以和硬件层开发工具Vivado相配合,使得开发者能够高效、快速地在Xilinx的FPGA(MicroBlaze CPU)和SoC平台(Versal、Zynq UltraScale+MPSoC、Zynq7 的ARM CPU)上进行Linux系统的定制、开发、构建、部署等一切工作。./petalinux-v2019.2-final-installer.run path/petalinux (path是你的路径,petalinux是创建的空文件夹)二、petalinux的安装。本文章由威三学社出品。

2026-03-03 14:35:47 448

原创 【无标题】 LVDS系列41:Xilinx Ultrascale系 ADC LVDS接口参考方法(三)

RX Delay Cascade延时级联不勾选,Ultrasce不级联的延时最大为1.25ns,Ultrascale+不级联的延时最大为1.1ns,本次时钟500M,2ns周期,1ns已经足够数据延时半个周期,不需要使用级联了;但是HSSIO的解串因子只有4和8,这里选择8,那么就是要把8个bit,也就是4个比特时钟,比特时钟500M,时钟周期2ns,那么一个8bit数据就是2*4=8ns,分频时钟为125M;选择单独接收方向RX ONLY,其他涉及到发送TX和双向BIDIR的,本次不使用;

2026-02-05 15:37:22 975

原创 HDMI数据的接收发送实验(三)

详细的时序块被分成四个描述符,每个描述符长度为18字节。本章节使用具体的1024*768的分辨率时序,来计算EDID中的描述详细分辨路的编码部分,了解这些内容后,可以根据自己的需求来定义推荐分辨率。在之前的EDID编码说明的基础上,与详细分辨率的参数对应,得出EDID的对应部分编码。我们已经讲述完了EDID编码的组成内容,其中最重要的部分是描述详细时序部分(H36~H47)。详细时序块可以用来描述任何时序。我们使用1028*768的分辨率,刷新频率为60Hz。二、 EDID的详细时序描述。

2026-02-04 16:17:03 303

原创 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十七讲)

这一期讲解的控件是视频控件,lv_video是 LVGL 库中的一个组件,用于视频的播放显示,需要外部的视频解码库(如FFmpeg)来处理视频文件。如上图所示是在GUI_guider中视频控件的使用,右侧是该控件的属性,可以控制视频是否自动播放以及源视频文件的路径选择。FFmpeg 扩展不使用 LVGL 的文件系统。您可以只需像往常一样在操作中传递图像或视频的路径即可系统或平台。// 或 false。注:视频播放可能对系统资源消耗较大,确保硬件支持。//以下是事件回调的使用。本文章由威三学社出品。

2026-02-03 10:58:24 372

原创 HDMI数据的接收发送实验(二)

如果想描述显示器名称,应该在Display Descriptor Definition的第2到第4个block(任选其一)中描述,占用18个字节,前五个字节固定为00 00 00 FC 00,表示下面13个字节来描述显示器名称,显示器名称的字母或数字用ASCII码描述,如果字节数少于13字节,那么后边加一个0A(换行),后面填充20(空格)。通过IIC协议往HDMI连接的eeprom中写入edid编码,使上位机可以识别edid的配置信息,识别成功后再通过HDMI输出端口发送edid支持的视频信息。

2026-01-28 15:51:21 578

原创 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十六讲)

如上图所示,在GUI_guider中进度文本控件的使用,将控件拖拽到画布中,然后在右侧的属性列表中更改配置,进度文本的数值范围、数值的步数以及进度文本的初始值和位数显示。这一期讲解的控件是进度条文本控件,textprogress是 LVGL 库中的一个组件,用于显示进度文本的控件。//顶部内边距:8px 其他三边内边距:0。//文本颜色:黑色(#000000)//设置进度文本的数值范围。对课程感兴趣可以私信联系。//字母间距:2px。//阴影宽度:1px。//阴影扩散:2px。本文章由威三学社出品。

2026-01-27 09:43:47 362

原创 HDMI数据的接收发送实验(一)

这10个字节用来表示显示器支持的色彩范围,地址为H19~H22,这10个字节数据表示8个参数,分别为red_x、red_y、green_x、green_y、blue_x、blue_y、white_x、white_y,每个参数为10bit,也就是8个10bit的参数用10个字节来表示,分配方式参照图10。本章节讲述了EDID的作用,及部分EDID的内容介绍,对于EDID,后面还会继续讲述剩余的EDID内容,并通过示例,来更改EDID编码,这样可以给自己的EDID命名,并设计自己想要的分辨率。

2026-01-23 15:49:15 586

原创 LVDS系列40:Xilinx Ultrascale系 ADC LVDS接口参考方法(二)

该芯片是使用的通道复用的逻辑,将奇数通道1,偶数通道2,这两个相邻的奇偶通道的数据,一起共用了DOUT1这个通道,这个DOUT通道,例如使用10bit模式,第一个10bit 携带奇通道数据,下一个10bit携带偶通道数据,下一个10bit携带奇通道数据,同一个数据通道,两个奇偶通道分时复用;1x和2x的区别,是1x,是1个LVDS通道携带2个ADC通道数据,2x,是1个LVDS通道携带4个ADC通道数据,本次实验使用默认的1x模式,那么根据上表,本次使用使用10序列化因子,50M帧时钟,1x数据模式,

2026-01-22 17:18:20 374

原创 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十五讲)

这一期讲解的控件是日期控件,datetext 是 LVGL 库中的一个组件,用于创建显示日期的控件。//绑定事件回调函数 screen_1_datetext_1_event_handler。//设置标签显示文本为 “2026/01/20”// 文本不透明度(255=完全不透明)// 阴影偏移(水平和垂直方向都不偏移)// 阴影不透明度(255=完全显示)// 阴影扩展(2像素,使阴影更扩散)// 字符间距(2像素)// 阴影宽度(1像素)// 文本颜色(黑色)// 背景颜色(白色)// 阴影颜色(黑色)

2026-01-20 14:26:45 619

原创 DDR4系列之ECC功能(十四)

本章节使用modelsim来仿真观察sin波形在工程中的传输流程,首先DDS产生sin波形,把产生的波形数据经过DDR4的乒乓流水后,sin波形依旧连续输出,依此验证工程的乒乓操作流程。上图波形为两个DDR4的读控制模块部分波形,两个DDR4交替进行读操作,并且当读数据有效时输出SIN波形数据,当读数据无效时,波形值保持不变。使用DDS产生sin波形,可以看出当aclken有效时,输出sin波形,当aclken为0时,数据保持不变。在切换DDR时刻,数据也是根据aclken有效时为连续sin波形。

2026-01-15 15:19:34 84

原创 LVDS系列39:Xilinx Ultrascale系 ADC LVDS接口参考方法(一)

在7系中,对LVDS接口处理,一般使用零散的原语组件去实现,如做输入线延时的IDELAYE2,做串转并操作的ISERDESE2,其实在Ultrascale架构中,也有与7系对应的组件原语IDELAYE3、ISERDESE3、原生原语TX_BITSLICE、RX_BITSLICE等,由于U系的架构比7系复杂,其原语的使用也比7系复杂,所以为了方便一些比较通用的操作,xilinx官方用一个High Speed SelectIO Wizard的IP,去控制原生原语去实现7系中我们所做的很多繁杂的连接工作;

2026-01-14 14:10:42 716

原创 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十四讲)

如上图所示,在GUI_guider中使用控件拖拽的方式在右侧的属性列表中,使用特定参数控制数字时钟的时间、颜色、位置大小以及主题等设置。这一期讲解的控件是时钟控件,dclock 是 LVGL 库中的一个组件,用于创建模拟时钟时用来用数字显示当前的时间。• 自定义外观:开发人员可以自定义时钟控件的外观,包括字体、颜色、背景等。//上内边距:7px 右、下、左内边距:0px。//设置文字颜色为#FFFFFF白色。//文字不透明度255。//创建数字时钟控件。//设置位置以及大小。//设置圆角半径为0。

2026-01-13 14:42:14 647

原创 LVDS系列38:Xilinx 7系 AD9253 LVDS接口设计仿真(五)

但是对于时钟路径,比特时钟进入FPGA引脚后,FPGA为了使用该时钟去采样去驱动ISERDESE2,不能直接连接到ISERDESE2的CLK端口,比特时钟需要经过以下路径:先进入时钟专用引脚,经过IBUFGDS或IBUFIO,经过BUFIO或BUFR,最后通过FPGA的全局或区域时钟树,布线到各个CLK或CLKDIV端口,可以看到,时钟路径会和数据路径完全不一致,且时钟路径延时会长的多,且无法去确定其延时,如果直接使用其去采集,采样结果将完全无法预测;这个时间段,时序在变化,采样点在数据眼上移动变化,

2026-01-08 15:28:18 411

原创 DDR4系列之ECC功能(十二)

我们已经使用递增数据验证了DDR的乒乓操作流程,接下来使用DDS生成正弦波,将正弦波通过DDR的乒乓流水后输出。在控制信号这里,因为在生成数据时,还需要判断握手信号有效时才产生数据,所以需要控制信号ACLKEN对输出数据进行控制发送。在DDS的配置界面中,使用100m系统时钟,输出一组数据,在参数选择栏里,选择系统参数,系统参数更容易配置,如果选择硬件参数,在之前的章节也有讲过如何配置。因为DDS产生的波形数据就是8位的数据,那么在最后经过乒乓流失后的数据也取8位数据,这样在仿真中可以看到波形情况。

2026-01-07 13:34:13 184

威三电子FPGA面试真题讲解

威三电子FPGA面试真题讲解

2021-07-09

空空如也

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

TA关注的人

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