基于VHDL的有限状态机设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图F "#$% F
编码状态机仿真图
O*4#2$ ,-.-/ (.01#2/ ,#(3+.-/ 4#.$5.(
从仿真结果可以看出, 采用编码状态机的设计方法, 可以克服符号状态机综合后存在的不可靠问题 % 当进入无效状态时, 系统可以在下一个周期时恢复到正常状态, 即具有自启动功能 % 这样的状态机才会保 持稳定, 具有很好的可靠性 %
!"#$%& ’( )$&$*" +*,*" -,./$&" 0,#"1 ’& 23!4
,V+2 F75H4./,D0%+ Q7.5W;4
( D-997/7 -> %97:<C4:;9 L.>-CH;<4-. ;.J D-.<C-9 %./4.77C4./, A74B4./ 1.4N7C=4<6 -> ?7:@.-9-/6, A74B4./ $)))"",D@4.;)
[$]潘松, 黄继业 ! %&’ 技术实用教程 [(] 科学出版社, ! 北京: "))" ! [(] *’+ ,-./, 01’+2 34567! ’8894:;<4-.= -> %&’ ?7:@.-9-/6 ! A7B4./:,:47.:7 *C7==, "))" !( 4. D@4.7=7) ["]黄正谨, 徐坚, 章小丽, 等 ! D*E& 系统设计技术入门与应用 [(] 电子工业出版社, ! 北京: "))" ! — — 2I4J4./ ;.J ’8894:;<4-.= [ (] 01’+2 F@7./5B4., G1 34;., F0’+2 G4;-594,7< ;9! D*E& ,6=<7H &7=4/.— ! A74B4./:*IK94=@4./ 0-I=7 -> %97:<C-.4:= L.JI=<C6,"))" !( 4. D@4.7=7) [M]李广军, 孟宪元 ! 可编程 ’,LD 设计及应用 [(] 电子科技大学出版社, ! 成都: "))) ! [ (] EL 2I;./5BI., (%+2 G4;.56I;.! *C-/C;HH;K97 ’,LD &7=4/. ;.J ’8894:;<4-.= ! D@7./JI: 1.4N7C=4<6 -> %97:<C-.4: ,:47.:7 ;.J "))" !( 4. D@4.7=7) ?7:@.-9-/6 *C7==, [O]潘松, 王国栋 ! P0&E 实用教程 [(] 电子科技大学出版社, ! 成都: "))" ! [(] *’+ ,-./, Q’+2 2I-5J-./! *C-/C;HH;K97 ’,LD J7=4/. ;.J ’8894:;<4-.= ! D@7./JI: 1.4N7C=4<6 -> %97:<C-.4: ,:47.:7 ;.J ?7:@5 .-9-/6 *C7==, "))" !( 4. D@4.7=7) [R]$)ST L%%%, [ ,] ,<;.J;CJ P0&E E;./I;/7 U7>7C7.:7 (;.I;9 !
第 +! 卷 第 ! 期 #""/ 年 ! 月
北
京
工
业
大
学
学
报
IJKLE.’ J5 MCFIFEH KEF$CL6F)N J5 )CB%EJ’JHN
$OP( +! EO( ! I>:( #""/
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
!
结束语
使用 6789 设计的有限状态机并不总是稳定可靠的 % 当有限状态机的状态个数是 F 的乘幂时, 且采
"O
北
京
报
"))R 年
用的编码方式是二进制编码或格雷码编码时, 有限状态机是稳定可靠的 ! 若有限状态机的状态个数不是 " 的乘幂, 且采用符号状态机, 或是状态机的状态个数是 " 的乘幂, 而采用的是独热码编码方式时, 状态机就 不是稳定可靠的 ! 所以, 当设计有限状态机时, 如果状态数 ! 与所使用的状态寄存器数 " 满足 ! # " " 的 关系, 则既可以采用符号状态机, 也可以采用编码状态机 ! 若不满足此关系式, 则应采用编码状态机的方 法来设计, 这样才能保证所设计的有限状态机的稳定与可靠 ! 参考文献:
收稿日期:#""+2"-2"- ( 作者简介:宋泽明 (!3-4 1 ) , 男, 黑龙江宝清人, 硕士 (
!!
北
京
工
业
大
学
学
报
!77L 年
!"!
符号状态机的设计 通常的有限状态机设计中, 使用 ! 个进程来描述状态机, 一个进程描述组合逻辑, 另一个进程描述时
序逻辑 " 在本设计中为了突出显示状态的转换, 只使用描述组合逻辑的进程, 并把当前状态 #$%&%’ 作为输 入, 次态 ($%&%’ 作为输出, 以便于仿真观察 " 而省略了时序逻辑进程 " 其源代码简写如下: )*+,&,- *’’’; .$’ *’’’ " $%/ )01*# 2234 " &)); 5&1’ 561 *$ ; %-5’ $%&%’ *$( $%7, $%2, $%!, $%8, $%4) ’(/ 561; )*+,&,- *’’’; .$’ *’’’ " $%/ )01*# 2234 " &)); .$’ 90,6 " 561 " &)); ’(%*%- :$; *$ ( 50,% :*( $%/ )01*# <’#%0, (2 /09(%0 7) ; #$%&%’ :*( $%&%’; ($%&%’ :0.% $%&%’; *(5.% (! /09(%0 7) ) ; 0.%5.% :0.% $%/ )01*# <’#%0, ’(/ :$;; &,#=*%’#%.,’ +’=&< 0: :$; *$ +’1*( ( #$%&%’, 5,0#’$$ *(5.%) +’1*( #&$’ #$%&%’ *$ 9=’( $%7 > ? “777” ; 0.%5.% @ > “77”%=’( ($%&%’ @ > $%7; *: *(5.% > ’)$’ ($%&%’ @ > $%2; ’(/ *:; …… 9=’( $%4 > ? “277” ; 0.%5.% @ > “77”%=’( ($%&%’ @ > $%4; *: *(5.% > ’)$’ ($%&%’ @ > $%7; ’(/ *:; 9=’( 0%=’,$ > ? “222” ; 0.%5.% @ > ($%&%’ @ > $%7; ’(/ #&$’; ’(/ 5,0#’$$; ’(/ +’=&<; 使用 A-(5)*:- 进行综合, 目标器件选择 B)%’,)& 公司的 CDEF27G27, A-(5)*:- 默认其编码方式为独热码, 综合后采用 HBF I JDKA!进行仿真, 仿真结果如图 2 所示 "
有限状态机 567 ( 89:9;< =;>;< ?>@A9:<) 及其设计技术是实用数字系统设计中实现高效率高可靠逻辑控 制的重要途径 ( 用 $%’& 语言可以设计不同表达方式和不同实用功能的状态机, 都有相对固定语句和程 序表达方式, 只要把握了这些固定的语句表达部分, 就能根据实际需要写出各种不同风格的 $%&’ 状态
[!] 绘制状态表、 化简次态方程等, 而利用 $%&’ 可以 机 ( 传统的状态机设计方法需进行繁琐的状态分配、
避免这些繁琐的过程, 直接利用状态转移图进行状态机的描述, 所有的状态均可表达为 B.6C D%CE 结 构中的一条 B.6C 语句, 而状态的转移则通过 F5 )%CE C’6C 语句实现 ( 此外, 与 $%&’ 的其它描述方式 相比, 状态机的 $%&’ 表述丰富多样, 程序层次分明, 结构清晰, 易读易懂; 在排错、 修改和模块移植方面也
第!期
宋泽明等:基于 6789 的有限状态机设计
FG
图! "#$% !
符号状态机仿真图
&’()*+ ,-.-/ (.01#2/ ,#(3+.-/ 4#.$5.(
[:, ;] 从图 ! 的仿真结果可以看出, 使用 6789 语言设计的符号状态机, 在使用综合工具进行综合时, 综
合器会删除掉那些未定义的状态, 进而使生成的电路得到优化 % 有时这种优化并不可靠 % 例如: 电路上电 时进入一种无效状态, 或者由于工作环境的影响使得电路进入到一种不期望的工作状态, 那么电路就有可 能不能恢复到正常的工作状态 % 从传统的设计状态机方法的角度来看, 就是电路不具有自启动功能 % 即 该状态机具有不稳定性 % !"! 编码状态机的设计 为便于比较, 仍采用独热码编码方式编码, 对上述源程序包集合 <=> 改动如下: +#)5.5’ #///; 3,/ #/// % ,-4 +*$#0 !!?: % .++; @.0A.$/ @A$ #, (: 4*C2-* D) ; ,3)-’@/ ,-.-/ #, ,-4 +*$#0 B/0-*5 “DDDD!” ; 0*2,-.2- ,-D : ,-.-/ : E “DDD!D” ; 0*2,-.2- ,-! : ,-.-/ : E “DD!DD” ; 0*2,-.2- ,-F : ,-.-/ : E “D!DDD” ; 0*2,-.2- ,-G : ,-.-/ : E “!DDDD” ; 0*2,-.2- ,-: : ,-.-/ : E /24 @A$; 经 &’2@+#H’ 综合, 目标器件仍选择 I+-/5+. 公司的 "9JK!D=!D, 再采用 LIK M <9N&! 进行仿真, 仿真结 果如图 F 所示 %
[+] 态的状态寄存器值 其对于状态的编码方式有如下常用的 + 种方式: ( 而不论哪种状态机, ! 二进制编 即相临两个状态的编码只有一位不同, 如 =;! G "", 码, 如 =;! G "", =;# G "!, =;+ G !", =;0 G !! ( "格雷码编码,
仅与之对应的一个寄存器有效, 如 =;! G """!, =;# G "!, =;+ G !!, =;0 G !" ( #独热码编码 ( 即在每个状态中, 但形成的组合 =;# G ""!", =;+ G "!"", =;0 G !""" ( 前 # 种编码方式是使用最小数目的触发器来编码状态机, 逻辑比较复杂, 适合应用在 B*’& 器件中 ( 第 + 种编码, 使用的触发器较多, 可减少实现状态机的组合逻辑 会出现很多未使用 数目, 减少复杂性, 提高系统的速度, 适合于在 5*H. 器件中应用 ( 使用独热码编码时, 的状态, 而使用二进制编码和格雷码编码时, 如果状态机的状态数不是 # 的乘幂时, 也会出现未使用状态 ( 且在符号状态机中, 采用何种编码方式与所用综合器及目标器件有关 ( 而编码状态机中的编码方式则可 在对符号状态机和编码状态机进行综合时有不同的处理方法 ( 下 由设计者指定 ( 所以对于未使用状态, 面通过一个简单状态机的设计来说明综合这 # 种状态机的未使用状态的处理方法 (
基于 !"#$ 的有限状态机设计
宋泽明,陈文楷
(北京工业大学 电子信息与控制工程学院,北京 !"""##)
摘
说明使用 $%&’ 语言设计出稳定、 可靠的有限状态机的方法是有效的 要:通过 # 种状态机的设计方法比较,
和实用的 ( 由于两者对状态寄存器值的不同处理方法, 使得状态机在采用不同编码方法时可靠性出现差异 ( 针 对此问题提出的状态机设计方法很好的解决了这个问题, 保证采用常用编码方法进行状态机编码时, 不管采用 何种状态机的设计方法, 状态机都会处于稳定、 可靠状态 ( 关键词:有限状态机;$%&’;编码;独热码 中图分类号:)* +"#,文献标识码:. 文章编号:"#/0 1 ""+(#""/) "! 1 ""#! 1 "0
[!, #] 有其独到的特点 (
%
有限状态机的编码
有限状态机是可编程逻辑电路实现的最常用的手段之一, 在各种数字电路应用中, 特别是控制器中被
广泛应用 ( 有限状态机的实现有许多综合或编码方法, 一种是符号状态机, 它不参考存储在状态寄存器中 对应不同状态的值, 把这些值的解释留给软件去做, 它能够给出正采用的结构或正产生的状态机最有效的 尺寸 ( 另一种是编码状态机, 它要求定义和符号状态机相同的信息, 除此之外, 还要求设计者定义每个状