【从VHDL代码到真实硬件:设计有限状态机】

学习如何通过创建一个4位二进制计数器,在VHDL中实现有限状态机。编译后,它将在连接到带有输入开关和LED显示器的自定义PCB的Altera CPLD开发板上运行。

本文引用地址:https://www.eepw.com.cn/article/202409/462551.htm
本项目是我“从VHDL代码到真实硬件”系列的第二部分,在该系列中,我们使用基于硬件的方法和可编程逻辑IC设计简单的电子系统。这些系统为重要设计概念提供了极好的介绍,这些概念也可以应用于更复杂的项目。

有限状态机项目概述

在这个项目中,我将介绍有限状态机(FSM)的开发。具体来说,我将构建一个4位二进制计数器,带有四个输出LED和一个四位DIP开关模式输入

逻辑将使用VHDL(一种硬件描述编程语言)编写,并上传到复杂可编程逻辑(CPLD)芯片。CPLD是一种可重复编程的现成逻辑门IC,类似于FPGA。

本项目将使用与我之前设计的8位算术逻辑单元(ALU)相同的硬件和软件设置:

1.png

Altera Max II EPM240 CPLD开发板,

英特尔的Quartus Prime Lite版IDE。

如果您想复习可编程逻辑集成电路和Quartus Prime套件的基础知识,您需要查看之前的项目。

什么是有限状态机?

在深入设计之前,我们先快速回顾一下有限状态机。有限状态机是顺序逻辑电路的抽象数学模型,在任何给定时刻,它只能在有限数量的状态中运行。

FSM可以在每个时钟周期在其状态之间转换一次。下一个状态基于外部输入和当前状态(这意味着它使用了记忆逻辑)。

有限状态机可用于检测或生成序列,是电梯、交通灯、自动售货机和电子锁等系统的基础。

二进制计数器

有限状态机(FSM)的一种特殊实现是二进制计数器。这些电路的设计目标是迭代并显示所需的二进制数序列,通常使用一系列相互连接的触发器构建。二进制计数器的每个新状态都必须由输入脉冲触发,该脉冲可以来自外部源或电路自己的时钟信号。

有了这些背景知识,让我们深入了解一下4位二进制计数器的代码。

FSM二进制计数器的VHDL代码

我们将在VHDL文件的顶部声明几个库,开始为二进制计数器编写代码:

2.png

港口定义

接下来,我们将为我们的电路创建一个名为fsm的实体,并定义其输入和输出端口:

3.png

在此代码片段中,我们定义了:

4.png

流程和数据类型定义

既然我们已经定义了FSM实体,我们就可以为我们的电路创建一个架构。这个架构将有三个过程:

状态记忆。

下一个状态逻辑。

输出逻辑。
全文链接:https://www.eepw.com.cn/article/202409/462551.htm

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值