例说FPGA:可直接用于工程项目的第一手经验【3.3】

例说FPGA:可直接用于工程项目的第一手经验【3.3】

第15章 工程实例13——基于VGA显示器的720p的广告机设计

本章导读

本章工程与第10章的电子点菜单有异曲同工之妙,只不过一个是将图像存储显示功能应用在了“点菜单”上,一个是将图像存储显示功能应用在了“广告机”上。

15.1 功能概述

本实例的基本架构和电子点菜单项目实例的基本一致。只是将电子点菜单实例中的7寸LCD换成了通用的VGA显示器(很多液晶电视基本也都支持VGA输出功能,本实例演示就用了一台电视的VGA接口进行显示)。显示的分辨率也由电子点菜单的800×480提升到了1080×720(720p)。这个实例中,不仅要实现720p图片的下载存储操作,同时要在正常工作中,循环播放预存储在NAND Flash芯片中的广告图片。整个工程实例的功能框图如图15-1所示。

NIOS II处理器通过Avalon-MM总线与系统定制外设进行数据交互,主要的外设包括一个UART外设、FLASH控制器和VGA显示驱动模块。UART控制器用于接收上位机软件发送的图片数据。

FLASH控制器实现图片数据写入和读出用于显示。VGA显示驱动模块通过DDR2控制器读取DDR2中存储的图像送往VGA显示器进行显示。

15.2 装配说明

本实例工程除了SF-VIP核心板,还需要SF-USB子板的UART串口实现图片的下载操作,以及SF-VGA子板用于驱动VGA显示器。整个系统的装配连接如图15-2所示。

15.3 Verilog代码解析

本实例有6个大模块,2个大层级。其层次结构如图15-3所示。

·vip.v是顶层模块,其下例化了5个模块,即sys_ctrl子模块、ddr2_avl_bridge.v模块、ddr_controller.v模块、lcd_driver.v模块和vip_qsys系统子模块。该模块仅仅用于子模块间的接口连接,以及连
接到FPGA外部接口的定义,该模块中未作任何的逻辑处理。
·sys_ctrl.v二级子模块中例化了PLL模块,并且对输入PLL的复位信号以及PLL锁定后的复位信号进行“异步复位,同步释放”的处理,确保系统的复位信号稳定可靠。
·vip_qsys.v模块则是Qsys系统的例化,该模块例化了一个NIOS II处理器,作为Avalon-MM总线的主机;Avalon-MM总线上可访问的从机有片内RAM、System ID、JTAG UART、LED PIO和
Timer外设。
·ddr2_avl_bridge.v模块作为连接ddr2_controller的桥接模块,用户逻辑中要写入或读出DDR2的数据都需要通过该模块例化的DDR2读数据缓存FIFO或DDR2写数据缓存FIFO实现。
·ddr2_controller.v二级子模块也是一个软核IP,实现DDR2的时序控制功能,并且通过一个简单的Avalon接口实现DDR2和FPGA逻辑之间的读写数据传输。
·lcd_driver.v二级子模块产生1280×720分辨率的VGA显示驱动逻辑。
1.ddr2_controller.v模块代码解析
略,请参考例程vip_ex2。
2.ddr_avl_bridge.v模

Read more

【博客之星2025年度总评选】逐梦2026:我的2025博客回溯与AI运营之旅

【博客之星2025年度总评选】逐梦2026:我的2025博客回溯与AI运营之旅

【个人主页】Francek Chen 【人生格言】征途漫漫,惟有奋斗! 【创作初心】以代码为笔,记录成长;以博客为媒,传递价值。 【热门专栏】大数据技术基础 | 数据仓库与数据挖掘 | Python机器学习 | PyTorch深度学习 文章目录 * 前言 * 一、个人成长与盘点 * (一)机缘与开端 * (二)进阶与成长 * (三)收获与分享 * 二、年度创作历程回顾 * (一)创作历程概览 * (二)荣誉与成就 * 三、博客创作日常 * 四、个人业余生活爱好 * 五、未来憧憬 前言 回顾 2025 年,沉浸于博客创作的浩瀚海洋,尽情领略技术与文字交融碰撞所迸发出的迷人魅力。指尖在键盘上跳跃,每一次敲击都是对知识的提炼;鼠标轻点发布,每一回操作都是与世界的深度对话。从初涉技术时的懵懂无知,到如今在大数据领域自信发声,

Apache IoTDB(5):深度解析时序数据库 IoTDB 在 AINode 模式单机和集群的部署与实践

Apache IoTDB(5):深度解析时序数据库 IoTDB 在 AINode 模式单机和集群的部署与实践

引言 Apache IoTDB 设计之初就专为物联网(IoT)场景而生,旨在提供一个集高性能数据写入、海量数据存储、低延迟分析查询于一体的一站式解决方案。 Apache IoTDB 时序数据库【系列篇章】: No.文章地址(点击进入)1Apache IoTDB(1):时序数据库介绍与单机版安装部署指南2Apache IoTDB(2):时序数据库 IoTDB 集群安装部署的技术优势与适用场景分析3Apache IoTDB(3):时序数据库 IoTDB Docker部署从单机到集群的全场景部署与实践指南4Apache IoTDB(4):深度解析时序数据库 IoTDB 在Kubernetes 集群中的部署与实践指南 一、IoTDB——AINode介绍 AINode 是 IoTDB 在 ConfigNode、DataNode 后提供的第三种内生节点,通过与 IoTDB 集群的 DataNode、

【征文计划】基于Rokid 眼镜 的AI天气应用+GPS定位+AI旅游规划

【征文计划】基于Rokid 眼镜 的AI天气应用+GPS定位+AI旅游规划

文章目录 * 本文选用的技术包括: * 一、主要流程 * 新增三个辅助类,原有文件做对应改造: * 二、功能 A:GPS 自动定位 * 2.1 实现路径 * 2.2 核心代码:LocationHelper.kt * 2.3 意图识别:我们添加 GPS 的关键词 * 三、功能 B:对话上下文工程 * 3.1 核心数据结构 * 3.2 续播意图的两种形态 * 四、功能 C:AI 旅游规划 * 4.1 为什么用 LLM, 而不是规则 * 4.2 核心代码:AiTravelPlanHelper.kt

AI 开发必用的4个skills组合,用来流畅掌控AI开发流程 ,灵活控制AI(opencode skills)

AI 开发必用的4个skills组合,用来流畅掌控AI开发流程 ,灵活控制AI(opencode skills)

skills 一种技能增强器。 skills 可以理解为升级版的提示词,它的文件记录了某个skill(技能)的元信息,就是描述这个skills的名称等信息, 另外它的文件中还记录了skills的技能实现步骤。 以下4个skills在AI项目开发中,我认为必不可缺一。 这4个skills的引入,可更为方便我们去介入AI,控制AI,给AI制定边界。 我会用一个音乐机器人项目开发来介绍这4个skills,如何介入AI开发流程,如何行云流水的控制AI。 指令式 控制AI 开发流程的主控调度器:有4个SIKLLS 在我的项目中.opencode目录中存在4个skills, 4个skills技能结合和.opencode目录同级的AGNETS.md文档,AGNETS.md是主控配置文件, 是AI 开发流程的主控调度器,负责协调三个专业技能包(毒蛇产品经理、UI设计师、全栈开发工程师、ui-ux-pro-max) ui-ux-pro-max技能包,我120%的推荐,减少了不少UI配色的塑料感,可在文末看我此次,用技能包开发的UI界面,做一个效果对比。 skills技能指令: 我