当前位置:首页 >> 工学 >>

基于VHDL有限状态机控制器的设计方法


控制系统
文章编号 :1008-0570(2010)05-1-0074-02

《微计算机信息》 (测控自动化 )2010 年第 26 卷第 5-1 期

基于 VHDL 有限状态机控制器的设计方法
A controller design method based on VHDL Finite state machine
(空军工程大学)

李 云 冯永浩 孟 涛

LI Yun FENG Yong-hao MENG Tao
摘要 : 有 限 状 态 机 作 为 形 式 化 描 述 方 法 具 有 独 特 优 点 , 在 利 用 VHDL 进 行 电 子 系 统 控 制 功 能 的 设 计 和 实 现 中 , 有 限 状 态 机 已 成 为 有 力 的 手 段 和 途 径 。 通 过 一 个 循 环 控 制 器 的 设 计 实 例,说 明 了 利 用 有 限 状 态 机 的 基 本 流 程 和 方 法,并 给 出 了 程 序 与 仿 真 结果。 关键词 : VHDL; 有限状态机 ; 循环控制器 中图分类号 : TP332 文献标识码 : A

技 术 创 新

Abstract: Finite state machine as a formal description method has unique advantages. In the use of VHDL for control of electronic systems and implementation, finite state machine has become a powerful tool and means. The basic processes and methods using finite state machine is illustrated through a examples of periodic controller design. The procedures and simulation results are given. Key words: VHDL; finite state machine; periodic controller

1 引言
有限状态机 FSM(finite state machine)是一种基本的、 简单 的、 重要的形式化技术,在软件设计中常常采用。FSM 就是描述 一个由有限个独立状态组成的过程,这些状态可以互相迁移,直 到最终离开这个过程。 采用有限状态机可以使设计过程直观简 单易于理解,大大加快设计流程。 随着硬件设计软件化趋势的加 剧,在运用 VHDL 硬件描述语言设计数字系统时,利用有限状态 机成为了可靠方便的途径, 有许多电路功能可以利用有限状态 机的设计方案来描述和实现。 控制器作为电子系统设计的核心 部分,在 EDA 软件平台上,借助有限状态机表示方法符合人的 思维逻辑的特性,将控制功能用有限状态机来建模实现,有许多 优越之处,已使 FSM 成为大型控制电路设计的有力工具。

照预先设定的状态进行顺序运行, 在运行和控制方式上类似于 控制灵活和方便的 CPU, 而在设计中能使用各种完整的容错技 术,使其在运行速度和工作可靠性方面又都优于 CPU。 ② 用 VHDL 设计有限状态机,设计方案相对固定,程序层 次分明, 结构清晰, 特别是可以定义符号化枚举类型的状态,使 VHDL 综合器对状态机具有强大的优化功能。 ③ 状态机容易构成性能良好的同步时序模块,为了消除电 路中的毛刺现象,在状态机设计中有多种设计方案可供选择,相 比其他硬件设计方法,电路的完善性更能得到保证。 因此,在控制灵活、 高速、 高可靠性要求的系统设计中应用 VHDL 设计有限状态机将是非常实用的好选择。

3 用 VHDL 设 计 有 限 状 态 机 的 方 法
3.1 设计流程 数字系统中状态机传统的设计方法十分复杂, 首先是绘制 出控制器的状态转移图,由此列出状态转移表,再合并状态转移 表中等价状态项, 然后根据状态转移表求出次态方程和输出方 程,画出设计电路图。而利用 VHDL 设计状态机,不必进行繁杂 的状态分配、 状态表绘制和化简,更不必画设计电路图和搭试硬 件电路测试逻辑功能,这些工作全可以由 EDA 工具完成。 用 VHDL 设计状态机,是通过简便地定义状态变量,将状态 描述成进程,每个状态均可表达为 CASE_WHEN 语句结构中的 一条 CASE 语句,状态的转移通过 IF_THEN_ELSE 语句实现,并 输出信号以控制其它进程,从而实现所需功能。

2 有限状态机的基本特性
有限状态机由有限的状态及其相互之间的转移构成, 在任 意时刻 t 机器只能处于有限状态中的一个。当在某一瞬时 t 机 器接收到一个输入事件时,状态机产生一个输出,同时也可能伴 随着状态的转移。 状态的转移和输出信号不仅与输入有关,而且 与机器在前一瞬间的状态有关。有限状态机 FSM 把复杂的控 制逻辑分解成有限稳定状态,在每个状态上判断事件,变连续处 理为离散数字处理,符合计算机的工作特点。同时,因为有限状 态机具有有限个状态,所以可以在实际的工程上实现。 但这并不 意味着其只能进行有限次的处理。相反, 有限状态机是闭环系 统,可以用有限的状态,处理无穷的事务。 在 VHDL 语言中用有限状态机来设计实用系统,可使程序 结构较简单。无论与 VHDL 的其它设计方案相比,还是与可完 成相同功能的 CPU 相比,状态机有其独特的难以超越的优越性, 主要表现在以下几个方面: ① 有限状态机由纯硬件构成,工作方式是根据控制信号按
李 云 : 副教授
- 74 - 360 元 / 年 邮局订阅号:82-946

图 1 VHDL 设计有限状态机的流程 《现场总线技术应用 200 例》

您的论文得到两院院士关注

控制系统
(3)彩灯控制器模块的程序设计及仿真 由图 2 的时序可以设计彩灯控制器模块的有限状态机,彩 灯控制器模块正常工作时共有三种状态, 其状态转移图如图 4 所示。 当复位信号 rst=1 有效时, 控制器模块 cai_deng 的状态由 s0→s1→s2 循环,当 rst=0 无效时,控制器模块的状态均回到 s0 状 态。用有限状态机编写的 VHDL 彩灯控制器模块的源程序如下: --用有限状态机编写的 VHDL 彩灯控制器模块的源程序: library ieee; use ieee.std_logic_1164.all; entity cai_deng is port(rst,clk:in std_logic; led_r,led_g,led_y: out std_logic); end; architecture one of cai_deng is type states is (s0,s1,s2); signal state:states; begin process(clk,rst) variable a:integer range 0 to 2; variable b:bit ; begin if rst ='0' then state <=s0;led_r <='0';led_g <='0'; led_y<='0'; elsif (clk'event and clk='1')then if b='0' then a:=0; else a:=a+1; end if; case state is when s0 => led_r<='1';led_g<='0';led_y<='0'; if a=1 then state<=s1;b:='0'; else state<=s0;b:='1'; end if; when s1 => led_r<='0';led_g<='1';led_y<='0'; if a=2 then state<=s2;b:='0'; else state<=s1;b:='1'; end if; when s2 => led_r <='0';led_g<='0';led_y<='1'; if a=0 then state<=s0;b:='0'; else state<=s2;b:='1'; end if; end case; end if; end process ; end; 将该彩灯控制器模块的程序在 EDA 工具软件 QuartusII 平 台上进行编译、 仿真,可得到如图 5 所示的仿真波形。由仿真波 形可以看出,仿真结果正确,实现了预期的控制功能。

有此外,与 VHDL 的其它描述方式相比,状态机的 VHDL 表 修改和 述丰富多样,程序层次分明,结构清晰,易读易懂,在排错、 模块移植方面也有其独到的特点。 VHDL 设计有限状态机的 用 设计流程如图 1 所示。 首先,根据系统整体功能要求确定状态数 量、 状态转移条件和各状态输出信号,画出状态转移图;其后,按 照状态转移图编写有限状态机的 VHDL 设计程序; 之后, 利用 EDA 工具对有限状态机功能进行仿真验证。 3.2 设计实例 下面以一个循环彩灯控制器电路为例来说明有限状态机 的设计。 (1)系统功能及分析 实现循环彩灯控制的方案很多,不同的控制方案,其设计方 法和思路也不一样。 本文介绍设计的循环彩灯控制器,采用两种 频率控制红、 黄三个发光管循环闪亮,要求红灯、 绿、 绿灯、 黄灯 先后点亮的时间长短比为红:绿:黄=2:3:1。 由以上系统功能可以看出, 本设计的关键是要产生如图 2 所示的时序关系。其中,led_r、 绿灯、 led_g、 led_y 分别表示红灯、 黄灯的控制信号。

图 2 循环彩灯控制器的时序图 (2)循环彩灯控制器整体设计 按照系统功能要求, 循环彩灯控制器的整体框图如图 3 所 频率选择控制模块和彩灯控制 示,它主要由 2 输出分频器模块、 器模块三部分组成。其中 2 输出分频器模块 fen_pin24 将输入 的时钟信号 clk 进行 2 分频、 分频得到 2 种频率信号 div2、 4 div4,同时还产生频率选择信号 div16,div16 应是 div4 的倍数,以 控制每种频率维持的时间长短。频率选择控制模块 xuan_ze 根 据地址选择端 s 将选择不同频率的时钟信号送给彩灯控制器 模块,实现彩灯闪烁的频率变化。 彩灯控制器模块 cai_deng 是整 个电路设计的核心,它负责整个设计的输出效果,即彩灯图案的 样式变化,rst 为复位信号,低电平有效。

技 术 创 新

图 3 彩灯控制器整体框图

图 5 彩灯控制器模块的仿真波形 图 4 彩灯控制模块的状态转移图 《P LC 技术应用 200 例》

(下转第 103 页)
邮局订阅号:82-946 360 元 / 年 - 75 -

您的论文得到两院院士关注

数采与监测
(上接第 75 页) 将 fen_pin24、 xuan_e 和 cai_deng 模块按照图 3 所示电路用 原理图输入进行连接构成循环彩灯控制器的顶层文件, 并在 QuartusII 平台上进行编译、仿真, 最终下载到可编程逻辑器件 EP1K30QC208-3 中,经过测试,循环彩灯控制器正常工作,完全 符合设计要求。

4 结束语
有限状态机及其设计技术是数字系统中实现高效率可靠 性逻辑控制的重要途径。 基于 VHDL 的数字系统电路设计实际 上是在 EDA 软件平台上,使硬件设计软件化,电路设计程序化, 从而提高了设计的灵活性和可靠性,降低了电路的设计成本,缩 短了设计周期。 以上有限状态机的设计方法具有通用性, 对于较为复杂的 图 5 软件系统架构 有限状态机可采用多个进程分别完成任意复杂组合逻辑和时 序逻辑,包括进程间状态值的传递以及状态转换值的输出。 本文创新点: 在用 VHDL 设计硬件数字系统电路时, 特别 是含有控制器的系统设计,运用有限状态机的方法,编程思路清 晰,程序易懂易读,简单明了,体现了现代数字系统的硬件设计软 件化,控制器电路设计程序化的新理念。 参考文献 [1]周飚,谢晓阳.有限状态机在 RTC 设计中的分析与应用[J].计算 机系统应用,2008,5:77-78。 [2]李云,侯传教,冯永浩.VHDL 电路设计实用教程[M] . 北京:机 械工业出版社,2009。 [3]井新宇.基于 VHDL 设计有限状态机 FSM 的方法[J].信息技术 与信息化,2004,4:29-31。 [4]赵明富.基于 CPLD 的彩灯控制器 [J].微计算机信息,2008,5-1: 53-54。 作者 简 介 :李云(1962-),女,汉族,江苏苏州人,空军工程大学副教 授,主要从事通信电子新技术方面研究。 Biography:LI Yun (1962 - ), Female, Han nationality, Jiangsu Province. Air Force Engineering University, Associate Professor. Main Field: New technologies of electronic communication (710077 陕西西安 空军工程大学电讯工程学院 ) 李 云 冯 永浩
孟 涛

5 结论
本文设计实现的并行实时采集系统,可以非常方便、 简易、 低成本的实现多达 64 路串行总线并行工作的数据实时采集、 监控。尤其是 FPGA 的模块化设计大大提升了系统的灵活度和 并行实时性。 同时软件接口设计上的创新,进一步提升了系统的 处理性能。 本文创新点:将各种串行总线控制器集成在 FPGA 中,方便 的实现了并行实时数据采集,同时模块化的设计可以无缝扩展。 参考文献 [1]The I2C-BUS specification Version 2.1, Philips Semiconductors, January 2000 [2]System Management Bus (SMBUS) Specification Version 2.0, SBS Implementers Forum, August 2000 [3]Designing with SMBus 2.0 Dale Stolizka Analog Devices, Inc. January 2001 [4]李家星.嵌入式系统和 FPGA 的总线控制器的设计实现.微计 算机信息[J].2007,1-2, 242-243 [5]Transmitting Data and Power over a One -Wire Bus, Dan Awtrey, Dallas Semiconductor, the Journal of Applied Sensing Technology, 1997 [6]Spartan-3E FPGA Family datasheet DS312 V3.8, Xilinx Corp. August 2009 [7]吴明晖.基于 ARM 的嵌入式系统开发与应用[M].北京:人民邮 电出版社,2004 [8]ATMEL. ARM920T-based Mierocontroller AT91RM9200 Guide [Z]. 2003. 8. 85-96. [9]AT91RM9200 User Manual [Z]. ATMEL, 2005. 作 者 简 介 :李家星,(1979—)女(汉),黑龙江人,天津科技大学海洋 学院讲师,硕士,主要研究方向有:信号处理,计算机应用。 Biography:LI Jia -xing, (1979 - ), female (Han), Heilongjiang Pronvince,Working University, University Of Science and Technology Of Tianjin,Major, signal processing, computer application. (300457 天津 天津科技大学 ) 李家星 (Tianjin University of Science and Technology,300457, China) LI Jia-xing 通讯地址 :(300457 天津 天津科技大学 ) 李家星
(收稿日期:2010.03.08)(修稿日期:2010.04.25)

技 术 创 新

(The Telecommunication Engineering Institute,Air Force Engineering University, Xi'an, Shaanxi 710077, China) LI Yun FENG Yong-hao MENG Tao 通 讯 地 址 :(710077 陕 西 省 西 安 市 丰 镐 路 1 号 空 军 工 程 大 学 电 讯工程学院六系电子线路室 ) 李 云
(收稿日期:2009.06.15)(修稿日期:2009.09.15)

微计算机信息杂志 旬刊 每册定价:10 元 一年订价:360 元
地址: 北京市海淀 区 中 关 村 南大 街 乙 12 号 天 作 1 号 楼 B 座 812 室 微计算机信息 邮编:100081 电话:010-62132436 010-82168297 (T/F )

欢迎订阅 欢迎刊登广告
邮局订阅号:82-946 360 元 / 年 - 103 -

《P LC 技术应用 200 例》


相关文章:
基于VHDL有限状态机控制器的设计方法.pdf
基于VHDL有限状态机控制器的设计方法 - 控制系统 文章编号 :1008-05
一种应用VHDL语言设计有限状态机控制器的方法.pdf
一种应用VHDL语言设计有限状态机控制器的方法 - 第2期 2003 年 4 月
基于VHDL语言的有限状态机设计方法.pdf
基于VHDL语言的有限状态机设计方法 - 计算机技术与应用进展 .04-02 基于V D 语言的有限状态机设计方法’ HL 朱维勇 傅桂生 合肥工业大学电气与自 动化学院 2....
6VHDL状态机设计.pdf
?状态机 VHDL 描述层次分明,结构清晰,易读 易懂。 ?基于有限状态机技术设计的控制器其工作速度 大大优于CPU。 ?基于有限状态机技术设计的控制器其可靠性也 ...
10 VHDL有限状态机设计_图文.ppt
EDA技术 第10章 VHDL有限状态机设计 10.1 VHDL...状态机分类 ? ? ? ? 从状态机信号输出方式上...设计 Moore型状态机应用实例1A/D采样控制器...
用VHDL实现智能洗衣机控制系统有限状态机的设计.pdf
VHDL实现智能洗衣机控制系统有限状态机的设计 - 《电子技术》2004 年第 7 期 计算机应用 用 VHDL 实现智能洗衣机控制系统 有限状态机的设计 西南交通大学电气...
基于VHDL的三层电梯控制器的标准设计_图文.doc
基于VHDL的三层电梯控制器的标准设计_电子/电路_工程科技_专业资料。广西工学院 ...运用有限状态机的 设计方法,设计了两个进程相互配合,状态机进程作为主要进程,...
第八章有限状态机的VHDL设计_图文.ppt
基于有限状态机技术设计的控制器其可靠性也优于CPU。 8.2 一般有限状态机的设计 8.2.1 一般有限状态机VHDL组成 一般有限状态机VHDL VHDL组成 ? 说明部分:...
基于VHDL的六层电梯控制器的标准设计_图文.doc
基于VHDL的六层电梯控制器的标准设计_电子/电路_工程科技_专业资料。广西工学院 ...运用有限状态机的 设计方法,设计了两个进程相互配合,状态机进程作为主要进程,...
基于VHDL的两种交通信号控制器的设计与比较.pdf
基于VHDL的两种交通信号控制器的设计与比较 - 文中提出了基于VHDL语言的两种交通信号控制器的设计与比较,分别采用有限状态机和计数器两种设计方法,给出了控制器的...
基于VHDL的两种交通信号控制器的设计与比较_图文.pdf
文中提出了基于 VHDL 语言的两种交通信号控制器的设计与比较,分别采用有限状态机和计数器两种设计方法,给出了控制 器的部分 VHDL 代码,利用 QuartusII 进行全程...
课程设计--基于VHDL的三层电梯控制器的设计.doc
课程设计--基于VHDL的三层电梯控制器的设计_电子/电路_工程科技_专业资料。德州...摘要本设计运用有限状态机方法,在结构体最前端首先定义了十个状态;然后 在...
第7章 VHDL有限状态机设计_图文.ppt
EDA技术实用教程 第7章 VHDL有限状态机设计 内容提要 ?有限状态机及其设计技术,时使用数字系统设计中的重要组成部分,是实现高效、高可靠性逻辑控制的重要途径。 ?...
第六章 状态机的VHDL设计_图文.ppt
第六章 状态机的VHDL设计状态机的分类: 摩尔型状态...11 12 例:用摩尔状态机设计一个A/D采样控制器。...基于FPGA状态机的流水灯... 2页 免费 简单状态机...
基于VHDL有限状态机的交通信号灯控制系统设计_论文.pdf
基于VHDL有限状态机的交通信号灯控制系统设计 - 交叉路口交通灯控制的现状,对交通顺畅十分重要.以可编程逻辑器件(CPLD)为核心,应用VDHL语言和有限状态机的方法设计...
第7章 VHDL有限状态机设计_图文.ppt
排除毛刺 教学要求:学习和掌握用VHDL设计不同类型的有限状 态机的方法; 了解EDA工具和设计中关注的问题:综合 器优化、毛刺信号的克服、控制速度、状态 编码方式等...
基于VHDL语言的A_D采样控制器设计.pdf
数字/ 模拟电路 罗朝霞: 基于 VHDL 语言的 A/ D 采样控制器设计 基于 VHDL ...因为本 设计采用的 是双进程有限状态机的设计方法, 为了便于观察, 还可设 置...
基于VHDL的两种交通信号控制器的设计与比较_论文.pdf
基于VHDL的两种交通信号控制器的设计与比较 - 文中提出了基于VHDL语言的两种交通信号控制器的设计与比较,分别采用有限状态机和计数器两种设计方法,给出了控制器的...
第7章 VHDL有限状态机设计N_图文.ppt
EDA技术实用教程 第7章 VHDL有限状态机设计 内容提要 ?有限状态机及其设计技术,时使用数字系统设计中的重要组成部分,是实现高效、高可靠性逻辑控制的重要途径。 ?...
高速SDRAM控制器设计的FPGA实现.pdf
器(SDRAM)控制器通常用有限状态机实现,对于一般的设计方法,由于状态数量多,状态...贾 制华SDRAM控 制器的设计VHDL实现[J]. 电子技术应用, 2005, 12(9):...
更多相关标签: