当前位置:首页 >> 信息与通信 >>

论文-用VHDL设计有限状态机的方法


计算机应用

用 #$%& 设计有限状态机的方法
湖 南 衡 阳 南 华 大 学 电 气 工 程 学 院 ! )&%##% " 单 长 虹
摘 要 ! 以 离 心 机 定 时 顺 序 控 制 器 的 设 计 为 例 ! 阐 述 了 用 >?43 设 计 有 限 状 态 机 的 方 法 ! 讨 论 了 状态机

如何消除状态机输出信号的"毛刺#$ 关 键 词 ! >?43

547

离心机

毛刺
制器的框图如图 & 所示!
$3’ % $#


现代数字系统的设计一般都采用自顶向下的模块 化设计方法! 即从整个系统的功能出发"将系统分割成 若干功能模块! 在自顶向下划分的过程中"最重要的是 将系统或子系统按计算机组成结构那样划分成控制器 和若干个受控制的功能模块! 受控部分通常是设计者 们所熟悉的各种功能电路 "设计较为容易! 主要任务是 设计控制器"而其控制功能可以用有限状态机来实现 ! 因而有必要深入探讨有限状态机的设计方法!

’&

/0102 ’% 9:
电磁阀及 指示灯

控 制 器

( $3( 34 567 8 ;
译码器

数 模 块

! 状态机设计的一般方法
传统的设计方法是首先绘制出控制器的状态图" 并由此列出状态表"再合并消除状态表中的等价状态 项! 在完成状态寄存器的分配之后"根据状态表求出 次态及输出方程"最后画出设计原理图! 采用这种方 法设计复杂状态机将会十分繁杂! 利 用 >?43 设 计 状 态 机 " 不 需 要 进 行 繁 琐 的 状 态 分配#绘制状态表和化简次态方程! 设计者不必使用 卡诺图进行逻辑化简"不必画电路原理图"也不必搭 试硬件电路进行逻辑功能的测试"所有这些工作都可 以 通 过 547 工 具 自 动 完 成 ! 应 用 >?43 设 计 状 态 机 的具体步骤如下$ %%& 根 据 系 统 要 求 确 定 状 态 数 量 # 状 态 转 移 的 条 件和各状态输出信号的赋值"并画出状态转移图’ % & & 按 照 状 态 转 移 图 编 写 状 态 机 的 >?43 设 计 程 序’ % ! & 利 用 547 工 具 对 状 态 机 的 功 能 进 行 仿 真 验 证! 下面以离心机定时顺序控制器的设计为例"说明 状态机的设计方法!

<=2=
数字拨码盘

图 & 离心机控制器框图

图 & 中计数模块是由三个带异步复位和并行预 置 的 计 数 器 组 成 ! 其 中 $:@6A5( % 是 & 位 加 B 减 法 计 数器" 用于控制从加料至刮刀回程的各工序时间"其 中加料和卸料工序为加计时" 其余工序为减计时’

$:@6A5( & 是 ! 位 减 法 计 数 器 " 用 于 控 制 大 洗 网 的 时
间 ’ $:@6A5( ! 是 & 位 加 法 计 数 器 " 用 于 控 制 循 环 工 作次数! 译码器用于选通与各工序相对应的预置数! 图 & 中 ’%#’& 分 别 是 加 料 和 卸 料 限 位 开 关 信 号 "(

C(%#(&#(!D 为 计 数 器 减 为 零 % 或 循 环 次 数 等 于 预 置
数&时发出的信号"它们都可作为状态转移的控制信 号 ! 34 % 34 % # 34 & # 34 ! & 为 并 行 置 数 控 制 信 号 " $3( % $3( % # $3( & # $3( ! & 为 异 步 清 零 信 号 " 567 % 567 % #

567 & & 为 计 数 使 能 信 号 " 8 为 加 B 减 计 数 控 制 信 号 " ;
% ; % # 7 # E # $ & 为 译 码 器 控 制 信 号 " 9: 为 各 工 序 电 磁 阀和指示灯控制信号! 系统工作方式如下$当系统处于初始状态或复位 信 号 /0102 有 效 时 " 系 统 处 于 复 位 状 态 ! 按 下 自 动 工 作
$# ’% (% (%

"

定时顺序控制状态机的设计
在化工生产中"离心机用于固#液分离的工艺流

程"如图 % 所示!
加料!一次干燥!加水!二次干燥!卸料!刮刀回程 循环 6 次 大洗网 图 % 离心机的工艺流程

"#

"%

"&

"!

")

"*

(! (& " %& (! " %% " %# (% ’& ".

"+ (% "",

从加料至刮刀回程循环 ! 次之后"进入大洗网工 序"随后又开始进入新一轮顺序循环工作! 该系统控

图 ! 离心机控制器的状态转移顺序和转移条件

!!

计算机应用
表 ! 离心机控制器的各状态输出信号值

键 "#! 系 统 进 入 加 料 工 序 并 开 始 自 动 控 制 离 心 机 的 运 行 " 以 加 水 工 序 为 例 ! 首 先 在 加 水 预 置 数 状 态 # $%&

>(E=J =S )(B(’ 8 [ ! [ ’W(J F+)!\8[![OF+)Q\8[![OF+):\8[![OR\8[#[O(J%!\ 8 [ # [ O (J% Q \ 8 [ # [ O E!\8[#[OF\8[#[O>\8[#[O%\8[#[O SD \ 8 ] ####### ] O +, ! \ 8 [ # [ O +, Q \ 8 [ # [ O +, : \ 8 [ # [ O J(Z’*B’%’( \ 8 B?B’(X*)(B(’ O (+B( F%B( K)(B(J’*B’%’( =B $W(J B?B’(X*)(B(’ 8 ^ !! F+)!\8_!_OF+)Q\8_!_OF+):\8_#_OR\8_#_O (J% ! \ 8 _ # _ O (J% Q \ 8 _ # _ O E!\8_!_OF\8_!_O>\8_#_O%\8_!_O SD\8‘#######‘O+,!\8[#[O+,Q\8[#[O+,:\8[![O =S U F # 8 [ ! [ V ’W(J J(Z’*B’%’( \ 8 +D%, O (+B( J(Z’*B’%’( \ 8 B?B’(X*)(B(’ O (J, =S O $W(J +D%, 8 ^ F+)!\8[#[OF+)Q\8[#[OF+):\8[#[OR\8[#[O (J% ! \ 8 [ ! [ O (J% Q \ 8 [ # [ O E!\8[#[OF\8[#[O>\8[#[O%\8[#[O SD\8‘######!‘O+,!\8[#[O+,Q\8[#[O+,:\8[#[O =S U P ! 8 [ ! [ V ’W(J J(Z’*B’%’( \ 8 DJ(*,)? O (+B( J(Z’*B’%’( \ 8 +D%, O (J, =S O
()

’() *+, $ 时 ! 状 态 机 输 出 信 号 -. ! 开 启 加 水 电 磁 阀 及 指 示灯! 同时输出信号 / 控制选通加水时间预置数!在 01 ! 信 号 的 控 制 下 ! 将 预 置 数 送 入 ".23456 ! % 此 时 537 ! 8 ! ! 9 8 ! ! 使 计 数 器 为 减 计 数 状 态 " 然 后 ! 在 下 一 个 时 钟 周 期 进 入 加 水 工 作 状 态 & $%’() $ ! 并 开 始 减 计
时 % 当 计 时 为 零 时 ! 计 数 器 发 出 借 位 信 号 6! 作 为 此 工序结束的信号送入状态机!使其转入下一个工作状 态% 根据系统要求可画出状态转移图如图 : 所示% 其 中图 : 表示各状态转移的顺序和转移条件!表 ! 列出 了与各状态相应的输出信号值% 按 照 状 态 转 移 图 可 编 写 状 态 机 的 ;<10 源 程 序 % 采用双进程描述法设计的离心机控制器源程序如下’ +=>)%)? =((( @ AB( =((( C B’,*+DE=F* !!GH I %++ @ (J’=’? FDJ’)D++() =B KD)’ L F # M )(B(’ N =J B’,*+DE=F O F+P ! M P ! M P Q M ) ! M ) Q M ) : N =J B’,*+DE=F @ F+) ! M F+) Q M F+) : M R M (J%+ M (J% Q N DA’ B’,*+DE=F @ +, ! M +, Q M +, : M E ! M % M > M F N DA’ B’,*+DE=F @ SD N DA’ B’,*+DE=F*T(F’D) U G ,D$J’D # V V O (J, FDJ’)D++() O %)FW=’(F’A)( B’%’(*X%FW=J( DS FDJ’)D++() =B ’?K( B’%’(’?K( =B LB?B’(X*)(B(’Y+D%,YDJ(*,)?Y$%’()*+,Y $%’()Y ’$D*,)?*+, Y ’$D*,)? Y AJ+D%,*)(B(’ Y AJ+D%, Y )(’A)J*’)=K Y ,(F=B=DJ Y $%BW Y F?F+(*+, V O B=EJ%+ K)(B(J’*B’%’( Y J(Z’*B’%’( N B’%’(’?K( O >(E=J B’%’(*FDX> N K)DF(BB L K)(B(J’*B’%’( Y F # Y )(B(’ Y P ! Y P Q Y ) ! Y ) Q Y ) : V

(J, F%B( O (J, =S O (J, K)DF(BB B’%’(*FDX> O

!"

计算机应用
"#$#%&’()’*%+ , -.)’%"" / ’(* 0 1 .%"%# 2 3%456 57 .%"%# 8 9 0 9 #:%6 -.%"%6#;"#<#% = > "?"#%@;.%"%# A %("57 .5"564;%+4% / ’(* 0 2 #:%6 -.%"%6#;"#<#% = > 6%B#;"#<#% A %6+ 57 A %6+ -.)’%"" "#<#%;’()’*%+ A %6+ "#<#%;@<’:56% A 利 用 CDE 软 件 FEG H -(I" ! 对 该 程 序 进 行 编 译 ! 仿真"其仿真波形见图 J# 从图 J 仿真波形图上可以看出"状态机的输出信 号有许多$毛刺%产生# 如何消除这些$毛刺%是下面 将讨论的问题# 编码+ *在 F)).% 型 或 F%<(? 型 状 态 机 基 础 上 " 用 时 钟 同 步输出信号( 本设计采用后两种方案"较简便( 雷格码的特点 是)当状态机改变状态时"状态向量中仅 0 位发生变 化( 与前面用可枚举类型定义的状态变量不同"现在 选用常数来指定各状态变量的取值为格雷码( 修改部 分设计程序如下) <.’:5#%’#I.% "#<#%;@<’:56% )7 ’)6#.)((%. 0 5" "546<( -.%"%6#;"#<#% N 6%B#;"#<#% , "#+;()45’;O%’#). P Q +)R6#) S 2 A ’)6"#<6# "?"#%@;.%"%# , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T SSSS T + ’)6"#<6# ()<+ , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T SSS0 T A ’)6"#<6# )6%;+.? , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T SS00 T A ’)6"#<6# R<#%.;(+ , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T SS0S T A ’)6"#<6# R<#%. , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T S00S T A ’)6"#<6# #R);+.?;(+ , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T S000 T A ’)6"#<6# #R);+.? , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T S0S0 T A ’)6"#<6# I6()<+;.%"%# , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T S0SS T A ’)6"#<6# I6()<+ , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T 00SS T A ’)6"#<6# .%#I.6;#.5- , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T 00S0 T A ’)6"#<6# +%’5"5)6 , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T 0000 T A ’)6"#<6# R<": , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T 000S T A ’)6"#<6# ’?’(%;(+ , "#+;()45’;O%’#). / Q +)R6#) S 2 , > T 0S0S T A
,,

! 在状态机设计中如何消除!毛刺"
在同步电路中"一般情况下$毛刺%不会产生重大影 响 # 因 为 $毛 刺%仅 发 生 在 时 钟 有 效 边 沿 之 后 的 一 小 段 时 间内"只要在下一个时钟有效 边 沿 到 来 之 前 $毛 刺 %消 失 即可# 但是"由于状态机的输出信号都是作为其它功能 模块的控制信号"如果这些控制信号作为异步控制&如 本 系 统 中 的 KLM ’ ! 三 态 使 能 控 制 或 时 钟 信 号 来 使 用 " 则将会使受控模块发生误动作 "造成系统工作混乱 ( 因 此"在这种情况下必须保证状态机的输出没有$毛刺%( 消除状态机输出信号的$毛刺%有以下三种方案) *在 状 态 机 输 出 信 号 较 少 的 情 况 下 " 直 接 把 状 态 作为输出信号+ *对 于 顺 序 迁 移 的 状 态 机 " 选 择 雷 格 码 作 为 状 态

若要完全消除状态机 的 $毛 刺 %"则 应 采 用 第 三 种 方 案( 这时 "设计程序要作相应改变"状态的转移和输出信 号的赋值要写在同一个时钟进程中( 综 上 所 述 " 采 用 UVDL 设 计 状 态 机 " 能 够 大 大 降 低 设 计难度( 使用双进程描述风格编写

UVDL 设 计 程 序 " 可 以 清 楚 地 在 一 个 进
程中确定状态的转移和对输出的赋值" 而且具有易于建立-理解和维护的优点 ( 特别针对大型或具有大量状态转移和输 出信号的状态机设计" 将会更加显示出 它的优势( 对于状态机输出信号所产生 的 $毛 刺 %" 可 以 按 照 系 统 的 要 求 " 根 据 不 同的情况采用相应的设计方案予以消 除( 参考文献 0 孟 宪 元 W 可 编 程 XYZK 集 成 数 字 系 统 W
北 京 ) 电 子 工 业 出 版 社 " 0[\]

^ 朱 明 程"孙 普 译W可 编 程 逻 辑 系 统 的 U V DL 设 计 技 术 W 南 京 ) 东 南 大 学 出 版
社 " 0\\_

Q 潘 松 " 王 国 栋 WUVDL 实 用 教 程 W 成 都 )
电 子 科 技 大 学 出 版 社 " ^SSS

J 边 计 年 " 薛 宏 熙 译 W 用 UVDL 设 计 电 子
线 路 W 北 京 ) 清 华 大 学 出 版 社 " ^SSS
图 ! 离心机控制器的仿真波形图

& 收 稿 日 期 ) ^SSS ‘ 0^ ‘ 0a ’

!"


相关文章:
论文-用VHDL设计有限状态机的方法.pdf
论文-用VHDL设计有限状态机的方法 - 计算机应用 用 #$%& 设计
VHDL中的有限状态机教学方法研究_论文.pdf
VHDL中的有限状态机教学方法研究 - 第3 8卷第 6期 201 6年1 2月
基于VHDL语言的有限状态机设计方法.pdf
基于VHDL语言的有限状态机设计方法 - 计算机技术与应用进展 .04-02 基于V D 语言的有限状态机设计方法’ HL 朱维勇 傅桂生 合肥工业大学电气与自 动化学院 2....
基于VHDL有限状态机控制器的设计方法.pdf
基于VHDL有限状态机控制器的设计方法 - 控制系统 文章编号 :1008-05
有限状态机的VHDL设计.pdf
有限状态机的VHDL设计 - 第 24 卷第 2 期 No.2 Vol.24 文
有限状态机的VHDL设计及优化.pdf
有限状态机的VHDL设计及优化 - 第 28 卷第 1 期 2004 年 1 月
有限状态机的VHDL设计.pdf
有限状态机的VHDL设计 - 第 24 卷第 2 期 Vol.24 No.2 文
第7章 VHDL有限状态机设计_图文.ppt
第7章 VHDL有限状态机设计 - EDA技术实用教程 第7章 VHDL有限状态机设计 内容提要 ?有限状态机及其设计技术,时使用数字系统设计中的重要 组成部分,是实现高效、...
第7章 VHDL有限状态机设计N_图文.ppt
第7章 VHDL有限状态机设计N - EDA技术实用教程 第7章 VHDL有限状态机设计 内容提要 ?有限状态机及其设计技术,时使用数字系统设计中的重要 组成部分,是实现高效、...
基于FPGA的LCD12864液晶汉字显示设计 及VHDL语言的应用.ppt
本科毕业论文(设计) 基于FPGA的LCD12864汉字显示设计 1、引言 2、系统设计 (...? 1.3.2一般状态机的VHDL设计 ? 用VHDL设计有限状态机方法有多种,但最一般...
状态机及其VHDL设计.doc
状态机及其VHDL设计 - 第7章 状态机及其 VHDL 设计 内容提要: 内容提要:有限状态机(Finite State Machine,简称 FSM)是一类很重要的时序电路, 是许多数字...
基于FPGA的LCD12864汉字显示设计_图文.ppt
本科毕业论文(设计) 本科毕业论文(设计) 基于FPGA的LCD12864汉字显示设计 1、...用VHDL设计有限状态机方法有多种,但最一般和 VHDL设计有限状态机方法有多种,但...
用VHDL实现智能洗衣机控制系统有限状态机的设计.pdf
用VHDL实现智能洗衣机控制系统有限状态机的设计 - 《电子技术》2004 年第 7 期 计算机应用 用 VHDL 实现智能洗衣机控制系统 有限状态机的设计 西南交通大学电气...
基于VHDL的六层电梯控制器的标准设计_图文.doc
广西工学院 毕业设计(论文)任务书 课题名称 电梯控制器的 VHDL 实现 院专班学...运用有限状态机的 设计方法,设计了两个进程相互配合,状态机进程作为主要进程,...
基于VHDL有限状态机的交通信号灯控制系统设计_论文.pdf
基于VHDL有限状态机的交通信号灯控制系统设计 - 交叉路口交通灯控制的现状,对交通顺畅十分重要.以可编程逻辑器件(CPLD)为核心,应用VDHL语言和有限状态机的方法设计...
状态机及其VHDL设计.doc
状态机及其VHDL设计 - 同步状态机的原理、结构和设计同步状态机的原理、结构和设计... 状态机的一般组成用 VHDL 设计有限状态机方法有多种, 但最一般和最常用的状...
用VHDL和有限状态机设计交通信号灯控制系统.pdf
用VHDL有限状态机设计交通信号灯控制系统 - 第 15 卷第 6 期 200
第10章 VHDL有限状态机设计_图文.ppt
第10章 VHDL有限状态机设计 - 《EDA技术实用教程VHDL潘松(第五版)》课件(共14章)... 第10章 VHDL有限状态机设计 10.1 VHDL状态机的一般形式 10.1.1 状态机...
基于VHDL语言有限状态机的电子密码锁设计_论文.pdf
基于VHDL语言有限状态机的电子密码锁设计 - 201 3年第 1O期 ( 总第
第四章 状态机及其VHDL设计_图文.ppt
第四章 状态机及其VHDL设计 - 第四章 状态机及其VHDL设计 有限状态机(Finite State Machine,简称FSM) 是一类很重要的时序电路,是许多数字系统的核心 部件...
更多相关标签: