例说FPGA:可直接用于工程项目的第一手经验【3.5】
第17章 工程实例15——工业现场实时监控界面设计本章导读既然是玩显示,并且是用灵活可编程的FPGA来玩,那么我们就一定要玩出点花样来。这不,笔者特意用这个工程实例设计了如同示波器般能够实时采集波形并逐点移动的显示界面,说起来简单,但其中奥妙恐怕只有读者深入其中才能够体会得到。17.1 功能概述本实例在之前几个案例的基础上加上了SF-BASE子板模块,使用该子板模块上的AD采集功能,将AD采集数据在7寸液晶屏上进行实时的播放,达到模拟工业现场实时监控界面的效果。如图17-1所示,这是本实例的功能框图。AD采集控制由一个专门的模块负责,通过片上系统的一个8pin输入PIO连接到NIOS II供读取。波形控制部分也有一个专门的模块组件,即wave_controller组件,挂在NIOS II的Avalon-MM总线下,在NIOS II软件层可以通过这个组件实现波形区域的设置、波形点数据的写入。与在前面工程中单纯只是LCD驱动不同,该工程还必须在lcd_driver.v模块中产生一些波形控制的特殊逻辑。在波形显示效果上,NIOS II每写入一个新的波形点数据,LCD上的波形就将会如同示波器一样向左滚动一个点,如果写入速度足够快,那么就可以达到和示波器一样的实时显示效果。该功能应用和心电图显示也非常类似。当然了,本实例工程除了上述的AD采集波形显示功能外,我们还演示了方波波形、三角波波形和正弦波波形的实时滚动播放,这三种波形和AD采集波形之间通过触摸屏点击显示界面的按钮进行切换。17.2 装配说明本工程实例的装配如图17-2所示。VIP板的3个插座都用上了,VIP核心板的P2连接SF-USB子板P1,SF-USB子板上的UART将用于显示界面背景图的烧录以及字库的烧录;VIP核心板的P3连接SF-BASE子板的P1,用于AD采集数据的传输;VIP核心板的P4连接SF-L70子板的P3,进行LCD的显示驱动。17.3 IP核配置——双口RAM①在新建的工程中,执行菜单Tools→MegaWizard Plug-In Manager命令。在弹出的选项卡中选择“Creat a new custom megafunction variation”,然后单击Next按钮。②接着选择我们所需要的IP核,如图17-3所示进行设置。·在“Select a megafunction from the list below”下面的列表框中选择IP核为“Memory Compiler→RAM:2-PORT”。·在“Which device family will you be using”后面的下拉栏中选择我们所使用的器件系列为“Cyclone IV E”。·在“Which type of output file do you want to create?”下面选择语言为“Verilog HDL”。·在“What name do you want for the output file?”下面输入工程所在的路径,并且在最后面加上一个名称,这个名称是我们现在正在例化的片内双口RAM IP核的名称,这里我们可以为其起名叫waveRAM,然后单击Next按钮进入下一个页面。

相关新闻

别再拍脑袋上线了:用大数据把 A/B 测试和在线实验平台这件事干“正经”

别再拍脑袋上线了:用大数据把 A/B 测试和在线实验平台这件事干“正经”

别再拍脑袋上线了:用大数据把 A/B 测试和在线实验平台这件事干“正经” 说句实在的,这几年我在后台看到最多的一句话是: 「这个功能先上线试试吧,不行再改。」 听着是不是很熟? 产品拍板、技术加班、运营祈祷&#xff…

2026/5/17 3:28:24 阅读更多 →
从零开始用自定义 Triton 内核编写 FlashAttention-2

从零开始用自定义 Triton 内核编写 FlashAttention-2

本文实现 FlashAttention-2 的前向传播,具体包括:为 Q、K、V 设计分块策略;流式处理 K 和 V 块而非物化完整注意力矩阵;实现在线 softmax 算法保证数值稳定性;支持因果和非因果两种注意力模式;用 Triton au…

2026/7/5 1:02:34 阅读更多 →
《惊爆技巧!程序人生靠技术投资,实现学习成长大跨越》

《惊爆技巧!程序人生靠技术投资,实现学习成长大跨越》

《惊爆技巧!程序人生靠技术投资,实现学习成长大跨越》 副标题:从迷茫到复利增长的程序员学习方法论 摘要/引言 你是否也曾经历过这样的困境: 每天刷技术文章、学新框架,却总感觉“学了就忘”,用不上实际…

2026/5/17 3:28:23 阅读更多 →

最新新闻

如何快速上手Azure WebJobs SDK:30分钟搭建你的第一个后台任务

如何快速上手Azure WebJobs SDK:30分钟搭建你的第一个后台任务

如何快速上手Azure WebJobs SDK:30分钟搭建你的第一个后台任务 【免费下载链接】azure-webjobs-sdk Azure WebJobs SDK 项目地址: https://gitcode.com/gh_mirrors/az/azure-webjobs-sdk Azure WebJobs SDK是一个强大的框架,简化了在Azure中编写后…

2026/7/6 16:37:52 阅读更多 →
掌握yuzu模拟器:从零开始构建高性能Switch游戏环境

掌握yuzu模拟器:从零开始构建高性能Switch游戏环境

掌握yuzu模拟器:从零开始构建高性能Switch游戏环境 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu yuzu作为目前最受欢迎的任天堂Switch开源模拟器,为PC玩家提供了在Windows、Linux和Androi…

2026/7/6 16:37:52 阅读更多 →
安卓修改大师多语言实战:从零掌握values目录规范与高棉语包添加

安卓修改大师多语言实战:从零掌握values目录规范与高棉语包添加

安卓修改大师多语言实战:从零掌握values目录规范与高棉语包添加 简介 安卓修改大师(官网 www.apkeditor.cn)是一款功能强大的APK反编译与定制工具,无需编程基础即可轻松实现应用的汉化与多语言版本制作。本文将系统讲解Android多…

2026/7/6 16:35:50 阅读更多 →
如何在ComfyUI中轻松实现AI视频生成:WanVideoWrapper完全指南

如何在ComfyUI中轻松实现AI视频生成:WanVideoWrapper完全指南

如何在ComfyUI中轻松实现AI视频生成:WanVideoWrapper完全指南 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 你是否曾经梦想过将文字描述变成生动的视频画面?或者让静态…

2026/7/6 16:35:50 阅读更多 →
SwiftUI与AppKit架构融合:eul如何重构macOS状态监控应用开发范式

SwiftUI与AppKit架构融合:eul如何重构macOS状态监控应用开发范式

SwiftUI与AppKit架构融合:eul如何重构macOS状态监控应用开发范式 【免费下载链接】eul 🖥️ macOS status monitoring app written in SwiftUI. 项目地址: https://gitcode.com/gh_mirrors/eu/eul 在macOS应用开发领域,传统AppKit与现…

2026/7/6 16:31:44 阅读更多 →
告别背景音乐干扰:LTX-2.3 Foley LoRA让视频音效更真实的终极技巧

告别背景音乐干扰:LTX-2.3 Foley LoRA让视频音效更真实的终极技巧

告别背景音乐干扰:LTX-2.3 Foley LoRA让视频音效更真实的终极技巧 【免费下载链接】LTX-2.3-Foley-LoRA 项目地址: https://ai.gitcode.com/hf_mirrors/FuzzPuppy/LTX-2.3-Foley-LoRA 你是否曾为视频自动生成的背景音乐感到困扰?想要真实的音效却…

2026/7/6 16:29:42 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻