[状态机.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[状态机

状态机 编程区别 8.3 有限状态机常用的描述、开发方法 状态转移图(State Transition Graph,STG)是一种有向图,图中带有标记的节点或顶点与时序状态机的状态一一对应。当系统处于弧线起点的状态时,用有向边或弧线表示在输入信号的作用下可能发生的状态转移。米利机STG的顶点用状态进行标记,状态转移图的有向边有下面两种标记方法: (1)用能够导致状态向指定的下一状态转移的输入信号来标记。 (2)在当前状态下,用由输入信号确定的输出来进行标记。 有限状态机可以借助时序图、状态表、状态图进行系统的描述与设计。时序图可用于说明系统中及系统与周围环境的接口中信号的有效输入与状态转移之间的关系。例如,静态随机访问内存的写周期可以用一个时序图加以说明,该时序图表明存储单元的地址必须在写使能信号有效之前就已经被确定。在面向综合的设计方法中,设计的时序指标构成了对必须由设计工具实现的电路的限制。 状态表或状态转移表以表格的形式表示在当前状态和输入的各种组合下状态机的下一状态和输出。 摩尔机的状态转移图与米利机相类似,但它的输出是由各状态的顶点来表示的,而不是在弧线上表示。 状态机的一个重要应用就是控制时序状态机数据信道上的寄存器操作,而该时序状态机已被划分为控制器和数据信道。 当控制器的状态沿着通道发生转移时,通过标注每个数据信道来指出那些在相关数据信道单元中所发生的寄存器操作。以这种方式连接到数据信道的ASM图被称为算法状态机和数据信道(ASMD)图。 有限状态机的系统设计方法通常包括以下几个步骤 (1)构建状态机的STG(状态转移图)。 (2)消去等价状态。 (3)选取状态码(如二进制代码)。 (4)编写状态表。 (5)推出描述保持状态位的D触发器的输入布尔方程。 (6)利用卡诺图优化布尔方程。 程序 2. 建模实例 利用STG构建一个BCD码到余3码的转换器 一个串行发送的BCD码Bin被转换成为一个余3码串行比特流Bout是这样得到的:给BCD码对应的十进制数加上310,并将其转换为等价的二进制数就得到了该十进制数的余3码,表11-1给出了十进制数及其相应的4位BCD码和余3码。余3码是自补码,即余3码的9补,在硬件上可以通过对码字逐位取反得到(即取码字的二进制反码)。例如610的余3码为1001,逐位取反后为0110,这就是310的余3码。余3码的这一特性使得计算以BCD形式编码的基数减1的反码变得很容易,这类似于减去带符号二进制数可以通过给减数加上被减数的二进制补码实现,二进制补码可由被减数的二进制反码加1得到。于是,610的十进制补码可由610的余3码1001逐位取反后再加1得到,0110+0001=0111,即410的余3码。 表11-1? BCD码与余3码 串行比特流的BCD码到余3码转换器可以用米利型FSM实现。图11-4给出了输入该转换器的串行比特流Bin,以及转换器输出的相应余3码的串行比特流。应注意Bin是先从最低位LSB(Least Significant Bit)开始按顺序发送的,因此要对Bin和Bout进行正确译码应该多加小心。波形中各位的顺序是随时间t的增加从左向右行进的,左边是最低位LSB,右边是最高位MSB(Most Significant Bit)。在这种转换器中,波形的位顺序必须反转,如图11-4所示,从而形成发送和接收码字的二进制数值。 如图11-4所示,从而形成发送和接收码字的二进制数值。 实现表11-1中的串行转换器的STG如图11-5所示,其异步复位信号与时钟无关,一旦该信号有效,状态机就会转移到S_0状态,复位后状态机在第一个时钟沿从S_0状态开始动作,并对输入位流的连续4位字段重复进行加00112的操作。码字的LSB是输入样值序列的第一位,也是所产生的输出码字的第一位。表11-2的状态表以表格的形式给出了与状态转移图相同的信息。符号-/-表示某种不确定的或不可能的条件。 表11-2? 用米利型FSM实现的BCD码到余3码串行转换器状态表 一般而言,用于表示状态机状态的触发器数目必须足够多,以满足状态的二进制表示,如具有12个状态的时序状态机至少需要4个触发器。对于一组给定的触发器,需要为各个状态指定唯一的二进制代码字,而且所用码字的数量在给各状态指定二进制代码的过程中将随着触发器的数目呈指数增长,如何选定也将直接影响到实现状态机所需逻辑的复杂度。本例中为各状态分配的码字如表11-3所示,采用简单的(顺序的)3位二进制代码为状态机的7个状态进行编码,表11-4则给出了下一状态编码和输出表。 表11-3? 状态分配表 下一步将研究状态编码的每个位以及作为当前状态位和输入(Bin)函数的输出卡诺图,这些卡诺图及其相应的布尔

文档评论(0)

wendan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档