记一次基于FPGA的VGA显示四操作数计算器工程的开发流程——(1)从顶层设计说起

这篇具有很好参考价值的文章主要介绍了记一次基于FPGA的VGA显示四操作数计算器工程的开发流程——(1)从顶层设计说起。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先值得说明的是,在这个项目几乎完成之际,笔者才愈发体会到了硬件思维和软件思维的云泥之别。不幸的是,在此项目的实现过程中,绝大部分代码的思维仍然是软件思维,因此该项目主要模块的设计部分可能并不能体现硬件操作的独到之处,不符合硬件工程师的基本设计思维,所以此主题文章仅用于学习交流以及记录一次FPGA项目设计的过程和细节,内部的时序逻辑、算法细节等都很难经得起推敲,仅供参考。

先给出这个设计的题目:

  设计一个计算器。至少能够实现四个操作数的加减乘除,中间可以任意添加括号,使用VGA实时显示输入的内容和最终的计算结果,并通过串口输出数据到从机,在其上的数码管上显示结果。

  在这个项目中,除了给组员分工了VGA显示,其他所有模块均由笔者来完成,因此可以说笔者几乎是全权负责了此工程的设计,所以经验收获颇丰😂www

  首先,拿到一个工程,笔者一般遵从顶层到底层的设计原则,即先根据题目要求设想整体上实现功能大概需要哪些模块,每个模块的功能是什么,各模块之间如何连接和通信等。然后再针对各个具体的模块逐个击破,最后在顶层进行模块连接和整体封装。

  所以先审题,得出这个计算器的具体过程是:用户通过矩阵键盘输入一个数学式子,如果式子合法,则按照数学规定的优先级执行计算,最后得到结果。不难看出,首先要解决的就是如何将用户的输入存入板子;然后识别该输入的内容,并判断该输入是否符合数学式的规则,最后根据识别的结果进行优先级计算。所以各主要模块的功能就很清晰了:

(1)录入模块:负责将用户的输入进行编码并存入到buffer中,并且可以实现功能按键相应的功能,如回退,左移,右移,清零(复位),等于(确认)。

(2)识别模块:根据编码识别录入模块输出buffer中的各元素,如操作数,运算符,各部分的位置信息等,形成为一个完整的数学算式,并且可以判断该输入是否合法。

(3)计算模块:根据识别模块输出的算式信息(如括号位置、运算符类型和操作数等)进行优先级判断,然后进行计算,输出计算的结果。

 

  简单画了下各模块的执行过程:

记一次基于FPGA的VGA显示四操作数计算器工程的开发流程——(1)从顶层设计说起

各模块的执行框图                  

  以上便为初步的顶层设计结果,看似简单明了,实则是经过一系列思考和优化总结来的(笑),下面记录一下设计初期的一些思考过程。

  开始时笔者并没有将录入和识别模块区分开,而是先进行了整体实现流程的分析,整理出了如下框图:

记一次基于FPGA的VGA显示四操作数计算器工程的开发流程——(1)从顶层设计说起

记一次基于FPGA的VGA显示四操作数计算器工程的开发流程——(1)从顶层设计说起

  该框图的思路是,首先规定每个操作数上限为两位数,然后每次执行输入,则进行判断,如果是清零则回到初始状态;如果是数字则进行组合,如输入依次为7、1,那么存入寄存器变量A=7*10+1=71;如果是运算符则记录该运算符并重新进入读取输入状态;如果是括号则进入括号状态,括号状态如上图所示,实际上就是重复之前的判断过程。然后重复执行上述过程,直到读到等于号为止。

  该过程相当于前文所述的录入和识别模块同时进行,深入思考后会发现,该思路仅对于形如12+52*76/62之类没有括号或只有极少括号的算式比较适用,一旦有多个括号,就容易陷入逻辑混乱,而且代码的编写难度也会大大增加,不但难以执行之后的优先级判断,更难以进行输入合法性的判别,因而不能满足需求。

  于是经过后续思考,笔者将上述过程分割为了录入模块和识别模块两个部分,分别执行录入字符串和识别合法算式的功能,这一思路在后续实践过程被证明是合理可行的。

  以上便是此计算器项目开发流程的第一篇记录,后续将对各个模块的编写细节进行深入阐述。

  这篇文章同时也是笔者的第一篇blog,因此可能编辑手法不熟练,语言逻辑不清晰,行文思路不明了,希望能在以后的撰写过程中慢慢进步(〜 ̄△ ̄)〜

——洩矢诹团子 2023.5.13

记一次基于FPGA的VGA显示四操作数计算器工程的开发流程——(1)从顶层设计说起文章来源地址https://www.toymoban.com/news/detail-442815.html

到了这里,关于记一次基于FPGA的VGA显示四操作数计算器工程的开发流程——(1)从顶层设计说起的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【m_listCtrl !=NULL有多个运算符与操作数匹配】2023/9/21 上午11:03:44

    2023/9/21 上午11:03:44 m_listCtrl !=NULL有多个运算符与操作数匹配 2023/9/21 上午11:04:00 如果您在编译或运行代码时遇到\\\"M_listCtrl != NULL有多个运算符与操作数匹配\\\"的错误提示,这通常是由于以下几个原因之一: 错误使用运算符:在条件判断语句中,应该使用双等号(==)进行相等性比

    2024年02月07日
    浏览(10)
  • 【滑动窗口】长度最小的子数组|无重复字符的最长子串|最大连续1的个数 III|将 x 减到 0 的最小操作数

    【滑动窗口】长度最小的子数组|无重复字符的最长子串|最大连续1的个数 III|将 x 减到 0 的最小操作数

    1. 长度最小的子数组 - 力扣(LeetCode) (1)方法一:暴力列举出所有的子数组的和 时间复杂度:O(n**2):枚举所有子数组O(n**2) (2)方法二: 利用 单调性(两个指针都不回退) ,使用\\\" 同向双指针 \\\"(其实就是 滑动窗口 )来优化 那么 滑动窗口过程 是怎么样的? 1le

    2024年03月22日
    浏览(11)
  • 基于FPGA的VGA图像显示

    基于FPGA的VGA图像显示

    引言:本文我们介绍利用FPGA实现VGA图像显示,主要介绍VGA硬件接口、VGA接口时序原理以及FPGA代码实现VGA接口时序、仿真等内容。 VGA(Video Graphics Array)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口

    2024年02月06日
    浏览(9)
  • FPGA——基于VGA协议显示彩条、图片、字符

    FPGA——基于VGA协议显示彩条、图片、字符

    本篇博客主要是深入了解VGA协议,理解不同显示模式下的VGA控制时序参数(行频、场频、水平/垂直同步时钟周期、显示后沿/前沿等概念和计算方式)。并通过Verilog编程,实现以下VGA显示:1、屏幕上显示彩色条纹;2、显示自定义的汉字字符;3、输出一幅彩色图像。 VGA(Vi

    2024年02月04日
    浏览(10)
  • FPGA_工程_基于Rom的VGA图像显示

    FPGA_工程_基于Rom的VGA图像显示

    一 工程框图 框图中,CLK_in,Vga_ctrl,Vga_pic模块已有,只需要对顶层模块进行修改,并将rom ip例化添加到Vga_pic模块的.v文件中,对Vga_pic的.v文件进行一定修改。 二 理论补充 显示图像的方法:                           使用matlab将图像格式转化为,.mif数据文件,再使用.m

    2024年02月20日
    浏览(11)
  • 【FPGA实验】基于DE2-115平台的VGA显示

    【FPGA实验】基于DE2-115平台的VGA显示

    VGA(Video Graphics Array)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号以及

    2024年02月03日
    浏览(10)
  • 【FPGA】VGA显示文字、彩条、图片——基于DE2-115

    【FPGA】VGA显示文字、彩条、图片——基于DE2-115

    **VGA(Video Graphics Array)**视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号

    2024年02月02日
    浏览(9)
  • 基于FPGA:运动目标检测(VGA显示,原理图+源码+硬件选择)

    基于FPGA:运动目标检测(VGA显示,原理图+源码+硬件选择)

        话不多说,先上视频看效果。 基于FPGA:运动目标检测 开发板Altera:EP4CE10F17C8 摄像头:OV5640 缓存数据:SDRAM 板子是自己制作的     根据帧差法的实现流程,设计的双端口SDRAM控制器,一侧读写端口用做帧缓存,另一个端口用来缓存视频流,如图所示。     在使用

    2024年02月04日
    浏览(6)
  • 基于Quartus Prime平台FPGA关于VGA显示的模块化设计:VGA八种单色屏1s切换显示、横条纹、竖条纹、棋盘格显示、显示模式按键可调、数码管显示单色屏序号

    基于Quartus Prime平台FPGA关于VGA显示的模块化设计:VGA八种单色屏1s切换显示、横条纹、竖条纹、棋盘格显示、显示模式按键可调、数码管显示单色屏序号

    VGA(Video Graphics Array)是一种显示接口标准,它最初由IBM于1987年推出。VGA协议定义了计算机视频输出信号的格式和特性。它主要用于连接计算机和显示器之间的传输,实现图像和视频的显示。 VGA协议支持最高分辨率为640x480像素,色彩深度为16位色(即65,536种颜色)。它使用模

    2024年02月03日
    浏览(25)
  • FPGA学习——VGA显示

    FPGA学习——VGA显示

    VGA(Video Graphics Array)是IBM在1987年随PS/2机⼀起推出的⼀种视频,具有分辨率⾼、显⽰速率快、颜⾊丰富等优点,在彩 ⾊显⽰器领域得到了⼴泛的应⽤。不⽀持热插拔,不⽀持⾳频传输。对于⼀些嵌⼊式VGA显⽰系统,可以在不使⽤VGA显⽰卡和计算机的 情况下,实现VGA图像的显⽰

    2024年02月04日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包