news 2026/4/24 18:13:52

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
例说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按钮进入下一个页面。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 21:43:56

小程序毕设项目:基于springboot+小程序的平安代驾平台小程序(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/17 18:37:01

【计算机毕业设计案例】基于uniapp+springboot微信小程序的代驾系统的设计与实现基于springboot+小程序的平安代驾平台小程序(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/22 18:33:06

40 个定时任务,完美诠释 RocketMQ 设计精髓!

今天来分享 RocketMQ 的定时任务。通过这些定时任务,能让我们更加理解 RocketMQ 的消息处理机制和设计理念。 从 RocketMQ 4.9.4 的源代码上看,RocketMQ 的定时任务有很多,今天主要讲解一些核心的定时任务。 1 架构回顾 首先再来回顾一下 …

作者头像 李华
网站建设 2026/4/17 16:47:59

信不信?这个 SQL 题,可以难倒大部分人

周末的时候,一个读者问了我一个很有意思的问题,是关于 MySQL 中 update 加锁的问题。 他用下面这张数据库表,做了个 MySQL 实验的时候。 发现事务 B 的 update 不会阻塞,而事务 C 的 update 会阻塞,都是对 id 10 这条…

作者头像 李华